采用请求分页存储
1. 请求分页调度是和分页调度有何联系和区别
在分页存储管理方式中 :不具备页面对换功能,不支持虚拟存储器功能,在调度作业运行时 ,必须将它的所有页面一次调入内存 ,若内存没有足够的块, 则作业等待的这种分页管理方式被称为纯分页或基本分页存储管理方式.
而请求分页管理方式是支持虚拟存储的,具备了页面的对换功能.调度作业时 是将它的 一部分(而不是全部) 放入内存.当发现页面缺少时 会发出一个缺页请求 从外存调用页面文件进入内存.
基于以上所述:基于这一点,请求分页存储管理可以提供虚存,而分页存储管理却不能提供虚存。
2. 操作系统请求分页存储方式的基本原理是什么谢谢
3.请求分页系统(1)请求分页对页表的扩充
在请求分页系统中所使用的主要数据结构仍然是页表。它对页式系统中的页表机制进行了扩充但其基本作用是实现由用户地址空间到物理内存空间的映射。由于只将应用程序的一部分装入内存,还有一部分仍在磁盘上,故需在页表中增加若干项,供操作系统实现虚拟存储器功能时参考。常见的系统中,一般对页表的表项进行如下扩充:除了页号对应的物理块号,还增加了状态位、修改位、外存地址和访问字段等。
·状态位,用于指示该页是否已经调入了内存。该位一般由操作系统软件来管理,每当操作系统把一页调人物理内存中时,置位。相反,当操作系统把该页从物理内存调出时,复位。CPU对内存进行引用时,根据该位判断要访问的页是否在内存中,若不在内存之中,则产生缺页中断。
·修改位,表示该页调入内存后是否被修改过。当CPU以写的方式访问页面时,对该页表项中的修改位置位。该位也可由操作系统软件来修改,例如,当操作系统将修改过页面保存在磁盘上后,可将该位复位。
·外存地址,用于指出该页在外存上的地址,供调人该页时使用。
·访问宇段,用于记录本页在一定时间内被访问的次数,或最近已经有多长时间未被访问。提供给相应的置换算法在选择换出页面时参考。
(2)对缺页中断的支持
在请求分页系统中,CPU硬件一定要提供对缺页中断的支持,根据页表项中的状态位判断是否产生缺页中断。缺页中断是一个比较特殊的中断,这主要体现在如下两点:
·在指令的执行期间产生和处理缺页信号。通常的CPU外部中断,是在每条指令执行完毕后检查是否有中断请求到达。而缺页中断,是在一条指令的执行期间,发现要访问的指令和数据不在内存时产生和处理的。
·一条指令可以产生多个缺页中断。例如,一条双操作数的指令,每个操作数都不在内存中,这条指令执行时,将产生两个中断。CPU提供的硬件支持,还要体现在当从中断处理程序返回时,能够正确执行产生缺页中断的指令。
(3)页面调度策略
虚拟存储器系统通常定义三种策略来规定如何(或何时)进行页面调度:调入策略、置页策略和置换策略。
(4)置换算法(replacementalgorithm)决定在需要调入页面时,选择内存中哪个物理页面被置换。置换算法的出发点应该是,把未来不再使用的或短期内较少使用的页面调出。而未来的实际情况是不确定的,通常只能在局部性原理指导下依据过去的统计数据进行预测。常用的算法有以下几种:
·最佳算法(optimal,OPT)。选择“未来不再使用的”或“在离当前最远位置上出现的”页面被置换。这是一种理想情况,是实际执行中无法预知的,因而不能实现,只能用作性能评价的依据。
·最近最久未使用算法(LeastRecentlyUsed,LRU)。选择内存中最久未使用的页面被置换,这是局部性原理的合理近似,性能接近最佳算法。但由于需要记录页面使用时间的先后关系,硬件开销太大。LRU可用如下的硬件机构帮助实现:
一个特殊的栈:把被访问的页面移到栈顶,于是栈底的是最久未使用页面。每个页面设立移位寄存器:被访问时左边最高位置1,定期右移并且最高位补0,于是寄存器数值最小的是最久未使用页面。
·先进先出算法(FIFO)。选择装入最早的页面置换。可以通过链表来表示各页的装入时间先后。FIFO的性能较差,因为较早调入的页往往是经常被访问的页,这些页在FIFO算法下被反复调入和调出,并且有Belady现象。所谓Belady现象是指:采用FIFO算法时,如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。Belady现象可形式化地描述为:一个进程户要访问M个页,OS分配舻个内存页面给进程P;对一个访问序列S,发生缺页次数为PE(占,N)。当N增大时,PE(S,N)时而增大时而减小。Belady现象的原因是FIFO算法的置换特征与进程访问内存的动态特征是矛盾的,即被置换的页面并不是进程不会访问的。
·时钟(clock)算法。也称最近未使用算法(NotRecentlyUsed,NRU),它是LRU和FIFO的折中。每页有一个使用标志位(usebit),若该页被访问则置userbit=l,这是由CPU的硬件自动完成的。置换时采用一个指针,从当前指针位置开始按地址先后检查各页,寻找usebit=0的面作为被置换页。指针经过的userbit=l的页都修改userbit=O,这个修改的过程是操作系统完成的,最后指针停留在被置换页的下一个页。
·最不常用算法(LeastFrequentlyUsed,LFU)。选择到当前时间为止被访问次数最少的页面被置换。每页设置访问计数器,每当页面被访问时,该页面的访问计数器加1。发生缺页中断时,淘汰计数值最小的页面,并将所有计数清零。
·页面缓冲算法(pagebuffering)。它是对FIFO算法的发展,通过建立置换页面的缓冲,这样就有机会找回刚被置换的页面,从而减少系统I/0的开销。页面缓冲算法用FIFO算法选择被置换页,把被置换的页面放人两个链表之一。即是如果页面未被修改,就将其归人到空闲页面链表的末尾,否则将其归人到已修改页面链表。空闲页面和已修改页面,仍停留在内存中一段时间,如果这些页面被再次访问,只需较小开销,被访问的页面就可以返还作为进程的内存页。需要调入新的物理页面时,将新页面内容读人到空闲页面链表的第一项所指的页面,然后将第一项删除。当已修改页面达到一定数目后,再将它们一起调出到外存,然后将它们归人空闲页面链表。这样能大大减少I/O操作的次数。
3. 对于请求分页式存储管理系统,若把页面的大小增加一倍,则缺页中断次数会减少一半
当然不一定是一半,这还得取决于操作系统内核的相关结构以及实际运行情况。因为系统中,缺页中断次数和页面大小有些关系,但并不只取决于页面大小,还跟系统总内存总量等很多因素有关,当系统内存不足时,会发生页面交换,此时也会产生很多次缺页中断,但与页面大小就没有太大关系了。
4. 请求分页与分页存储管理有何不同
大哥 他问的不是分页和分段好不好?
其实呢 它们可以说是一个包含与被包含的关系 而又不完全正确 这样说吧
在分页存储管理方式中
不具备页面对换功能 不支持虚拟存储器功能 在调度作业运行时 必须将它的所有页面一次调入内存 若内存没有足够的块 则作业等待 的这种分页管理方式被称为纯分页或基本分页存储管理方式
而请求分页管理方式 是支持虚拟存储的 具备了页面的对换功能
调度作业时 是将它的 一部分(而不是全部) 放入内存
当发现页面缺少时 会发出一个缺页请求 从外存调用页面文件进入内存
具体的你可以看看教材上面的
这个问题问的很不好回答
5. 在请求分页存储管理中,若采用FIFO页面淘汰算法,则当可供分配的页桢树增加时,缺页中断次数怎样麻
理论上是减少的,但如果是FIFO算法
在分页式虚拟存储器管理中,发生缺页时的置换算法采用FIFO(先进先出)算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。称为belady现象。
答案是可能增加也可能减少