




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设有五个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5支筷子,在每人两边分开各放1支。哲学家们在肚子饥饿时才试图分两次从两边拾起筷子就餐。 条件: 1)只有拿到2支筷子时,哲学家才能吃饭。 2)如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后才能拿到筷子。 3)任何哲学家在自己未拿到2支筷子吃饭之前,决不放下自已手中的筷子。 要求: 1)有什么情况下5个哲学家全部吃不上饭? 2)描述一种没有人饿死(永远拿不到筷子)算法。,哲学家餐桌问题。,答案要点: 设信号量c0c4,初始值为1,分别表示i号筷子被拿。 send(i) /第i个哲学家要吃饭 begin P(ci); P(ci+1 mod 5); eat; V(ci+1 mod 5); V (ci); end 上述过程可以保证两邻座不同时吃饭,但会出现5个哲学家每人一只筷子,谁也吃不上饭的死锁现象。,答案要点: 解决的思路如下:让奇数号的哲学家先取右手边的筷子,让偶数号的哲学家先取左手边的筷子。(为什么?) send(i) begin if i mod 2 =0 then else P(ci); P(ci+1 mod 5); P(ci+1 mod 5); P(ci); eat; eat; V(ci+1 mod 5); V (ci); V (ci); V(ci+1 mod 5); end,2、有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。,解:该系统不会由于对这种资源的竞争而产生死锁。因为在最坏情况下,每个进程都需要2个这样的资源,且每个进程都已申请到了1个资源,那么系统中还剩下1个可用资源。无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程己获得了它所需要的全部资源而确保它运行完毕,从而可将它占有的2个资源归还给系统,这就保证了其余三个进程能顺利运行。由此可知,该系统不会由于对这种资源的竞争而产生死锁。,3、已知某系统中的所有资源是相同的,系统中的进程严格按照一次一个的方式申请或释放资源。在此系统中,没有进程所需要的资源数量超过系统的资源总拥有数量,试对下面列出的各种情况说明是否会发生死锁。,解: 情况a: 因系统中仅存在1个进程,且系统中资源总数为2,由题目所给条件可知,该进程的最大资源需求量不超过2,显然情况a不会出现死锁。 情况b: 因系统中存在2个进程,且系统中资源总数为1,由题目所给条件可知,每个进程的最大资源需求量不超过1。不妨设两个进程的最大资源需求量为1,若系统将资源分配给其中的一个进程,则此进程已获得它所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,故不会发生死锁。 情况c: 因系统中存在2个进程,且系统中资源总数为2,由题目所给条件可知,每个进程的最大资源需求量不超过2。假设两个进程的最大资源需求量为2,若系统将资源分配给其中的一个进程,则此进程已获得它所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,以这种方式分配资源不会发生死锁;若系统将资源分配给每个进程1个,在此情况下,每个进程均获得1个资源且系统中已没有空闲资源,当其中的一个进程再次申请1个资源时,因系统中无空闲资源而使其等待,另一个进程的情况也是如此,因此以这种方式分配资源会发生死锁。,情况d: 因系统中存在2个进程,且系统中资源总数为3,由题目所给条件可知,每个进程的最大资源需求量不超过3。假设两个进程的最大资源需求量为3,若系统将资源分配给其中的一个进程,则此进程已获得它所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,以这种方式分配资源不会发生死锁;若系统将资源分配给其中一个进程1个,另一个进程2个,在此情况下,每个进程均获得部分资源且系统中已没有空闲资源,当其中的一个进程再次申请资源时,因系统中无空闲资源而使其等待,另一个进程的情况也是如此,因此以这种方式分配资源会发生死锁。,4、考虑下列资源分配策略;对资源的申请和释放可以在任何时候进行。如果一个进程提出资源请求时得不到满足,若此时无由于等待资源而被阻塞的进程,则自己就被阻塞;若此时已有等待资源而被阻塞的进程,则检查所有由于等待资源而被阻塞的进程。如果它们有申请进程所占用的资源,则将这些资源取出分配给申请进程。 例如,考虑一个有3类资源的系统,系统所有可用资源为(4,2,2),进程A申请(2,2,1),可满足;进程B申请(1,0,1),可满足;若A再申请(0,0,1),则被阻塞。此时,若C请求(2,0,0),它可以分到剩余资源(1,0,0),并从A已分到的资源中获得一个资源,于是进程A的分配向量变成(1,2,1),而需求向量变成(1,0,1)。 这种分配策略会导致死锁吗?如果会,请举一个例子;如果不会,请说明产生死锁的哪一个必要条件不成立? 这种分配方式会导致某些进程的无限等待吗?为什么?,分析及相关知识所谓死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。死锁是计算机系统和进程所处的一种状态。发生死锁的必要条件有以下四个:互斥条件;不剥夺条件;部分分配条件;环路条件。 解:本题所给的资源分配策略不会产生死锁。因为本题给出的分配策略规定若一进程的资源得不到满足,则检查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则将这些资源取出分配给申请进程。从而破坏了产生死锁必要条件中的不剥夺条件,这样系统就不会产生死锁。 这种方法会导致某些进程无限期的等待。因为被阻塞进程的资源可以被剥夺,所以被阻塞进程所拥有的资源数量在其被唤醒之前只可能减少。若系统中不断出现其他进程申请资源,这些进程申请的资源与被阻塞进程申请或拥有的资源类型相同且不被阻塞,则系统无法保证被阻塞进程一定能获得所需要的全部资源。例如,本题中的进程A申请(2,2,1)后再申请(0,0,1)被阻塞。此后,进程C又剥夺了进程A的一个资源,使得进程A拥有的资源变为(1,2,1),其需求向量为(1,0,1)。之后,若再创建的进程总是只申请第1和第3类资源,总是占有系统所剩下的第1和第3类资源的全部且不阻塞,那么进程A将会无限期地等待。,5、一台计算机有8台磁带机。它们由N个进程竞争使用,每个进程可能需要3台磁带机。请问N为多少时,系统没有死锁危险,并说明原因。,解:当N为1,2,3时,系统没有产生死锁的危险。因为,当系统中只有1个进程时,它最多需要3台磁带机,而系统有8台磁带机,其资源数目已足够系统内的1个进程使用,因此绝不可能发生死锁;当系统中有2个进程时,最多需要6台磁带机,而系统有8台磁带机,其资源数目也足够系统内的2个进程使用,因此也不可能发生死锁:当系统中有3个进程时,在最坏情况下,每个进程都需要3个这样的资源,且假定每个进程都已申请到了2个资源,那么系统中还剩下2个可用资源,无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程已获得了它所需要的全部资源而确保它运行完毕,从而可将它占有的3个资源归还给系统,这就保证了其余进程能顺利运行完毕。由此可知,当N为1,2,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国电焊头盔行业产业运行态势及投资规划深度研究报告
- 2025至2030中国电子设备维修服务行业产业运行态势及投资规划深度研究报告
- 2025至2030中国甜茶叶子市场投资风险及运行状况预测研究报告版
- 2025至2030中国环境质量检测行业市场发展分析及竞争格局与投资前景报告
- 培训需求调查课件
- 餐饮服务培训课件
- 儿童健康成长之路从骨关节健康知识普及开始
- 智慧教育新篇章技术如何重塑学习成效
- 学习者的创新思维培养与实践
- 那智智能技术助力商业高效运营与决策
- 初一生活学习指导
- 下肢静脉曲张
- 2024年露营帐篷项目可行性研究报告
- 《公务员录用体检操作手册(试行)》
- 2024粤东西粤北地区教师全员轮训培训心得总结
- 2024-2025学年华东师大版数学七年级上册计算题专项训练
- 福建省机关工作人员年度考核登记表
- JBT 7808-2010 无损检测仪器 工业X射线探伤机主参数系列
- DB44-T 2474-2024 自然教育标识设置指引
- 研学基地合作协议
- 驾驶员行为规范管理制度
评论
0/150
提交评论