赞
踩
摘要:最近未使用页淘汰(NRU)算法或者时钟算法是实际使用的诸多页淘汰算法中的一种。本课程设计是使用C程序设计语言,在windows平台下对页淘汰(NRU)算法模拟,通过页淘汰(NRU)算法的模拟来进一步的加深对使用NRU算法的了解,及对C程序设计语言的使用。
关键词:页淘汰 NRU 时钟算法
一.设计的背景介绍
1.1 介绍相关概念,相关算法
页淘汰工作通常是由一个系统进程或线程完成的,该进程称为页淘汰进程。
页淘汰的时机:当内存空闲页面数低于系统所配置的最小阈值时启动(唤醒)页淘汰的进程,页淘汰进程被启动后就开始不停地选择和淘汰释放页,直到内存的空闲页面数达到系统所配置的最大阈值为止。此后,页淘汰进程进入睡眠(等待)状态,直到下次因内存空闲页面数少于最小阈值而被再次唤醒(启动)。
最近未使用页淘汰(NRU)算法的原理:
①该算法为每个页面设置两个硬件位—访问位和修改位
访问位= 0:该页尚未被访问过; 访问位= 1:该页已经被访问过
修改位= 0:该页尚未被修改过; 访问位= 1:该页已经被修改过
②开始时所有页的访问位,修改位都设为0, 访问/修改时再置1。
③当页淘汰进程工作时,首先淘汰那些访问位为0的页。然后,如果还需要继续淘汰(即空闲页面尚未达到最大阈值),则淘汰那些访问位为1但修改位为0的页。最后如果空闲页面还不够,则淘汰那些修改位为1的页。
④由于大多数页迟早要被访问,故页淘汰进程定期遍历内存页—将每页的访问位都置为0(周期性地对访问位清零)。这种清除过程类似于时针在时钟面上的运行故NRU算法又称为时钟(clock)算法。
1.2 简要介绍设计环境、设计工具
利用VC++6.0/TC3.0在Dos/Windows平台使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。