LRU 页面置换算法模拟(最近最久未使用置换算法)
一、设计目的
1、用 C 语言实现最近最久未使用(LRU)置换算法。
2、了解内存分页管理策略
3、掌握调页策略
4、掌握一般常用的调度算法
5、选取调度算法中的典型算法,模拟实现
二、设计任务
在 Window98/2000 系统的 TC2.0 环境下运行程序;通过从一般常用的调页算法中选取典型
算法 LRU,了解页面管理的相关细节,并用程序设计实现 LRU。
三、设计内容与步骤
分页存储管理将一个进程的逻辑地址空间分成若干大小相等的片,称为页面或页。
一、调页策略
1)何时调入页面
如果进程的许多页是存放在外存的一个连续区域中,则一次调入若干个相邻的页,会比一次
调入一页的效率更高效一些。但如果调入的一批页面中的大多数都 未被访问,则又是低效
的。可采用一种以预测为基础的预调页策略,将那些预计在不久之后便会被访问的页面,预
先调入内存。如果预测较准确,那么,这种策略显 然是很有吸引力的。但目前预调页的成
功率仅为 50%。且这种策略主要用于进程的首次调入时,由程序员指出应该先调入哪些
页。
2)请求调页策略
当进程在运行中需要访问某部分程序和数据时,若发现其所在的页面不在内存,便即提出请
求,由 OS 将其所需页面调入内存。由请示调页策略所确定调入的 页,是一定会被访问
的,再加之请求调页策略比较易于实现,故在目前的虚拟存储器中,大多采用此策略。但这
种策略每次仅调入一页,故须花费较大的系统开销, 增加了磁盘 I/O 的启用频率。
2、从何处调入页面
在请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的
对换区。通常,由于对换区是采用连续分配方式,而事件是采用离散分配方式, 故对换区
的磁盘 I/O 速度比文件区的高。这样,每当发生缺页请求时,系统应从何处将缺页调入内
存,可分成如下三种情况: