.
一、课程设计目的
操作系统课程设计是为了对学习的操作系统课程更深刻的理解和巩固, 对操作系统的整
体进行一个模拟。 通过实践加深对各个部分的管理功能的认识, 还能进一步分析各个部分之
间的联系, 最后达到对完整系统的理解。 同时, 可以提高运用操作系统知识解决实际问题的
能力; 锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力; 还能提高调查研
究、查阅技术文献、资料以及编写软件设计文档的能力。
课程设计是自己独立完成一项任务的过程, 编程过程中要充分调动个人的积极性, 提高
自身解决实际问题的能力,发现自身的编程错误习惯,提高编写程序的质量。同时,也为以
后深入层次的学习及研究打基础。
编程中少不了难题, 遇到难题时需要的是用程序员的思维方式去考虑问题解决问题, 还
需要很大的精力和耐心,对于我们来说都是磨练和提高。
二、系统分析与设计
在采用请求分页机制的操作系统中, 当运行一个程序的时候, 若要访问的页面不在内存
中而需要把它们调入内存, 但此时内存已无空闲空间, 为了保证该进程能正常运行, 需选择
内存中暂时不用的页面调出到磁盘交换区。 选择调出哪个页面, 由页面算法决定。 页面置换
算法的好坏, 直接影响系统的性能, 所以一个好的页面置换算法, 应尽可能选择调出较长时
间内不会再访问的页面,以保证较低的缺页率。
2.1 Clock 页面置换原理描述
Clock 算法的思想:当某一页首次装入内存中时,则将该页框的使用位设置为 1;当该
页随后被访问到时(在访问产生缺页中断之后) ,它的使用位也会被设置为 1。对于页面置
换算法,用于置换算法,用于置换的候选页框集合(当前进程:局部范围;整个内存;全局
范围) 被看做是一个循环缓冲区,并且有一个指针与之相关联。当一页被置换时, 该指针被
设置成指向缓冲区中的下一页框。 当需要置换一页时, 操作系统扫描缓冲区, 以查找使用位
被置为 0 的一页框。 每当遇到一个使用位为 1 的页框时, 操作系统就将该位重新置为 0; 如
果在这个过程开始时,缓冲区中所有页框的使用位均为 0 时,则选择遇到的第一个页框置
换;如果所有页框的使用位均为 1 时,则指针在缓冲区中完整地循环一周,把所有使用位
都置为 0,并且停留在最初的位置上,置换该页框中的页。
2.2 改进型 Clock 页面置换原理描述
改进型的 Clock 算法的思想:在将一个页面换出时, 如果该页已被修改过,便须将它重
新写到磁盘上; 但如果该页未被修改过, 则不必将它拷回磁盘。 同时满足这两条件的页面作
为首先淘汰的页。由访问位 A 和修改位 M 可以组合成下面四种类型的页面:
1 类( A=0, M=0):表示该页最近既未被访问、又未被修改,是最佳淘汰页。
2 类( A=0, M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。
3 类( A=1, M=0):最近已被访问,但未被修改,该页有可能再被访问。
4 类( A=1, M=1):最近已被访问且被修改,该页有可能再被访问。
在内存中的每个页必定是这四类页面之一, 在进行页面置换时, 其执行过程可分成以下三步: