操作系统实验报告3.docx

操作系统实验报告3.docx

ID:52223994

大小:174.31 KB

页数:6页

时间:2020-03-25

操作系统实验报告3.docx_第1页
操作系统实验报告3.docx_第2页
操作系统实验报告3.docx_第3页
操作系统实验报告3.docx_第4页
操作系统实验报告3.docx_第5页
资源描述:

《操作系统实验报告3.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统实验报告——(存储器管理实验)一、实验目的(1)理解内存页面调度的机理(2)掌握几种理论页面置换算法的实现方法(3)了解HASH数据结构的使用(4)通过实验比较几种调度算法的性能优劣页面置换算法是虚拟存储管理实现的关键,通过本次实验理解内存页面调度的机制,在模拟实现FIFO、LRU、NRU和OPT几种经典页面置换算法的基础上,比较各种页面置换算法的效率及优缺点,从而了解虚拟存储实现的过程。二、实验内容对比以下几种算法的命中率:(1)先进先出算法FIFO(FirstInFirstOut)(2)最近最少使用算法LRU(LeastRecentlyUsed)(3)最近未使用算法NUR(N

2、everUsedRecently)(4)最佳置换算法OPT(OptimalReplacement)三、实验原理1.FIFO算法a)在分配内存页面数(AP)小天进程页面数(PP)时,当然是最先运行的AP个页面放入内存;b)这时又需要处理新的页面,则将原来放的内存中的AP个页中最先进入的调出(FIFO),再将新页面放入;a)以后如果再有新页面需要调入,则都按上述规则进行。算法特点:所使用的内存页面构成一个队列。1.LRU算法(1)当内存分配页面数(AP)小于进程页面数(PP)时,把最先执行的AP个页面放入内存。(2)当需调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有

3、用到的那一页调出,以空出内存来放置新调入的页面(LRU)。算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。2.NUR算法所谓“最近未使用”,首先是要对“近”做一个界定,比如CLEAR_PERIOD=50,便是指在CPU最近的50次进程页面处理工作中,都没有处理到的页面。那么可能会有以下几种情况:(1)如果这样的页面只有一个,就将其换出,放入需要处理的新页面。(2)如果有这样的页面不止一个,就在这些页面中任取一个换出(可以是下标最小的或者最小的),放入需要处理的页面。(3)如果没有一个这样的页面,就随意换出一个页面(可以是下标最小的或者最大的)。算法特点:有一个循环周期,每

4、到达这个周期,所有页面存放是否被CPU处理的信息的属性均被置于初始态(没有被访问)。3.OPT算法所谓的最佳算法是一种理想状况下的算法,它要求先遍历所有的CPU待处理的进程页面序列。在这些页面中,如果有些已经在内存中,而CPU不再处理的,就将其换出;而有些页面已在内存中而CPU即将处理,就从当前位置算起,取最后才会处理到的页面,将其换出。如CPU待处理的页面序列为:13224525143411553421如果已经处理了前5个页面(底纹为黑色),那么随后的页面5是第一个待处理的页面,这时若要将页面5调入内存,需选择页面3换出,因为页面3是最后才会被处理到的。四、设计与实现1.FIFO算法算

5、法实现:要得到命中率,必然应该有一个常量total_instruction来记录页面总共使用的次数,此外还需要一个变量记录总共换入页面的次数diseffect(需要换出页面总是因为缺页中断而产生)。利用公式1-diseffect/total_instruction*100%可以得到命中率。(1)初始化。设置两个数组page[ap]和pagecontrol[pp]分别表示进程页面数和内存分配的页面数,并产生一个随机数序列main[total_instruction](这个序列由page[ap]的下标随机构成)表示待处理的进程页面顺序,diseffect置0。(2)看main[]中是否有下一

6、个元素,若有,就由main[]中获取该页面下标,并转(3),如果没有则转(7)。(3)如果该页已在内存中,就转(2),否则转(4),同时未命中的diseffect加1。(4)观察pagecontrol是否占满,如果占满则须将使用队列(在第(6)步中建立的)中最先进入的(就是队列的第一个单元)pagecontrol单元“清干净”,同时将page[]单元置为“不在内存中”。(5)将该page[]与pagecontrol[]建立对应关系(可以改变pagecontrol[]的标志位,也可以采用指针链接,总之至少要使对应的pagecontrol单元包含两个信息:一是它被使用了,二是哪个page[]

7、单元使用的。page[]单元也包含两个信息:对应的pagecontrol单元号和本page[]单元已在内存中)。(6)将用到的pagecontrol置入使用队列(这里的队列是一种FIFO的数据结构),返回(2)。(7)显示计算1-diseffect/total_instruction*100%,完成。2.LRU算法算法实现:与前述算法一样,只有先得到diseffect才能获得最终的命中率。(1)初始化。设置两个数组page[ap]和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。