|
知识路径: > 计算机系统基础知识 > 计算机软件基础知识 > 操作系统基础知识 > 存储管理 > 存储管理 > 虚拟存储管理 >
|
相关知识点:5个
|
|
|
|
请求分页是在纯分页系统的基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统,它是目前常用的一种虚拟存储器的方式。在进程运行过程中,如果发生缺页,此时主存中又无空闲块时,为了保证进程能正常运行,必须从主存中调出一页程序或数据送磁盘的对换区。但究竟将哪个页面调出,需要根据一定的页面置换算法来确定。置换算法的好坏将直接影响系统的性能,不适当的算法可能会导致系统发生“抖动”(thrashing)。即刚被换出的页很快又被访问,需重新调入,导致系统频繁地更换页面,以至于一个进程在运行中把大部分时间花费在完成页面置换的工作上,这种现象称为系统发生了“抖动”(也称颠簸)。请求分页系统的核心问题是选择合适的页面置换算法,常用的页面置换算法如下所述。
|
|
|
|
这是一种理想化的算法,即选择那些永不使用的,或者是在最长时间内不再被访问的页面置换出去。这种方法性能最好,但实际上难于实现,并且要确定哪一个页面是未来最长时间内不再被访问的是很难的,所以该算法通常用来评价其他算法。
|
|
|
|
该算法总是淘汰最先进入主存的页面,即选择在主存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程调入主存的页面,按先后次序链接成一个队列,并设置一个指针即可。它是一种最直观、性能最差的算法,有Belady异常现象。所谓Belady现象,是指如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。例如,对于页面访问序列“1,2,3,4,1,2,5,1,2,3,4,5”,当分配的物理块从3块增加到4块时,有缺页次数增加、缺页率提高的异常现象。
|
|
|
最近最少使用(Least Recently Used,LRU)置换算法
|
|
|
该算法是选择最近最少使用的页面予以淘汰,系统在每个页面设置一个访问字段,用于记录这个页面自上次被访问以来所经历的时间T,当要淘汰一个页面时,选择T最大的页面,但在实现时需要硬件的支持(寄存器或栈)。
|
|
|
最近未用(Not Used Recently,NUR)置换算法
|
|
|
NUR算法将最近一段时间未引用过的页面换出,这是一种LRU的近似算法。该算法为每个页面设置一位访问位,将主存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位置1。在选择一页淘汰时,检查其访问位,如果是0,则选择该页换出;若为1,则重新置为0,暂不换出该页,在循环队列中检查下一个页面,直到访问位为0的页面为止。由于该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,所以把该算法称为最近未用算法。
|
|
|