第三章 内存管理 虚拟内存管理

原文地址:第三章 内存管理——王道操作系统 – Beatless

目录

二、虚拟内存管理

虚拟内存的基本概念

请求分页管理方式

页框分配

页面置换算法

抖动和工作集

内存映射文件

虚拟存储器性能影响


二、虚拟内存管理

虚拟内存的基本概念

1、传统存储方式的特征

(1)一次性:作业必须一次性装入内存后,才能开始运行。

导致的问题:
① 当作业很大而不能全部被装入内存时,将使该作业无法运行;
② 当大量作业要求运行时,由于内存有限,只能让少数作业运行,导致多道程序并发性下降。

(2)驻留性:作业被装入内存后,一直驻留在内存里,除非运行结束,请求IO操作会导致阻塞,可能长期处于等待状态。

2、局部性原理

(1)时间局部性(2)空间局部性

广义上来说,快表、页高速缓存及虚拟内存技术都属于高速缓存技术,而它依赖于局部性原理。

虚拟内存技术实际上建立了“内存-外存”的两级存储器结构,利用局部性原理实现高速缓存技术。

3、虚拟存储器的定义和特征

请求调页(请求调段):当想要访问的页面(段)不在内存中时,由操作系统负责将所需要的信息从外存调入内存,然后继续执行程序。

页面置换(段置换):当内存空间不够时,由操作系统负责将内存中暂时不用的信息换到外存。

部分装入:在程序装入时,仅需要将程序当前运行要用到的少数页面(段)装入内存,而将其余部分暂留在外存,便可以启动程序执行。

请求调页、页面置换和部分装入都是对用户透明的。

虚拟存储器的特征:
(1)多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。即只需将当前运行的那部分程序和数据装入内存即可运行。
(2)对换性:作业运行过程中,将暂时不使用的程序和数据调到外存中(换出)。
(3)虚拟性:从逻辑上扩充了内存容量,使用户看到的远大于实际的内存容量。

4、虚拟内存技术的实现

若采用连续内存分配方式,会使相当一部分内存空间处于”暂时“或”永久“空闲状态,造成内存资源的严重浪费,一次虚拟内存技术的实现建立在离散分配方式之上。

实现方式:① 请求分页存储管理;② 请求分段存储管理;③ 请求段页式存储管理

不论哪种实现方式都需要一定的硬件支持:
(1)一定的内存和外存;
(2)页表或段表机制作为主要的数据结构;
(3)中断机构,当前用户程序要访问的部分尚未调入内存,产生缺页中断;
(4)地址变换机构,将CPU生成的逻辑地址映射到物理地址。

请求分页管理方式

请求分页管理方式建立在基本分页系统的基础之上,为支持虚拟存储器功能而增加了请求调页和页面置换功能,包含页表机制、缺页中断机制、地址变换机构。

1、页表机制

基本页表项:页号、物理块号。
请求分页的页表项:页号、物理块号、状态位、访问字段、修改位、外存地址。

状态位P:表示当前页面是否在内存中,若在则为1,若不在则为0。
访问字段A:表示近一段时间内该页面被访问的次数,或记录本页最近已有多长时间未被访问。
修改位M:表示当前页面在调入后是否被修改过,以决定换出时是否写回外存。
外存地址:记录该页在外存中的存放地址,通常是物理块号,供调入页面时参考。

2、缺页中断机制

在请求分页系统中,每当要访问的页面不在内存中的时候,便产生一个缺页中断,然后由OS的缺页中断处理程序处理。此时缺页的进程被阻塞,放入阻塞队列,当调页完成后唤醒并放回就绪队列。

缺页中断处理过程:
(1)若内存中由空闲块,则为进程分配一个空闲块,将缺的页面装入,并修改页表中相应的页表项。
(2)若内存中没有空闲块,则有页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

♡すぎ♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值