【计算机四级网络工程师】操作系统原理第五章——内存管理(下)

发布于:2024-09-19 ⋅ 阅读:(12) ⋅ 点赞:(0)

目录

一、虚拟存储技术

二、虚拟页式存储管理思想

三、虚拟页式存储管理条件

四、虚拟页式存储管理表项

五、虚实地址转换

六、缺页中断

七、页面调度策略

八、页面置换算法

九、虚拟页式存储性能问题


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

一、虚拟存储技术

利用大容量的外存来扩充内存,产生一个比实际内存空间大得多的、逻辑的虚拟内存空间(虚存 )。
在一个虚拟存储系统中,决定虚拟存储空间最大容量的要素是:计算机系统地址位宽。
在内存管理系统中,这些单元可以用于虚拟存储系统的交换单位:页,段。

关于虚拟存储器的叙述中,这些是正确的:
(1)在虚拟存储系统中,进程的部分程序装入后便可运行
(2)虚拟存储技术允许用户使用比物理内存更大的存储空间
(3)实现虚存必须有硬件支持

在虚存中,页面可能在内存与外存之间频繁地调度,有可能出现抖动或颠簸。
抖动或颠簸可能会导致系统效率急剧下降。


二、虚拟页式存储管理思想

在存储管理方案中,允许动态扩充内存容量的方案是:虚拟页式。
在虚拟存储管理系统中,通常采用交换技术来“扩充"内存。与传统交换技术相比,虚拟页式存储管理系统中的交换单位是:页。
在虚拟页式存储管理系统中,若采用请求调页方式,当用户需要装入一个新的页面时,其调入的页面来自:磁盘文件。
在虚拟页式存储管理中,为实现地址变换所涉及到的数据结构是:空闲区表,页表,位图。

当系统采用虚拟页式存储管理方案时,需要处理这些问题:
(1)运行时决定将哪些页面装入内存
(2)运行中无空闲页框时选择置换掉某些页面
(3)将暂时不需要的页面清除出内存
(4)将进程按页框大小划分为页面
(5)创建交换分区暂存换出的页面

在引入虚拟页式存储管理的系统中,会出现下列哪些现象:
(1)页面抖动(颠簸)
(2)Belady异常
(3)缺页中断
(4)页面写错误

三、虚拟页式存储管理条件

实现虚拟页式存储管理方式需要这些软件条件:
(1)缺页中断处理程序
(2)页面调入策略和页面置换策略
(3)程序分页机制和页表
实现虚拟页式存储管理方式需要这些硬件条件:
(1)系统有容量足够大的外存
(2)系统有一定容量的内存
(3)硬件提供实现虚-实地址映射的机制
实现虚拟页式存储管理需要一定的软硬件条件。这些条件是必须具备的:
(1)系统有容量足够大的外存
(2)系统有一定容量的内存
(3)实现虚拟地址到物理地址映射的机制
(4)缺页中断处理机制
(5)页表

四、虚拟页式存储管理表项

将内存等分成大小为2的幂次方的内存块,称为页框。
系统将虚拟地址空间等分为若干页面,大小与页框相同。
虚拟页面在物理空间上不要求连续存放。
硬件机制实现逻辑地址到物理地址的动态转换。

某虚拟页式存储管理系统采用二级页表进行地址转换,若不考虑高速缓存和快表,则进程每执行一条指令至少需要访问3次内存( 一次访问一级索引,二次访问二级索引,三次访问该指令)。

虚拟页式存储管理需增加表项:
(1)页号:页面的编号。
(2)有效位:又称驻留位、存在位或中断位,表示该页是在内存还是在外存。
(3)页框号:页面在内存中时所对应的内存块号。
(4)访问位:又称引用位或参考位,表示该页在内存期间是否被访问过。(当访问位是0时,说明已经很久没有对这个页号进行访问了。)
(5)修改位:表示该页在内存中是否被修改过。
(6)禁止缓存位:采用内存映射I/O的机器中需要的位。
其中:访问位和修改位可以用来决定置换哪一个页面,具体由页面置换算法决定。

从简单页式存储管理方案发展到虚拟页式存储管理方案,页表项中通常需要增加的信息有:
(1)有效位(存在位)
(2)修改位
(3)访问位(引用位)
在虚拟页式存储管理系统中,每个页表项中必须包含的是:
(1)页框号
(2)有效位
(3)修改位
(4)访问位
页表项的一些内容是硬件确定的。根据页表项的有效位确定所需访问的页面是否已经在内存。
在虚拟页式存储方案中,当判断一个页面是否已调入内存时需要用到页表表项的这些位:驻留位,中断位 。
在虚拟页式存储方案中,当进行页面置换时需要用到页表表项的这些位:访问位,修改位。

(1)当某个进程发生缺页中断,且选中一个页面进行淘汰时,该页面对应的页表表项中,这些参数和标志位不需要修改:内存块号,访问位,修改位,保护位。
(2)当创建一个新的进程并调度运行时,该进程须装入一个页面,则该页面对应的页表表项中,这些参数和标志位必须修改:内存块号,驻留位,访问位。
(3)当某进程的一个页面内容被修改后,对应该页面的页表表项中,这些参数和标志位必须修改:访问位,修改位。
(4)某进程运行时若将磁盘中的一个页面调入内存,该页面对应的页表表项中,这些参数和标志位必须修改:内存块号,驻留位,访问位。
(5)在一个虚拟页式存储管理系统中,页表表项中有多个管理用的参数和标志位。某进程运行时若将磁盘中的一个页面调入内存,该页面对应的页表表项中,这些参数和标志位必须修改:内存块号,驻留位,访问位。

五、虚实地址转换

在虚拟页式存储管理系统中,当进行虚拟地址到物理地址的转换时,可能会出现这些现象:
(1)快表未命中
(2)缺页中断
在虚拟页式存储管理系统中,当进行虚拟地址到物理地址的转换时,可能会出现这些现象:
(1)页表项在内存,正常转换
(2)页表项不在内存,产生缺页中断
在虚拟页式存储管理系统中,当进行虚拟地址到物理地址的转换时,可能会出现这些现象:
(1)快表命中
(2)页表命中
(3)缺页中断
在虚拟页式存储管理系统中,当进行虚拟地址到物理地址的转换时,可能会出现这些现象:
(1)页表项位于快表中,正常转换
(2)页表项不在快表中,更新快表
(3)页表项位于内存页表中,正常转换
(4)缺页中断

这些技术能够加快虚拟页式存储管理系统中虚-实地址转换的速度:
(1)增加联想寄存器
(2)分页尺寸大小为2n
这些技术能够加快虚拟页式存储管理系统中虚-实地址转换的速度:
(1)增加快表的容量
(2)提高快表的读写速度
这些技术不能加快虚拟页式存储管理系统中虚-实地址转换的速度:
(1)增加地址线宽度
(2)增加数据线宽度
(3)采用多核处理器
这些技术能够加快虚拟页式存储管理系统中虚-实地址转换的速度:
(1)添加快表
(2)以2的幂次方的页面长度分页


六、缺页中断

若在页表中发现所要访问的页面不在内存,则产生缺页中断。当发生缺页中断时,操作系统必须在内存中选择一个页面将其移出内存,以便为即将调入的页面让出空间。
实现虚拟页式存储管理的硬件基础是:缺页中断机制。


在一个虚拟页式存储管理系统中,当发生缺页中断时,系统会完成这些工作:
(1)保存现场,通过交换PSW让缺页中断处理程序占用CPU
(2)执行缺页中断处理程序,分配一个空闲页框
(3)启动磁盘,从磁盘将相关页面装入所分配的页框
(4)在没有空闲页框时执行页面置换程序
(5)修改页表及内存分配表,恢复现场

进程对内存有临界要求,当分配给进程的物理页面数小于该临界值时,缺页率上升。
颠簸是由于缺页率高而引起的现象。
出现抖动或颠簸现象时,系统用于调度页面所需要的时间比进程实际运行所占用的时间还多。


七、页面调度策略

在虚拟页式存储管理系统中,这些策略与页面调度有关:
(1)调入策略
(2)置页策略
(3)置换策略
在一个虚拟页式存储管理系统中,这些是可用的页面调入策略:
(1)请求调页
(2)预先调页
在一个虚拟页式存储管理系统中,这些是页框的分配、置换策略:
(1)固定分配局部置换
(2)可变分配全局置换
(3)可变分配局部置换
在虚拟页式存储方案中,“固定分配、局部置换”策略的含义是:
(1)为每一个进程分配固定数目的内存页面
(2)进程运行中出现缺页,只能在本进程的页面中进行置换
在虚拟页式存储方案中,“可变分配、局部置换”策略的含义是:
(1)进程运行中出现缺页,只能在本进程的页面中进行置换
(2)进程运行中,其内存页面可以动态增长或减少
(3)为每一个进程分配一定数目的内存页面
在虚拟页式存储方案中,"可变分配、全局置换"策略的含义是:
(1)进程运行中,其内存页面可以动态增长或减少
(2)运行的进程当其页面不够时可以从系统中的任何进程处进行置换
(3)为每一个进程分配一定数量的内存页面

八、页面置换算法

虚拟页式存储系统中进行页面置换时,可以使用的页面置换算法:
(1)先进先出页面置换算法(FIFO):选择将驻留在内存中时间最长的一页调出。(把最先装入内存的一页调出)
可能产生Belady异常现象
(2)最近最少使用页面置换算法(LRU):首先置换最长时间未被使用过的页面。(总是选择距离现在最长时间内投有被访问过的页面先调出)
(3)最近最不常用页面置换算法(LFU):根据在一段时间里页面被使用的次数多少选择可以调出的页。(操作系统根据在一段确定的周期T内,选择被使用(访问)次数最少的页面调出)
(4)理想页面置换算法(OPT):置换以后不再需要的、或者在最长时间以后才会用到的页面。
(5)最近未使用页面置换算法(NRU):在最近的一个时钟滴答中尽量置换一个投有被访问的和没有被修改过的页面。
(6)第二次机会页面置换算法:检查进入内存时间最久页面的R位,如果是0,则置换该页;如果是1,就将R位清0,并把该页面放到链表的尾端,修改其进入时间,然后继续搜索。
(7)时钟页面置换算法(Clock)

这些算法需要用到访问位(引用位):
(1)最近最久未使用算法LRU
(2)时钟算法CLOCK
(3)最近未使用算法NRU

若一个虚拟页式存储管理系统采用先进先出页面置换算法,则系统运行时可能出现这些现象:
(1)颠簸抖动
(2)Belady异常

在采用虚拟存储管理方案的系统中,发生"抖动"现象是由这个原因引起的:页面置换算法不合理。

九、虚拟页式存储性能问题

抖动或颠簸产生的原因:进程在一段时间内集中访问一些页面(活动页面),分配给一个进程的内存物理页面数太少,使得该进程所需要的“活动”页面不能全部装入内存,则进程在运行过程中可能会频繁地发生缺页中断,从而产生颠簸。

为预防内存换页时出现抖动(颠簸)现象,可以采用这一种方式:采用工作集算法。
操作系统为每一个进程保持一个工作集。
操作系统应为每个进程提供与工作集大小相等的物理页面数。
工作集是随时间而变化的,工作集大小与窗口尺寸密切相关。


网站公告

今日签到

点亮在社区的每一天
去签到