操作系统课设.docx
- 文档编号:30727996
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:26
- 大小:562.61KB
操作系统课设.docx
《操作系统课设.docx》由会员分享,可在线阅读,更多相关《操作系统课设.docx(26页珍藏版)》请在冰豆网上搜索。
操作系统课设
课程设计说明书
题目:
页面置换算法
院系:
计算机科学与工程
专业班级:
物联网13-1班
学号:
20133030**
学生姓名:
**
指导教师:
**
2015年12月30日
安徽理工大学课程设计(论文)任务书
计算机院系计算机教研室
学号
20133030**
学生姓名
**
专业(班级)
物联网13-1
设计
题目
页面置换算法程序设计
设
计
技
术
参
数
(1)先进先出页面置换算法(FIFO)
(2)最近最久未使用页面置换算法(LRU)
(3)最佳置换页面置换算法(OPT)
设
计
要
求
设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。
演示页面置换的三种算法。
通过随机数产生一个指令序列,将指令序列转换成为页地址流。
计算并输出各种算法在不同内存容量下的命中率。
工
作
量
要求设计说明书的字数在3000字以上。
工
作
计
划
2015.11.18-20根据课程设计的要求,查找相关资料,完成需求分析;
2015.12.09-12进行系统的概要设计;
2015.12.16-19进行系统的详细设计和源代码的书写;
2015.12.26-29对系统进行调试分析,写出课程设计报告。
参
考
资
料
[1]龚沛曾等编.C/C++程序设计教程.北京:
高等教育出版社,2004.
[2]谭浩强编著.C程序设计(第二版).北京:
清华大学出版社,1999.
[3]张尧学等编著.计算机操作系统教程.北京:
清华大学出版社,2011.
[4]孟庆昌等编.操作系统.北京:
电子工业出版社,2009.
[5]刘腾红等编著.操作系统.北京:
中国铁道出版社,2008.
[6]汤子瀛等编著.计算机操作系统.西安:
西安电子科技大学出版社,2011
指导教师签字
教研室主任签字
2015年11月18日
评分项目
分值
课程
设计
100分
课程设计态度
8分
优(8)良(6-7)中(4-5)差(0-3)
课程设计工作量
8分
优(8)良(6-7)中(4-5)差(0-3)
文献资料应用能力
8分
优(8)良(6-7)中(4-5)差(0-3)
实验设计方案及质量
25分
优(20-25)良(15-20)中(10-15)
差(0-9)
实际动手能力
25分
优(20-25)良(15-20)中(10-15)
差(0-9)
文档报告规范
8分
优(8)良(6-7)中(4-5)差(0-3)
团队合作精神
8分
优(8)良(6-7)中(4-5)差(0-3)
创新能力
10分
优(9-10)良(7-8)中(5-6)差(0-4)
成绩:
指导教师:
年月日
安徽理工大学课程设计(论文)成绩评定表
1问题描述
1.1设计目的
操作系统是计算机教学中最重要的环节之一,也是计算机专业学生的一门
重要的专业课程。
操作系统质量的好坏,直接影响整个计算机系统的性能和用户对计算机的使用。
一个精心设计的操作系统能极大地扩充计算机系统的功能,充分发挥系统中各种设备的使用效率,提高系统工作的可靠性。
由于操作系统涉及计算机系统中各种软硬件资源的管理,内容比较繁琐,具有很强的实践性。
要学好这门课程,必须把理论与实践紧密结合,才能取得较好的学习效果。
本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
熟悉页面置换算法及其实现,引入计算机系统性能评价方法的概念。
1.2算法描述
先进先出页面置换算法(FIFO)
优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。
该算法实现简单,只需把调入内存的页面根据先后次序链接成队列,设置一个指针总指向最早的页面。
但该算法与进程实际运行时的规律不适应,因为在进程中,有的页面经常被访问。
最近最久未使用页面置换算法(LRU)
如果以最近的过去作为不久将来的近似,那么就可以把过去最长一段时间里不曾被使用的页面置换掉。
它的实质是,当需要置换一页时,选择在之前一段时间里最久没有使用过的页面予以置换。
这种算法就称为最久未使用算法(LeastRecentlyUsed,LRU)。
LRU算法是与每个页面最后使用的时间有关的。
当必须置换一个页面时,LRU算法选择过去一段时间里最久未被使用的页面。
最佳置换页面置换算法(OPT)
最佳页面置换算法是Belady于1966年提出的一种理论上的算法。
是一种保证最少的缺页率的理想化算法。
1.3相关知识
虚拟存储器的引入:
局部性原理:
程序在执行时在一较短时间内仅限于某个部分;相应的,它所访问的存储空间也局限于某个区域,它主要表现在以下两个方面:
时间局限性和空间局限性。
虚拟存储器的定义:
虚拟存储器是只具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
虚拟存储器的实现方式:
分页请求系统,它是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页面形式虚拟存储系统。
请求分段系统,它是在分段系统的基础上,增加了请求调段及分段置换功能后,所形成的段式虚拟存储系统。
页面分配:
平均分配算法,是将系统中所有可供分配的物理块,平均分配给各个进程。
按比例分配算法,根据进程的大小按比例分配物理块。
考虑优先的分配算法,把内存中可供分配的所有物理块分成两部分:
一部分按比例地分配给各进程;另一部分则根据个进程的优先权,适当的增加其相应份额后,分配给各进程。
页面置换算法:
常用的页面置换算法有OPT、FIFO、LRU、Clock、LFU、PBA等。
2需求分析
本设计的目的是通过设计一个简单的虚拟存储器管理系统来模拟实际的页面调度算法与过程,以掌握这种有用的技术。
要求将其输入/输出处理程序编成
一个独立的进程模块并与其它请求输入/输出的进程并发运行。
并要求加入设备
管理子模块。
2.1先进先出淘汰算法算法(FIFO)
当需要淘汰一页时,总是选择主存中居留时间最长(即最老)的一页淘汰。
系统保留一张次序表,该表记录了作业程序的各页面进入主存的先后次序。
用数组作次序表可在主存中建立一个m(m是分配给该作业的存储块数)个元素的页号表和一个调换指针。
如图2-1所示:
2
4
5
1
图2-1替换指针
0
1
2
4
6
3
4
2
5
6
5
7
7
1
4
用存储分块表作次序表该次序表以块号为序,依次各块的分配情况。
这里假定m=4,且4,5,1,2页以依次装入2,6,7,4各存储块中。
此时存储分块表如图2-2所示:
块号页号指针
图2-2替换以前
当需要第6页时
块号页号指针
将替换第4页
0
1
2
4
3
4
2
2
5
6
5
7
7
1
4
图2-3替换之后
2.2最久未使用淘汰算法算法(LRU)
当需要淘汰一页时,总是选择最长时间未被使用的那一页淘汰。
用硬件实现
此算法每一页可以设置一个R位的寄存器;
每次访问一页时,将该页所对应寄存器的最左一位置1;
每隔时间t将所有的R位寄存器右移一位。
这样,在T=Rt时间内,方问过的页多对应的寄存器R内时一个不全为0的整数,而没有访问过的页相对应的R之值为0。
当缺页中断时,选择R值最小的那页进行淘汰。
2.3最佳淘汰算法算法(OPT)
当需要淘汰一页时,将选择以后永不使用的或许是在最长(未来)时间内不再被访问的页面。
采用最佳置换算法,通常可保证获得最低的缺页率。
但由于人目前还无法预
知一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法是无法实现的,便可以利用此算法来评价其它算法。
3概要设计
3.1置换算法思想
3.1.1最佳置换算法(Optimal)
它是由Belady于1966年提出的一种理论上的算法。
其所选择的被淘汰页面,将是以后永不使用的或许是在最长(未来)时间内不再被访问的页面。
采用最佳置换算法,通常可保证获得最低的缺页率。
但由于人目前还无法预知一个进程在内的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法是无法实现的,便可以利用此算法来评价其它算法。
算法流程如图3-1所示:
图3-1最佳置换算法流程图
3.1.2先进先出页面置换算法(FIFO)
这是最早出现的置换算法。
该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。
该算法实现简单只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。
算法流程如图3-2所示:
图3.2先进先出页面置换算法流程图
3.1.3最近最久未使用置换算法置换算法(LRU)
FIFO置换算法性能之所以较差,是因为它所依据的条件是各个页面调入内存时间,而页面调入的先后并不能反映页面的使用情况。
最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的。
由于无法预测各页面来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。
该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。
算法流程如图3-3所示:
图3-3最近最久未使用算法流程图
3.2程序设计思想
选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换。
如图3-4所示:
图3-4程序设计流程图
4详细设计
4.1最佳置换算法(Optimal)基本思想及相关代码
是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。
数组next[mSIZE]记录物理块中对应页面的最后访问时间。
每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。
/*最佳置换算法*/
voidOPT()
{
intmemery[10]={0};
intnext[10]={0};/*记录下一次访问时间*/
inti,j,k,l,m;
intmax;/*记录换出页*/
intcount=0;/*记录置换次数*/
/*前mSIZE个数直接放入*/
for(i=0;i { memery[i]=page[i]; for(j=0;j temp[i][j]=memery[j]; } for(i=mSIZE;i { /*判断新页面号是否在物理块中*/ for(j=0,k=0;j { if(memery[j]! =page[i]) k++; } if(k==mSIZE)/*如果不在物理块中*/ { count++; /*得到物理快中各页下一次访问时间*/ for(m=0;m { for(l=i+1;l if(memery[m]==page[l]) break; next[m]=l; } /*计算换出页*/ max=next[0]>=next[1]? 0: 1; for(m=2;m if(next[m]>next[max]) max=m; /*下一次访问时间都为pSIZE,则置换物理块中第一个*/ memery[max]=page[i]; for(j=0;j temp[i][j]=memery[j]; } else{ for(j=0;j temp[i][j]=memery[j]; } } compute(); print(count); } 4.2先进先出页面置换算法(FIFO)基本思想及相关代码 地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。 当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。 而用来选择淘汰哪一页的规则叫做页面置换算法。 最简单的页面置换算法是先入先出法(FIFO)。 /*先进先出页面置换算法*/ voidFIFO() { intmemery[10]={0}; inttime[10]={0};/*记录进入物理块的时间*/ inti,j,k,m; intmax=0;/*记录换出页*/ intcount=0;/*记录置换次数*/ /*前mSIZE个数直接放入*/ for(i=0;i { memery[i]=page[i]; time[i]=i; for(j=0;j temp[i][j]=memery[j]; } for(i=mSIZE;i { /*判断新页面号是否在物理块中*/ for(j=0,k=0;j { if(memery[j]! =page[i]) k++; } if(k==mSIZE)/*如果不在物理块中*/ { count++; /*计算换出页*/ max=time[0]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统
![提示](https://static.bdocx.com/images/bang_tan.gif)