《大工19秋《操作系统》大作业题目及要求.pdf》由会员分享,可在线阅读,更多相关《大工19秋《操作系统》大作业题目及要求.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大连理工大学远程与继续教育学院操作系统课程设计学习中心:学习中心:江苏淮安金湖奥鹏学习中心专专业:业:计算机科学与技术年年级:级:19 年春季学学号:号:191644307377学学生:生:罗超题题目目:操作系统操作系统1.1.谈谈你对本课程学习过程中的心得体会与建议?谈谈你对本课程学习过程中的心得体会与建议?转眼间,学习了一个学期的计算机操作系统课程即将结束。在这个学期中,通过老师的悉心教导,让我深切地体会到了计算机操作系统的一些原理和具体操作过程。在学习操作系统之前,我只是很肤浅地认为操作系统只是单纯地讲一些关于计算机方面的操作应用,并不了解其中的具体操作过程和实用性。通过这一学期的学习,
2、我才知道操作系统(Operating System,简称 OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。经过一个学期的学习,我也知道了计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的多层次的抽象。操作系统的一些原理在生活中也有所应用,以下是我通过这一学期的学习,把操作系统的一些原理联系生活所得的心得体会:一、生产消费者问题一、生产消费者问题在实际的操作系统操作过程中
3、,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。单单抽象出生产者和消费者,还够不上是生产者消费者问题。该问题还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下:1、你把信写好相当于生产者制造数据2、你把信放入邮筒相当于生产者把数据放入缓冲区3、邮递员把信从邮筒取出相当于消费者把数据取出缓冲区4、邮递员把信拿去邮局做相应的处
4、理相当于消费者处理数据二、银行家算法避免死锁二、银行家算法避免死锁死锁的产生是指两个或两个以上的进程在执行过程中,因争夺资源而造成的大连理工大学远程与继续教育学院操作系统课程设计一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。我觉得操作系统所讲的死锁就好像两个人竟过独木桥,两辆车竟过单行桥等阻塞现象,原因是共享资源,即道路。为提高系统资源的利用率,避免死锁并不严格限制死
5、锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。然而,最有代表性的避免死锁的算法,是 Dijkstra 的银行家算法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是安全的,才分配。我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(2)顾客可以分
6、期贷款,但贷款的总数不能超过最大需求量;(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;(4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。另外,我们也可以把操作系统看作是建造房子,操作系统的资源看作是造房子的起吊机台数,进程向操作系统请求分配资源相当于建造房子时申请的起吊机台数。为保证工程的顺利进行,其操作过程如下:当一栋房子对起吊机的最大需求量不超过建造房子现有的起吊机时可接纳该房子的建造;所要建造的房子可以分开几次申请起吊机,但申请的起吊机的总数不能超过最大需求量;当现有的起吊机台数不能满足某栋房子尚需的
7、起吊机时,对该栋房子所需的起吊机数可推迟给予,但总能是房子在有限的时间里得到贷款;当建造的房子得到所需的全部起吊机后,一定能在有限的时间里归还所有的起吊机数。三、进程同步问题三、进程同步问题一个进程到达了确定的点后,除非另一些进程已经完成了某些操作,否则不得不停下来等待另一进程为它提供的消息,早未获得消息前,该进程处于等待状态,获得消息后被唤醒处于就绪状态,这就是进程同步。我们在生活中也可以找到相应的例子:例如汽车司机和售票员,汽车司机负责开车、进站、开车门、关车门与进站;售票员负责售票、进出站后观察车门,给司机发开关门信息;正常状态下,各自活动,司机开车,售票员售票;在进出站时双方要进行进程
8、同步。四、小结四、小结总而言之,操作系统的一些原理在生活中都可以找到相应的例子。结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们就会把操作系统学得更大连理工大学远程与继续教育学院操作系统课程设计好。2.2.操作系统课程设计操作系统课程设计,从以下从以下 5 5 个题目中任选其一作答。个题目中任选其一作答。操作系统课程设计操作系统课程设计注意:从以下注意:从以下 5 5 个题目中任选其一作答。个题目中任选其一作答。总总则则:不限制编程语言,可以选用 C/C+等(具体工具平台及语言可以自己根据自己的习惯选用,不必完全按
9、照上述技术要求)作业提交:作业提交:大作业上交时文件名写法为:姓名 奥鹏卡号学习中心(如:戴卫东101410013979 浙江台州奥鹏学习中心1VIP)以附件word 文档形式上交离线作业(附件的大小限制在 10M 以内),选择已完成的作业(注意命名),点提交即可。如下图所示。注意事项:独立完成作业,独立完成作业,不准抄袭其他人或者请人代做,不准抄袭其他人或者请人代做,如有雷同作业,如有雷同作业,成绩成绩以零分计!以零分计!题目一:页面置换算法题目一:页面置换算法 FIFOFIFO 算法算法要要求求:(1)撰写一份word 文档,里面包括(算法思路、算法数据结构、主要函数代码、测试案例)章节。
10、(2)算法思路:FIFO 为先进先出算法,简单介绍该算法大连理工大学远程与继续教育学院操作系统课程设计的基本思想,100 字左右即可。(3)算法数据结构:列出主要用的数据结构,比如存储页面号序列 page,存储装入物理块中的页面 memery等,只需要列出数据结构名称即可。(4)主要函数代码:列出先进先出页面置换算法的代码。不需要列出主函数。(5)给出一个测试案例即可,比如设置物理块个数为3,页面序号 701230423,代码应列出算法置换的具体细节。题目二:页面置换算法题目二:页面置换算法 LRULRU 算法算法要要求求:(1)撰写一份word 文档,里面包括(算法思路、算法数据结构、主要函
11、数代码、测试案例)章节。(2)算法思路:LRU 为最近最久未使用算法,简单介绍该算法的基本思想,100 字左右即可。(3)算法数据结构:列出主要用的数据结构,比如存储页面号序列 page,存储装入物理块中的页面 memery等,只需要列出数据结构名称即可。(4)主要函数代码:列出 LRU 页面置换算法的代码。不需要列出主函数。(5)给出一个测试案例即可,比如设置物理块个数为3,页面序号 701230423,代码应列出算法大连理工大学远程与继续教育学院操作系统课程设计置换的具体细节。题目三:进程同步与互斥题目三:进程同步与互斥 生产者生产者-消费者问题消费者问题要要求求:(1)撰写一份word
12、文档,里面包括(设计思路、流程(原理)图、基本内容、源代码)章节。(2)设计思路:简单介绍生产者进程的功能以及消费者进程的功能。(3)流程(原理)图:绘制流程图或原理图。(4)基本内容:详细介绍生产者进程与消费者进程之间的同步与互斥关系。(5)源代码:列出源代码,也可以仅列出伪代码。题目四:进程同步与互斥题目四:进程同步与互斥 哲学家进餐问题哲学家进餐问题要要求求:(1)撰写一份word 文档,里面包括(设计思路、流程(原理)图、源代码)章节。(2)设计思路:简单描述哲学家进餐问题。可设计五个哲学家,每人都需要一双筷子。哲学家有两种活动:吃饭和思考,需要成功设计让每个哲学家能够顺利吃饭。(3)
13、流程(原理)图:绘制流程图或原理图。(4)源代码:列出源代码,也可以仅列出伪代码。题目五:银行家算法题目五:银行家算法大连理工大学远程与继续教育学院操作系统课程设计要要求求:(1)撰写一份word 文档,里面包括(算法思路、算法数据结构、主要函数代码)章节。(2)算法思路:简单介绍算法的基本思想,100 字左右即可。(3)算法数据结构:列出主要用的数据结构,比如最大需求矩阵 Max,已分配矩阵 Allocation等,只需要列出数据结构名称即可。(4)主要函数代码:由于银行家算法比较难,列出部分核心代码即可。每一个函数需要简单说明此函数的功能。比如“coutprint()函数,该函数功能是打印
14、输出”。题目一:页面置换算法 FIFO 算法先进先出页面置换算法一、基本思想:先进先出页面置换算法,该算法淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法是用 C 语言实现的,其中页面置换是通过数组实现的。二、源程序代码:#include#define M 20/要访问的页面数#define N 3/内存容量void FIFO(int aN,int bM)int i,j,k;int cM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;float s;for(i=0;iN;i+)ai=bi;for(j=0;j=i;j+)printf(%d
15、,aj);大连理工大学远程与继续教育学院操作系统课程设计printf(n);printf(n);printf(内存中的页面为:);for(j=0;j=i;j+)printf(%d,aj);printf(n);printf(n);k=N;for(j=N;jM;j+)for(i=0;iN;i+)if(bj=ai)printf(内存中有%d 页面,可直接访问。n,bj);cj=1;break;if(cj=1)for(i=0;iN;i+)printf(%d,ai);if(cj=0)ak%N=bj;k+;for(i=0;iN;i+)printf(%d,ai);printf(n);printf(页面%d 进入内存n,bj);printf(n);s=k*1.0/M;printf(中断次数为:%dn,k);printf(缺页率为:%fn,s);void main()大连理工大学远程与继续教育学院操作系统课程设计int i;int aN=0,0,0;int bM;printf(nFIFO 页面置换算法n);printf(n);printf(输入要访问的页面:);for(i=0;iM;i+)scanf(%d,&bi);if(bi=-1)break;FIFO(a,b);三、实验结果截图:大连理工大学远程与继续教育学院操作系统课程设计
限制150内