1、 1 计 算 机 科 学 与 技 术 学 院 课程设计报告 ( 2012 2013 学年度 秋季学期 ) 课程名称 操作系统课程设计 项目名称 姓名 学号 专业 班级 地点 教师 2 设计四: 1.1.设计目的设计目的 请求页式管理是一种常用的虚拟存储管理技术。 本设计通过请求页式存储管理中页面置 换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。 2.2.设计内容:设计内容: 通过随机数产生一个指令序列,共 320 条指令。指令的地址按下述原则生成: 50% 的指令是顺序执行的; 25% 的指令是均匀分布在前地址部分; 25% 的指令是均匀分布在后地址部分。 具体的实施
2、方法是: 在 0,319 的指令地址之间随机选取一起点 m; 顺序执行一条指令; 在前地址0,m+1中随机选取一条指令并执行,该指令的地址为 m; 顺序执行一条指令,其地址为 m+1; 在后地址 m+2,319 中随机选取一条指令并执行 ; 重复上述步骤 , 直到执行 320 次指令。 将指令序列变换成为页地址流 设:页面大小为 1K; 用户内存容量为 4 页到 32 页 ; 用户虚存容量为 32K 。 在用户虚存中, 按每 K 存放 10 条指令排列虚存地址, 即 320 条指令在虚存中的存放 方式为: 第 0 条 第 9 条指令为第 0 页 ( 对应虚存地址为 0,9); 第 10 条 第
3、 19 条指令为第 1 页 ( 对应虚存地址为 10,19 ) ; 第 310 条 第 319 条指令为第 31 页 ( 对应虚存地址为 310,319) 。 按以上方式,用户指令可组成 32 页。 计算并输出下述各种算法在不同内存容量下的命中率。 先进先出的算法 (FIFO);最近最少使用算法 (LRR); 3 最少访问页面算法 (LFR);最近最不经常使用算法 (NUR)。 3 3实验环境实验环境 每个学生一台微机,需要安装 windows98 或 windows2000 操作系统,配备 VC、VB、java 或 C 编程语言,每个学生上机时间不少于 24 个小时。 (1) 、分页请求系统
4、 为了能实现请求调页和置换功能,系统必须提供必要的硬件支持,其中,最重要的 是: (1)请求分页的页表机制。它是在分页的页表机制上增加若干个项而形成的,作为请 求分页的数据结构; (2)缺页中断机构。每当用户程序要访问的页面尚未调入内存时,便产生一缺页中断, 以请求 OS 将所缺的页面调入内存; (3)地址变换机构。它同样是在分页的地址变换机构的基础上发展形成的。 为了实现请求调页还须得到 OS 的支持, 在实现请求调页功能时, 石油 OS 将所需的页从 外存调入内存;在实现置换功能时,也是由 OS 将内存的某些页调至外存。 4 4实验提示实验提示 提示:A.命中率=1-页面失效次数/页地址流
5、长度 B.本实验中, 页地址流长度为 320, 页面失效次数为每次访问相应指令时, 该指令所对应的页不在内存的次数。 C.关于随机数产生方法,采用 TC 系统提供函数 RAND()和 RANDOMIZE()来 产生。 5.5.自己对算法的理解自己对算法的理解 FIFO 页面置换算法 原理简述 在分配内存页面数(AP)小于进程页面数(PP)时, 当然是最先运行的 AP 个页面放 入内存。 这时有需要处理新的页面, 则将原来内存中的 AP 个页面最先进入的调出(是以 称为 FIFO),然后将新页面放入。 以后如果再有新页面需要调入,则都按的规则进行。 算法特点:所使用的内存页面构成一个队列。 LR
6、U 页面置换算法 原理算述 4 当分配内存页面数(AP)小于进程页面数(PP)时, 当然是把最先执行的 AP 个页面 放入内存。 当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最 长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为 LRU)。 算法特点:每个页面都有属性来表示有多长时间未被 CPU 使用的信息。 LFU即最不经常使用页置换算法 原理简述 要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个 较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使 用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右 移一位,形成指数衰减的平均使用次数。 LRU 算法的硬件支持 把 LRU 算法作为页面置换算法是比较好的,它对于各种类型的程序都能适用,但 实现起来有相当大的难度,因为它要求系统具有较多的支持硬件。所要解决的问题有: 1.一个进程在内存中的各个页面各有多久时间未被进程