《大工17秋《操作系统》大作业题目及要求.doc》由会员分享,可在线阅读,更多相关《大工17秋《操作系统》大作业题目及要求.doc(9页珍藏版)》请在金锄头文库上搜索。
1、大连理工大学远程与继续教育学院操作系统课程设计学习中心: 专 业: 年 级: 年 春/秋 季 学 号: 学 生: 题 目: 1.谈谈你对本课程学习过程中的心得体会与建议? 转眼间,学习了一个学期的计算机操作系统课程即将结束。在这 个学期中,通过老师的悉心教导,让我深切地体会到了计算机操作系 统的一些原理和具体操作过程。 在学习操作系统之前, 我只是很肤浅地认为操作系统只是单纯地 讲一些关于计算机方面的操作应用, 并不了解其中的具体操作过程和 实用性。通过这一学期的学习,我才知道操作系统(OperatingSystem, 简称 OS)是管理计算机系统的全部硬件资源包括软件资源及数据资 源;控制程
2、序运行;改善人机界面;为其它应用软件提供支持等,使 计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效 的、友善的服务界面。 经过一个学期的学习, 我也知道了计算机操作系统是铺设在计算机硬 件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件 操作的细节,由它实现了对计算机硬件操作的多层次的抽象。总而言 之,操作系统的一些原理在生活中都可以找到相应的例子。结合生活 中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操 作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们 就会把操作系统学得更好。 2. 操作系统课程设计, 从以下5个题目中任选其一作答。操作系统
3、课程设计注意:从以下5个题目中任选其一作答。总 则:不限制编程语言,可以选用C/C+等(具体工具平台及语言可以自己根据自己的习惯选用,不必完全按照上述技术要求)作业提交:大作业上交时文件名写法为:姓名 奥鹏卡号 学习中心(如:戴卫东101410013979浙江台州奥鹏学习中心1VIP)以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。注意事项:独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计!题目一:页面置换算法FIFO算法要 求:(1)撰写一份word文档,里面包括(算法思路、算法数据结构、主要函数代码
4、、测试案例)章节。(2)算法思路:FIFO为先进先出算法,简单介绍该算法的基本思想,100字左右即可。(3)算法数据结构:列出主要用的数据结构,比如存储页面号序列page,存储装入物理块中的页面memery等,只需要列出数据结构名称即可。(4)主要函数代码:列出先进先出页面置换算法的代码。不需要列出主函数。(5)给出一个测试案例即可,比如设置物理块个数为3,页面序号7 0 1 2 3 0 4 2 3,代码应列出算法置换的具体细节。页面置换算法FIFO算法在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内
5、存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。在请求分页存储器管理系统中,我们需要一个页面置换算法,而先进先出算法就是最早出现的一种算法,利用该算法可以实现页面的置换,实现内存的充分利用,使进程可以执行。先进先出置换算法(FIFO) 最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时
6、,就把它插在队尾上。 这种算法只是在按线性顺序访问地址空间 时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。该算法实现简单,只需把调入内存的页面根据先后次序链接成队列,设置一个指针总指向最早的页面。但该算法与进程实际运行时的规律不适应,因为在进程中,有的页面经常被访问。1先进先出(FIFO)该算法实现简单,只需把一个进程已调入内存的
7、页面,按先后顺序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。1、输入当前要调用的页面号2、判断该页面是否已在队列内,若在队列内,不执行任何操作若不在队列内。则执行以下操作判断队列是否已满,若队列未满,直接把该页面号存入队列 若队列已满,删除并返回队头元素,然后把该页面号存入队3、输出置换次数,依次输出置换出的页面。2先进先出算法思路在请求分页存储器管理系统设计中,先进先出(FIFO)算法是一种给出页面访问的顺序与分配给作业的主存块数,使用队列作为数据结构编写算法,实现统计缺页次数与页面置换操作,该算法总是先淘汰最先进入内存的页面,即选择在内存中停留时间最久的页面予以淘
8、汰。3.先进先出算法步骤1.设置一些页面参数,int pagenum=0 内存页面数int total=0 要访问的页面总数int lacknumber 缺页的总数2.设置一个队列int seque20=0; 队列长度设置为20 ,且初值设为0 3.执行算法输入1,2,3,4,1,2,5,1,2,3,4,5 以输入-1结束4.算法数据结构Array020Void main()系统主函数Cin pagenum 键盘输入 页号存储页面号序列page存储装入物理块中的页面memery访问函数 voidVisit(int)void FIFO(void);打印函数print()核心函数FIFO()5.主
9、要函数代码#includeint choose; /选择置换方法int PageOrder100; /页面走向int Order=0; /页面计数int MaxPage; /页面总数int MaxPhy; /物理块总数int count; /命中次数struct PageTable /页表结构体 int PageNomber; int PhyNomber; int Sta; /状态位 int Visit; /访问位 int Change; /改变位;struct PageTable p10;/最多同时进入10个页表void main() void Init(); void Fifo(); vo
10、id Lru(); Init(); cout请选择置换方法endl1、FIFO 2、LRUchoose; if(choose=1) cout物理块变化过程:endl; Fifo(); coutendl; cout命中次数:countendl; else Lru();void Init() coutMaxPage; for(int i=1;i=MaxPage;i+) pi.PageNomber=i; pi.PhyNomber=0; pi.Change=0; pi.Sta=0; pi.Visit=0; coutendlMaxPhy; cout请输入页面走向以0结束PageOrderj; if(j9
11、9) cout超过最大数量,请重新输入,以0结束!; continue; void Fifo() int Max(struct PageTable M); struct PageTable i10;/模拟物理块 for(int j=0;jMaxPhy;j+) ij.PageNomber=0; ij.Visit=0; int b=0;/标志位,标记物理块已满 for(int k=1;kOrder;k+) if(b=1)/物理块满,进行页面置换 int a=0;/标志位,是否命中 for(int m=0;mMaxPhy;m+)/判断命中 if(im.PageNomber=PageOrderk) a
12、=1; count+; cout命中 ; break; if(a=1)continue;/命中继续循环 int Ma=Max(i);/未命中,选择时间最长的物理块进行置换 cout替换Ma ; iMa=pPageOrderk; for(int l=0;lMaxPhy;l+) il.Visit+; continue; for(j=0;jMaxPhy;j+)/页面写入空物理块 if(ij.PageNomber=0) ij=pPageOrderk; cout进入 ; for(int l=0;l=j;l+) il.Visit+; if(j=MaxPhy-1) b=b+1; break; void Lru()int Max(struct PageTable M)/返回最大值 int temp,Max=0; temp=M0.Visit; for(int j=1;jMaxPhy;j+) if(temp