- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告
课程: 操作系统
学号: 0810110013
姓名:
班级:计算机科学与技术08本科师范
教师: 殷荣庆
时间:2010年12月28日
计算机科学与技术系
设计名称:存储器管理 日期: 2010年12月28 日 设计内容:
存储器是计算机系统的重要组成部分。近年来,存储器的容量虽然一直在不断扩大,但仍然不能满足现代软件发展的需要,因此,存储器仍然是一种宝贵而紧俏的资源。如何对它加以有效的管理,不仅直接影响到存储器的利用率,而且还对系统性能有很大影响。
页面置换算法是虚拟存储管理实现的关键,通过本次课程设计,我们能够理解页面是换算法的机制,在模拟实现FIFO,LRU,NRU和OPT几种经典页面置换算法的基础上,比较各种置换算法的效率以及优点,从而了解虚拟存储实现的过程。
对比下列几种算法的命中率:
先进先出算法(First in First Out, FIFO)。
最近最少使用的算法(Least Recently Used, LRU)。
最近未使用算法(Never Used Recently, NUR)。
最佳置换算法(Optimal Replacement, OPT)。 设计目的与要求:
设计目的:
本次课程设计主要为了了解内存的各种管理方式,要求掌握分区式、页式、段式、段页式存储管理方式,以及虚拟存储器的基本概念和请求调页、请求调段存储管理方式。明白一些基本概念和计算机的相关工作方式,如:处理机调度的基本概念、调度算法、实时调度、多处理机系统中的调度、死锁的基本概念、处理死锁的基本方法。通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解。重点研究一下四点内容:
理解内存页面调度的机理。
掌握几种理论页面置换算法的实现方法。
了解HASH表数据结构的使用。
通过具体的上级操作与数据对比,比较各种各种调度算法的优劣。
设计要求:
自己编写代码,用各种不同的调度算法(先进先出算法、最近最少使用的算法、最近未使用算法、最佳置换算法)让计算机调度,计算出各种算法得出的命中率,根据计算机给出的命中率统计数据,比较各种调度算法的优劣。课程设计报告中要给出计算机统计出来的各种算法命中率的数据,然后说明对数据的具体分析步骤,最后总结出各种调度算法的优劣。 设计环境或器材、原理与说明:
一、设计环境: windows xp操作系统、虚拟机、红帽Linux操作系统。
二、设计器材:微型计算机
三、设计原理:
下面分别叙述各种页面调度机制的原理:
1:FIFO页面置换算法:
原理简述:
(1)在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。
(2)这时有需要处理的新页面,则将原来在内存中的AP个页面中最先进入的调出。(所以成为FIFO),然后将新页面放入。
(3)以后如果再有新页面需要调入,则都按(2)的规则进行。
算法特点:所使用的内存页面构成一个队列。
图标描述:
假设某个进程在硬盘上被划为5个页面(PP=5),以1,2,3,4,5分别表示,处理机调度他们的顺序(这取决于进程的本身)为:1,4,2,5,3,3,2,4,2,5.
如果内存可以控制的页面数位3(AP=3),那么在使用FIFO算法时,这三个页面的内存使用情况如图所示:
队列第1位
1
4
2
5
3
3
3
4
2
5
队列第2位
1
4
2
5
5
5
3
4
2
队列第3位
1
4
2
2
2
5
3
4
不难看出本例子共患处页面8次,若用变量diseffect表示页面换入的次数,则diseffect=8.
算法实现提示:
要得到命中率,必须应该有一个常熟total_instructrion来记录页面总共使用的次数;此处需要一个变量记录总共换入页面的次数(需要换出页面,总是因为缺页中断而产生)diseffect.。
(1)初始化。设置两个数组page[ap]和pagecontrol[pp]分别表示进程页面数和内存分配的页面数,并产生一个随机数序列main[total_instruction](当然这个序列由page[]的下标随机构成),表示待处理的进程页面序列,diseffect置零。
(2)看main[]中是否有下一个元素,有就由main[]中获取该页面下标,并转到(3);没有就转到(7)。
(3)如果该page页已经在内存中,就转到(2);否则就转到(4),同时未命中的diseffect加1.
(4)观察pagecontrol是否占满,如果占满需将使用队列((6)中建立的)中最先进入的(就是队列的第一个单元)pagecontrol单元清干净,同时将对应的page[]单元置为不在内存中。
(5)将该pa
文档评论(0)