计算机操作系统面试知识点整理 联系客服

发布时间 : 星期五 文章计算机操作系统面试知识点整理更新完毕开始阅读

页式存储管理要解决如下问题: (1)页式存储管理系统的地址映射; (2)调入策略; (3)淘汰策略; (4)放置策略。 静态页面管理

静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段或数据全部装入内存的各个页面中,并通过页表和硬件变换地址机构实现虚拟地址到内存物理地址的地址映射。 ①内存页面分配和回收

静态页面管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表、请求表以及页表来完成内存的分配工作。

页表是页式存储管理的数据结构,它包括用户程序空间的页面与内存块的对应关系、页面的存储保护和存取控制方面的信息。

最简单的页表是由页号和页面号组成,页表在内存中占有一块固定的存储区,大小由进程或作业的长度来决定。页式管理时每个进程至少拥有一个页表。

请求表用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置。系统应该知道每个作业或进程的页表起始地址和长度,以进行内存分配和地址变换。请求表中还应该包括每个进程或作业所请求的页面数。

存储页表指出内存各页面是否已被分配出去,以及未分配页面的总数。通常有两种记录空闲存储块的方法:位图法和链表法。

位图法:在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置1,否则置0。

链表法:在空闲页面链中,对首页面的第一个单元和第二个单元分别放入空闲页面总数与指向下一个空闲页面的指针。其他页面的第一个单元中则分别放入指向下一个页面的

指针。链表法由于使用了空闲页面本身的单元存放指针,因此不占据额外的内存空间。 分配算法:请求表给出进程或作业要求的页面数,然后,由存储页面数表检查是否有足够的空闲页面,如果没有,则本次无法分配,如果有则首先分配设置页表,并填写请求表中的相应表项后,按一定的查找算法,搜索出所要求的空闲页面,并将对应的页面号填入页表中。

静态页式管理的页面回收方法:当进程执行完毕时拆除对应的页表,并把页表中的各页面插入存储页面表即可。 动态页式管理

动态页式管理分为请求页式管理和预调入页式管理。

请求式分页存储管理与静态页式管理在内存块的分配与回收,存储保护某方面都十分相似,不同之处在于地址重定位问题。在请求式分页存储管理的地址重定位时,可能会出现所需页面不在主存的情况,此时,系统必须解决以下两个问题:

(1)当程序要访问的某页不在内存时,如何发现这种缺页情况?发现后应如何处理? (2)当需要把外存上的某个页面调入内存时,此时内存中没有空闲块应怎么办? 怎样发现不在内存中虚页的问题可以用扩充页表的方法解决。增设缺页中断位和该页在外存的首址。缺页中断位:该位为“1”,表示此页已在内存;为“0”,表示该页不在内存。当此位为0时,会发出“缺页”中断信号,以求得系统的处理。

抖动现象:置换算法选择不当,有可能产生刚被调出内存的页又马上被调回内存,调回内存不久又马上被调出内存,如此反复的局面。这使得整个系统的页面调度非常频繁,以致大部分时间花费在主存和辅存之间的来回调入调出上的现象。

改变位:该位为“0”时,表示此页面在内存时数据未被修改过;为“1”时,表示被修改过。当此页面被选中为淘汰对象时,根据此位的取值来确定是否要将该页的内容进行磁盘回写操作。

页页面中断外存首改变号 号 位 址 位 请求页式管理中的置换算法

置换算法在内存中没有空闲页面时被调用。它的目的是选出一个被淘汰的页面。 把内存和外存统一管理的真正目的是把那些被访问概率非常高的页存放在内存中。因此,置换算法应该置换那些被访问概率最低的页,将它们移出内存。

比较常用的置换算法有:随机淘汰算法(在系统设计人员无法确定哪些页被访问的概率较低时,随机地选择某个用户的页面并将其换出)、轮转法RR(轮转法循回换出内存可用去内一个可以被换出的页,无论该页是刚被换进或已换进内存很长时间)和先进先出法FIFO(选择内存驻留时间最长的一页将其淘汰)。最近最久未用页面淘汰算法(最近最久未用(LRU)页面淘汰算法的着眼点是在要进行页面淘汰时,检查这些淘汰对象的被访问时间,总是把最长时间未被访问过的页面淘汰出去。这是一种基于程序局部性原理的淘汰算法。也就是说,该算法认为如果一个页面刚被访问过,那么不久的将来被访问的可能性就大;否则被访问的可能性就小。)最近最少用页面淘汰算法(最近最少用(LFU)页面淘汰算法的着眼点是考虑内存块中页面的使用频率,它认为在一段时间里使用得最多的页面,将来用到的可能性就大。因此,当要进行页面淘汰时,总是把当前使用得最少的页面淘汰出去。要实现LFU页面淘汰算法,应该为每个内存中的页面设置一个计数器。对某个页面访问一次,它的计数器就加1。经过一个时间间隔,把所有计数器都清0。产生缺页中断时,比较每个页面计数器的值,把计数器取值最小的那个页面淘汰出去。)最优页面淘汰算法(如果已知一个作业的页面走向,那么要进行页面淘汰时,应该把以后不再使用的或在最长时间内不会用到的页面淘汰出去,这样所引起的缺页中断次数肯定最小,这就是所谓的“最优(OPT)页面淘汰算法”。遗憾的是,OPT的前提是要已知作

业运行时的页面走向,这是根本不可能做到的,所以OPT页面淘汰算法没有实用价值,它只能用来做为一个标杆(或尺度),与别的淘汰算法进行比较。如果在相同页面走向的前提下,某个淘汰算法产生的缺页中断次数是否接近它。)

Belady现象:一般来说,对于任一作业或进程,如果给它的页面数越接近于它所要求的页面数,则发生缺页的次数会越小。但是,使用FIFO算法时,有时会出现分配的页面数增多,缺页次数反而增加的奇怪现象。这种现象称为Belady现象。 存储保护

页式管理可以为内存提供两种方式的保护。一种是地址越界保护,另一种是通过页表控制对内存信息的存取操作方式以提供保护。

地址越界保护可由地址变换机构中的控制寄存器的值——页表长度和所要访问的虚地址相比较来完成。

存取控制保护的实现则是在页表中增加相应的保护位即可。 ★页式管理的优缺点 优点

(1)由于它不要求作业或进程的程序段和数据在内存中连续存放,从而有效地解决了碎片问题;

(2)动态页式管理提供了内存和外存统一管理的虚存实现方式,使用户可以利用的存储空间大大增加。这既提高了主存的利用率,又有利于组织多道程序执行。 缺点

(1)要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增加了机器成本。 (2)增加了系统开销,例如缺页中断处理。

(3)请求调页的算法如选择不当,有可能产生抖动现象。

(4)虽然消除了碎片,但每个作业和进程的最后一页总有一部分空间得不到利用。如果页面较大,则这一部分的损失仍然较大。