操作系统原理课程设计实践报告.docx
《操作系统原理课程设计实践报告.docx》由会员分享,可在线阅读,更多相关《操作系统原理课程设计实践报告.docx(8页珍藏版)》请在优知文库上搜索。
1、操作系统原理课程设计实战报告题目:侪真多进程并发环境中死锁的预防、防止、枪测与解除姓针学院:信息科技学院专业:计算机科学技术系JjI级:学号:指导教师:取肌20010年4月8日仿真多进程并发环境中死锁的预防、防止、检测与解除摘要:在多道程序系统中,多个程序并发执行时可能造成死锁。所谓死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局。当进程处于这种僵局状态时假设无外力作用,它们都将无法再向前推进,造成资源的浪费。该程序将模拟多进程并发时死锁现象的产生、防止、检测与解除。死锁防止用最著名的银行家算法,用银行家平安性算法类似的死锁检测算法来检测进程状况,又用资源剥夺法来实现死锁的解除。该程序实
2、现操作简易,表示清晰并且形象描述多进程并发环境中死锁的预防、防止、检测与解除。关键字:死锁;防止死锁;平安状态;银行家算法引言:在操作系统、数据库系统以及网络通信中,由于进程并发和资源共享,当系统中资源分配顺序或者进程推进顺序不当就会造成系统死锁。处于死锁状态的系统中,进程之间互相等待资源而永远不能继续向前推进,严重地影响了系统的可靠性。因而有时需要合理的对资源进行分配必要的时候加以限制保证系统平安、高效、稳定的运行。1理论分析1.1 死锁的概念如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。1.2 产生死锁的条件:1、互斥使用(资源
3、独占):一个资源每次只能给一个进程使用。2、不可强占(不可剥夺):资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放。3、请求和保持(局部分配,占有申请):一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)。4、循环等待:存在一个进程等待队列P1,P2,,Pn,其中PI等待P2占有的资源,P2等待P3占有的资源,Pn等待Pl占有的资源,形成一个进程等待环路。13死锁的预防在系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一。破坏“不可剥夺”条件在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即
4、得到满足而变为等待状态之前,必须释放已占有的全部资源,假设需要再重新申请。破坏“请求和保持”条件要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给予一次性分配。破坏“循环等待”条件采用资源有序分配法:把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次序进行,否那么操作系统不予分配。14平安状态与不平安状态所谓5状态,是指或程能按某种进程次序(pl,p2,pn),来为每个进程pi分配其所需资源,直至满足进程Pi对资源的最大需求量,使每个进程Pi可顺利地完成,那么此时系统处于平安状态,称序列(pl,p2,pn)为平安序列.如果系统无法找到这样一个
5、平安序列,那么称系统处于不平安状态2功能设计及其数据结构设计2.1功能设计程序主要提供并发环境的仿真,死锁的检测,银行家算法解决,死锁的解除等功能。仿真多进程并发环境中死钳的预防、避免、检测与解除第一蟀源OOOOO第二类资源 第三类缠 采用资源 剥夺进程0 O 0/7 ,uf5 0/3申请资源进程 1 O 3 i!f2 0/2申请资源剥夺I进程2 O 0/9 ,uf 0/2申请资源-i I进程3 O 0/2 i!f,02 0/2进程4 O 0/4 ,03 0/3申请资源申请资源刹夺复制日志I 潸空日志同要说明:第一类奥源第二类夷源 第三类资源 颗空闲 C)更源被占用C)资源最大誓求7王意事顶:
6、更摭算法时请先初始化用无措施算法时容易造成死锁录恃按钮是将该进程资源施放并挂起了解更多请阅读使用说明。无措施方案 银行家算法 自动检测解除I 初始化 :2. 2数据结构设计进程类Struction_pro属性:ID,Pl,P2,P3,State类Struction属性:P1,P2,P3StructionResource=newStrUCtion(Io,5,7);用于存放每种资源最大值StructionAvailable=newStruction(10,5,7);用于存放每种资源可用值Struction_proClaim=newStruction_pro5;用于存放进程集合信息StrUCtion
7、_proAllocation=newStrUCtion_pro5;用于存放进程集合已非配资源信息3核心算法3.1银行家算法死锁的防止主要采用银行家算法,流程图如下:银行家算法的根本思想是分配资源之前,判断系统是否是平安的;假设是,才分配。它是最具有代表性的防止死锁的算法。设进程cusneed提出请求REQUESTi,那么银行家算法按如下规那么进行判断。(1)如果REQUESTcusneedi=NEEDcusneedi,那么转(2);否那么,出错。(2)如果REQUESTcusneedi=AVAILABLEtcusneedi,那么转(3);否那么,出错。(3)系统试探分配资源,修改相关数据:AV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 课程设计 实践 报告