系统相关
首页 > 系统相关> > 第四部分 操作系统-虚拟内存

第四部分 操作系统-虚拟内存

作者:互联网

一、起因

内存相对于寄存器速度慢,所以内存和寄存器之间有 cache

硬盘比内存容量大,但是速度慢

磁带比硬盘容量还大

计算机系统中,尤其是多道程序运行下内存不够用

 

二、覆盖技术

1、目标

较小的可用内存中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用

2、原理

3、缺点

覆盖模块从外存装入内存,实际上是以时间延长换取空间节省

 

三、交换技术

1、目标

多道程序在内存中时,让正在运行的程序或需要运行的程序获得更多的内存资源

2、原理

暂时不能运行的程序送到外存

3、存在的问题

4、与覆盖技术的区别

覆盖:发生在一个程序里,程序员需要手动指定逻辑关系;

交换:发生在程序之间,由操作系统内部完成,不需要程序员设置

 

四、虚存技术

1、目标

覆盖技术做的更好:由操作系统自动完成

交换技术做的更好:只对进程的部分内容在内存和外存之间进行交换

2、程序的局部性原理

3、基本概念

可以在页式或段式内存管理的基础上实现

4、基本特征

5、实现 —— 虚拟页式存储管理

(1)页表

(2)虚拟页式存储管理技术

(3)页表表项

(4)缺页中断

(5)后备存储

 

五、页面置换算法

1、功能

当缺页中断发生,需要调入新的页面而内存已满时,选择内存中哪个物理页面被置换

2、目标

尽可能地减少页面的换进换出次数(即缺页中断的次数)

3、最优页面置换算法(局部页面置换算法1)

(1)基本思路:距离下一次访问等待时间最长的逻辑页面作为置换的页面

(2)理想情况,可作为其他算法的性能评价的依据

4、先进先出算法 FIFO(局部页面置换算法2)

(1)基本思路

(2)性能较差,并且有 belady 现象

5、最近最久未使用算法 LRU(局部页面置换算法3)

(1)基本思路

选择最久未使用的那个页面,并淘汰之

(2)最优页面置换算法的近似,基于程序的局部性原理

(3)LRU 算法需要记录各个页面使用时间的先后顺序,开销比较大

(4)实现方法

6、时钟页面置换算法(局部页面置换算法4)

基本思路:

(1)LRU的近似,FIFO的改进

(2)装入内存页面的页表项的访问位初始化为0,被访问置为1;各个页面组织成环形链表,指针指向最老页面

7、二次机会法

(1)修改 clock 算法,使它允许脏页总是在一次时钟头扫描中保留下来,同事使用脏位和使用位来指导置换

(2)Enhanced Clock algorithm

useddirty useddirty
0 0 —> replace page  
0 1 —> 0 0
1 0 —> 0 0
1 1 —> 0 1

8、最不常用算法 LFU(局部页面置换算法5)

(1)基本思路

当一个缺页中断发生时,选择访问次数最少的那个页淘汰之

(2)实现方法

对每个页面设置一个访问计数器,每当一个页面被访问时,该页面的访问计数器加一。在发生缺页中断时,淘汰技术值最小的那个页面

(3)LRU和LFU的区别

LRU考察的是多久未访问,时间越短越好;而LFU考察的是访问的次数或频度,访问次数越多越好

9、Belady 现象

(1)现象

在采用 FIFO 算法时,有时会出现分配的物理页面数增加,缺页率反而提高的异常现象

(2)原因

FIFO 算法的置换特征与进程访问内存的动态特征是矛盾的,与置换算法的目标是不一致的(即替换较少使用的页面)

因此,被它置换出去的页面并不一定是进程不会访问的

(3)LRU页面置换算法没有Belady现象

10、LRU、FIFO、Clock 的比较

(1)LRU、FIFO 本质上都是先进先出的思路

(2)LRU 是针对页面的最近访问时间来排序、开销大

(3)FIFO 是针对页面进入内存的时间来排序、开销小

(4)如果一个页面进入内存后没有被访问,那么它的最近访问时间就是它进入内存的时间。即 LRU 退化为 FIFO

 

标签:操作系统,置换,访问,算法,LRU,内存,第四,虚拟内存,页面
来源: https://www.cnblogs.com/wy0526/p/15963402.html