操作系统课程设计指导

上传人:fgh****35 文档编号:178838989 上传时间:2022-12-29 格式:DOC 页数:7 大小:56.50KB
收藏 版权申诉 举报 下载
操作系统课程设计指导_第1页
第1页 / 共7页
操作系统课程设计指导_第2页
第2页 / 共7页
操作系统课程设计指导_第3页
第3页 / 共7页
资源描述:

《操作系统课程设计指导》由会员分享,可在线阅读,更多相关《操作系统课程设计指导(7页珍藏版)》请在装配图网上搜索。

1、操作系统课程设计指导一、课程设计的目的操作系统是计算机系统的核心系统软件,它负责控制和管理整个系统的资源并组织用户协调使用这些资源,使计算机高效的工作。操作系统课程设计是操作系统理论课的必要补充,是复习和检验所学课程的重要手段,本课程设计的目的是综合应用学生所学知识,通过实验环节,加深学生对操作系统基本原理和工作过程的理解,提高学生独立分析问题、解决问题的能力,增强学生的动手能力。二、课程设计的要求1分析设计内容,给出解决方案(要说明设计实现的原理,采用的数据结构)。2画出程序的基本结构框图和流程图。3对程序的每一部分要有详细的设计分析说明。4源代码格式要规范。5设计合适的测试用例,对得到的运

2、行结果要有分析。6设计中遇到的问题,设计的心得体会。7按期提交完整的程序代码、可执行程序和课程设计报告。三、课程设计题目选做3、4、6、8可以申请优秀。1、吃水果问题桌上有一盘子,可以存放一个水果。爸爸总是放苹果到盘子中,而妈妈总是放香蕉到盘子中;一个儿子专等吃盘中的香蕉,一个女儿专等吃盘中的苹果。请用P,V操作实现上述问题的解。分析:在本题中,爸爸、妈妈、儿子和女儿共用一个盘子,盘子一次只能放一个水果。当盘子为空时,爸爸和妈妈都可以试着将一个水果放入盘中,但一次只能有一人成功放入水果。若放入盘子中的是香蕉,则允许儿子吃,女儿必须等待;若放入盘子中的是苹果,则允许女儿吃,儿子必须等待。 在本题

3、中,应设置3个信号量dish、apple、banaba,信号量dish表示盘子是否为空,其初值为1;信号量apple表示盘中是否有苹果,其初值为0;信号量banana表示盘中是否有香蕉,其初值为0。进程之间的同步描述如下:Semaphore dish=1;Semaphore apple,banana=0;Main() cobegin father(); mother(); son(); daughter(); coendFather() mather() while(true) while(true) p(dish); p(dish); 将苹果放入盘中; 将香蕉放入盘中; v(apple);

4、v(banana); Son() daughter() while(true) while(true) p(banana); p(apple); 从盘中取出香蕉; 从盘中取出苹果; v(dish); v(dish); 吃香蕉; 吃苹果; 2、司机与售票员问题设公共汽车上,司机和售票员的活动分别是:司机的活动:启动车辆;正常行车;到站停车。售票员的活动:关车门;售票;开车门。在汽车不断的到站、停站、行驶过程中,用信号量和P,V操作实现它们的同步。分析:在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票

5、,到站时司机停车,售票员在车停后开车门让乘客下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。在本题中,应设置两个信号量s1、s2,s1表示是否允许司机启动汽车,其初值为0;s2表示是否允许售票员开车门,其初值为0。这两个活动的同步用P,V原语描述如下:Semaphore s1,s2=0; Main() cobegin driver(); busman(); coendDriver() busman() while(true) while(true) p(s1); 关车门; 启动车辆; v(s1); 正常行车; 售票; 到站停车; p(s

6、2); v(s2); 开车门; 上下乘客; 3、文件打印问题有三个进程PA、PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录的大小。请用PV操作来保证文件的正确打印。分析:进程PA、PB、PC之间的关系为:PA与PB共用一个单缓冲区,而PB又与PC共用一个单缓冲区,其合作方式如图所示。当缓冲区1为空时,进程PA可以将一个记录读入其中;若缓冲区1中有数据且缓冲区2为空,则进程PB可以将记录从缓冲区1复制到缓冲区2中

7、;若缓冲区2中有数据,则进程PC可以打印记录。其他条件下,相应进程必须等待。 为遵循这一同步规则,应设置4个信号量empty1,empty2,full1,full2,信号量empty1、empty2分别表示缓冲区1及缓冲区2是否为空,其初值为1;信号量full1、full2分别表示缓冲区1及缓冲区2是否有记录可供处理,其初值为0。同步描述如下:semaphore empty1,empty2=1;semaphore full1,full2=0;main() cobegin PA(); PB(); PC(); CoendPA() while(true) 从磁盘读一个记录; P(empty1); 将

8、记录存入缓冲区1; V(full1); PB() while(true) P(full1); 从缓冲区1中取出记录; V(empty1); P(empty2); 将记录存入缓冲区2; V(full2); PC() while(true) P(full2); 从缓冲区2中取出记录; V(empty2); 打印记录; 4、哲学家就餐问题有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子,每个哲学家的行为是思考,感到饥饿,然后吃通心粉。为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子。分析:1)利用记录型信号量解决哲学家进

9、餐问题经分析可知,放在桌子上的筷子是临界资源,在一段时间内只允许一位哲学家使用。为了实现对筷子的互斥使用,可以用一个信号量表示一只筷子,由这五个信号量构成信号量数组。其描述如下: Var chopstick: array0,4 of semaphore;所有信号量均被初始化为1,第i位哲学家的活动可描述为:repeatwait(chopsticki);wait(chopstick(i+1)mod 5);eat;signal(chopsticki);signal(chopstick(i+1)mod 5);think;until false; 在以上描述中,当哲学家饥饿时,总是先去拿他左边的筷子,

10、即执行wait(chopsticki); 成功后,再去拿他右边的筷子,即执行wait(chopstick(i+1)mod 5);又成功后便可进餐。进餐完毕,又先放下他左边的筷子,然后再放右边的筷子。虽然,上述解法可保证不会有两个相邻的哲学家同时进餐,但有可能引起死锁。假如五位哲学家同时饥饿而各自拿起左边的筷子时,就会使五个信号量chopstick均为0; 当他们再试图去拿右边的筷子时,都将因无筷子可拿而无限期地等待。对于这样的死锁问题,可采取以下几种解决方法: (1) 至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两只筷子,从而使更多的

11、哲学家能够进餐。(2) 仅当哲学家的左、右两只筷子均可用时,才允许他拿起筷子进餐。(3) 规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子,而偶数号哲学家则相反。按此规定,将是1、2号哲学家竞争1号筷子;3、4号哲学家竞争3号筷子。即五位哲学家都先竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会有一位哲学家能获得两只筷子而进餐。 2)利用AND信号量机制解决哲学家进餐问题在哲学家进餐问题中,要求每个哲学家先获得两个临界资源(筷子)后方能进餐,这在本质上就是前面所介绍的AND同步问题,故用AND信号量机制可获得最简洁的解法。描述如下: Var chopsiick array of se

12、maphore:=(1,1,1,1,1);processirepeatthink;Sswait(chopstick(i+1)mod 5,chopsticki);eat;Ssignat(chopstick(i+1)mod 5,chopsticki);until false; 5、使用银行家算法模拟系统动态分配资源编写一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需求资源最大量时,就满

13、足进程的当前申请。这样就可以保证至少有一个进程可能得到全部资源而执行到结束,然后归还它所占有的全部资源供其它进程使用。6、基于DOS的多任务系统的实现1)完成线程的创建和撤消,并按优先权加时间片轮转算法对多个线程进行调度;2)改变时间片的大小,观察结果的变化。思考:为什么时间片不能太小或太大;3)假设两个线程共用同一软件资源(如某一变量,或某一数据结构),请用记录型信号量来实现对它的互斥访问;4)假设有两个线程共享一个可存放5个整数的缓冲,一线程不停的计算1到50的平方,并将结果放入缓冲中,另一个线程不断的从缓冲中取出结果,并将他们打印出来,请用记录型信号量实现这一生产者和消费者的同步问题;5

14、)实现消息缓冲通信,并于3,4中的简单通信进行比较;7、可变分区存储管理的内存分配与回收内存分配(采用首次适应算法与最佳适应算法分别完成)(1)动态输入构造空闲区表,并显示构造好的空闲区表.(提示:在两种不同的内存分配算法中,空闲区在空闲区表中的登记顺序是不一样的)(2)键盘接收内存申请尺寸大小.(3)根据申请,实施内存分配,并返回分配所得内存首址.(4)分配完后,调整空闲区表(即扣除分配部分),并显示调整后的空闲区表.(5)若分配失败,返回分配失败信息.内存回收动态输入构造空闲区表,并显示构造好的空闲区表.根据空闲区表,按内存回收的四种情况从键盘接收回收区域的内存首址与大小.回收区域,调整空

15、闲区表(与前面空闲区相连,与后面空闲区相连,与前后空闲区相连则合并,与前后空闲区都不相连则插入该项),并显示调整后的空闲区表.8、多用户多级目录文件系统 编写并调试一个树型目录结构的文件系统,模拟文件管理工作流程。要求:(1)设计多用户文件系统,采用多级文件目录。(2)至少要有十个以上的实用命令,应设置文件保护措施。(3)设计一个较实用的用户界面,方便用户使用,界面要为用户提供足够的选择信息,不需用户打入冗长的命令。说明:(1)使用可视化环境编程,程序界面模仿windows系统的资源管理器程序(左边为目录树形结构,显示多级文件目录,右边为目录内容显示)。(2)使用鼠标,键盘,快捷键及拖动作各种文件的操作。(3)文件操作功能有:用户登录,新建文件夹,新建文件,文件重命名,剪切文件/文件夹,复制文件/文件夹,粘贴,查看文件内容,修改文件内容,查看文件属性,修改文件权限等。(4)为了便于操作,系统内的所有文件文件类型默认为文本文件,用户可以直接编辑其文字内容。四、课程设计成绩评定课程设计成绩评定:答辩表现50 课程设计报告50课程设计总成绩评定:平时成绩 实验一 实验二 实验三 实验四 实验五 课程设计10 10 10 10 10 10 40

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!