基本概念
虚拟存储管理:用户程序的逻辑地址空间可以不再受内存物理容量的限制,而且不必一次性全部装入内存。
局部性原理:一个程序中代码执行和数据访问的集簇倾向。
虚拟存储器:具有调入功能和置换功能,且能从逻辑上对内存容量进行扩充,其逻辑容量由内存容量和外存容量之和决定,其运行速度接近于内存速度,成本又接近于外存。
虚拟存储器的特征:离散分配、部分装入(作业运行时只要将当前运行的部分代码和数据装入内存即可)、多次交换、虚拟扩充
请求分页存储管理
工作原理:与分页存储管理类似,系统将内存空间划分成大小相物的若干物理块,以物理块为单位进行内存空间的管理。当一个程序申请装入内存执行时,系统将程序的逻辑地址空间按照物理块的大小划分成若干页。将接下来要执行的几个页调入内存,通过页表记录页和物理块的对应关系,为其创建进程。在进程执行过程中,当发现要执行的指令或访间的数据不在内存时,就会引发缺页中断,由操作系统负责将缺的页从外存调入内存。若内存空间充裕,则直接将缺页调入;若内存空同不充裕,则需要根据置换算法将一些不常用的页调出内存,腾出空间,将缺页调入。在置换时,若置换出的页在内存中曾做过改动,还需将改动保存到外存中。
扩充页表:页号、物理块号、状态位(是否调入内存)、外存地址(该页在外存上的存放地址)、访问字段(访问次数或未访问时长)、改动位(是否做过改动)
驻留集:给每个进程分配的物理块集合
分配给一个进程的驻留集越小,驻留内存的进程数越多,缺页率越高
驻留集分配策略:固定分配策略、可变分配策略
置换策略:全局置换策略、局部置换策略
页面置换算法
最佳页面置换算法(OPT)
基本思想:优先淘汰那些以后再也不会被访问,或者在未来最长时间内不再被访问的页面(理想化算法)
例1: 系统为进程分配3个物理块,该进程的页面访问串为“5,0,1,2,0,4,0,7,2,4,0,4,2,1,2,0,1,5,0,1”
50120407240421201501555222225000070001144411☑️☑️☑️☑️☑️☑️☑️☑️☑️
总页面数:20 缺页数:9 页面置换:6 缺页率:9/20
先进先出置换算法(FIFO)
基本思想:总是选择最先进入内存的页面 (容易引发页面抖动,缺页率高)
例2: 系统为进程分配3个物理块,该进程的页面访问串为“5,0,1,2,0,4,0,7,2,4,0,4,2,1,2,0,1,5,0,1”
总页面数:20 缺页数:15 页面置换:12 缺页率:15/20 = 3/4
最近最久未使用置换算法(LRU)
基本思想:选择最近最久未使用的页面予以置换
例3: 系统为进程分配3个物理块,该进程的页面访问串为“5,0,1,2,0,4,0,7,2,4,0,4,2,1,2,0,1,5,0,1”
总页面数:20 缺页数:12 页面置换:9 缺页率:12/20 = 3/5
Clock置换算法(略)
请求分段存储管理
基本思想:在分段存储管理的基础上,增加请求调段和段置换功能
请求分段存储管理的段表:段号、段长、段始址、存取方式(该段的存取属性:只执行、只读、可读/写)、状态位、访问字段(被访问的频繁程度)、改动位、增补位(是否做过动态增长)、外存始址
习题
例4: 在请求分页存储管理中,若某个作业的页面访问为“4,3,2,1,4,3,5,4,3,2,1,5”,采用FIFO页面置换算法,当分配给该作业的物理块数分别为3和4时,试计算在访问过程中所发生的页面置换次数。
例5: 在一个采用固定分配局部置换策略的请求分页存储管理系统中,若分配给进程的物理
块数为3,若页面访问串是“2,3,2,1,5,2,4,3,2,5,2”,试问采用OPT页面置换算法、FIFO页面置换算法、LRU 页面置换算法时,分别发生多少次页面置换?
例6: 某虚拟存储器的用户地址空间有32个页面,页面大小为1KB,内存大小为16KB,假
设某时刻系统为该用户进程的第0、1、2、3页分配的物理块号分别是5、10、4、7,已知该用户进程的长度是6个页面。试将以下十六进制的虚拟地址转换为物理地址。
(1) 0A5CH (2) 103CH (3) 1A5CH