常见的几种页面调度算法

Posted 左沩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的几种页面调度算法相关的知识,希望对你有一定的参考价值。

常见的页面调度算法 

a.随机算法rang(Random Algorithm)

利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这中算法最简单,而且容易实现。但是,这种算法完全没有利用主存储器中页面调度情况的历史信息,吗也没有反应程序的局部性,所以命中率较低。

b.先进先出调度算法(FIFO)

先进先出调度算法根据页面进入内存的时间 先后选择滔滔页面,本算法实现时需要将页面按照进入的时间先后组成一个队列,每次调度队首页面予以淘汰。他的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,他没有反映程序的局部性,因为最先调入主存的页面,很可能也是经常要使用的页面。

c.最近最少调度算法 LFU

先进先出调度算法没有考虑页面的使用情况,大多数情况下性能不佳。根据程序执行的局部性特点,程序一旦方位了某些代码和数据,则在一段时间内会经常访问他们,因此最近最少用调度在选择淘汰页面是会考虑页面最近的使用,总是选择在最近一段时间以来最少使用的页面予以淘汰。算法实现是需要为每个页面设置数据结构的记录页面自上次访问以来所经历的时间。

d.最近最不常用调度算法 LRU

由于程序设计中经常使用循环结构,根据程序执行的局部性特点,可以设想在一段时间内经常被方位的diamo代码和数据将来也会经常被方位,,显然这样的页面不应该被淘汰。最近最不常用调度算法总是根据一段时间内页面的访问次数开选择淘汰页面,没次淘汰访问次数最少的页面。算法实现是需要为每个页面设置计数器,记录访问次数。计数器有硬件或操作系统自动定时清零。

e.最优替换算法 OPT

前面介绍的集中页面调度算法主要是以主存出奇中页面调度情况的历史信息为依据的,他假设将来主存出器中页面调度情况的历史信息为依据的,他假设将来主存储器中的页面调度情况与过去一段时间内主存储器的页面调度情况是相同的。显然,这种假设不总是真确的,最好的算法应该是选择将来最久不被方位的页面最为被替换的页面,这种算法命中率一定是最高的。他就是最优替换算法,也实现opt算法,唯一的方法就是让程序先执行一边,记录下实际的页地址流情况,根据这个页地址流才能找出当前要被替换的页面,显然,这样做是不现实的,因此,OPT算法只是一种理想化的算法,然而,特也是一种很有用的算法,实际上,经常把这种算法用来作为评价其他页面调度算法好坏的标准,在其他条件相同的情况下,哪中页面调度算法的命中率与opt想进,那么,他就是一种比较好的页面置换算法

却也调度册书和却也中断率,缺页置换率计算:

缺页中断次数是缺页是发出缺页中的次数

缺页中断率=缺页中断次数/中的页面引用次数

缺页调度次数是调入新页是需要进行页面调度的次数
缺页置换率=缺页调度次数/总的页面引用次数


2)判断一个页面调度算法好坏

一是命中率要高,而是算法要容易实现。


2.李楚页面调度算法重要的应用

1.虚拟存储器中,贮存页面的替换

2.Cache中的块替换

3.虚拟存储器中的快慢表中,块表的替换

4.虚拟存储其中,用户基地址寄存器的替换

以上是关于常见的几种页面调度算法的主要内容,如果未能解决你的问题,请参考以下文章

Python模拟页面调度LRU算法

操作系统中的几种调度算法(JAVA版)

Nginx七层负载均衡的几种调度算法

第三章 进程调度的几种方式

操作系统的几种进程调度算法

页面调度先进先出算法(FIFO) 用C语言描述 欢迎高手前来挑战