银行家算法实验报告 .docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
银行家算法实验报告 关键字:银行家算法、安全状态、不安全状态、向量矩阵、进程、死锁、资源、就绪状态、执行状态、阻塞状态; 一 实验名称 进程同步互斥问题 二 实验目的 切实加深对进程死锁的认识; 正确理解系统的安全状态与不安全状态; 更进一步地理解和掌握银行家算法; 三 实验要求 3.1将本实验分成两个阶段,第一阶段实现系统安全性检测算法; 第二阶段实现银行家算法; 3.2要求用户能自主地输入不同的向量矩阵; 3.3你的程序能正确输出不同的运算结果; 3.4你的程序应具备良好的容错能力; 3.5力求用户界面的简洁美观; 四 实验原理 4.1 进程及进程死锁; 4.1.1 进程:是操作系统中最基本、最重要的概念,但直到目前还没有一个统一的定义,下面通过能反映进程实质的几点描述来认识进程: = 1 \* GB3 ① 进程是程序的一次执行; = 2 \* GB3 ② 进程是可以和别的计算并发执行的计算; = 3 \* GB3 ③ 进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位; = 4 \* GB3 ④ 进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。 进程具有几个基本的特征:动态性、并发性、独立性、异步性;每个进程通常由程序段、数据段和进程控制块三部分组成,其中进程控制块能唯一标识一个进程。 进程执行时间的间断性,决定了进程可能具有多种状态。事实上,运行中的进程至少具有以下三种基本状态: 就绪状态:进程已获得除处理机以外的所有资源,一旦分到了处理机就可以立即执行,这时进程所处的状态为就绪状态; 执行状态:又称运行状态。当一个进程获得必要的资源,并占有处理机,即在处理机上运行,此时进程所处的状态为执行状态; 阻塞状态:又称等待状态,正在执行的进程,由于发生了某事件而暂时无法执行下去(如等待输入/输出完成),此时进程所处的状态称为阻塞状态。 进程并非固定处于某一状态,它随着自身的推进和外界条件的变化而发生变化。 4.1.2 进程死锁 进程死锁是因多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都无法向前推进。例如,假设系统中有一台打印机和一台输入设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时答应机正被进程P2所占用。而P2在未释放打印机之前,又提出请求使用正被P1占用的输入设备的请求。这样,两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状态。 4.2进程死锁产生的原因; 进程产生死锁有以下两点: = 1 \* GB3 ① 系统资源不足。在上面举的例子里,如果输入设备不止被P1占用的一台,那么P2申请输入设备时,就可以得到满足,也就不会让P1、P2陷入死锁; = 2 \* GB3 ② 进程推进顺序不当。在上面举的例子里,如果P2在P1提出使用输入设备前,已经完成了对输入设备和打印机的使用,并且释放了它们;或者是在进程P2提出使用打印机的请求之前,进程P1已经完成了对输入设备和打印机的使用,并且释放了它们,则均不会发生死锁。 3死锁产生的必要条件; 死锁产生的必要条件有四条: = 1 \* GB3 ① 互斥条件 在某一段时间里,某资源被一个进程所占有,不能为别的进程使用; = 2 \* GB3 ② 不剥夺条件 进程所获得的资源在为使用完之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放; = 3 \* GB3 ③ 部分分配条件 进程每次申请它所需要的一部分资源。在等待新资源的同时,进程继续占用已分配到的资源; = 4 \* GB3 ④ 环路条件 存在一种进程资源的循环等待链,链中的每一个进程已获得资源的同时被链中下一个进程所请求。 4.4进程死锁的预防、避免和检测; 4.4.1 死锁的预防 对资源加以某种限制,以使死锁不会发生。这种死锁的预防是静态的,基本的方法是相对应上面的产生死锁的四个必要条件,采取破坏的方式,以达到死锁不会产生的目的。 4.4.2 死锁的避免 死锁的避免是对进程在申请某类资源时所使用的命令加以检测,通过这种方式来避免死锁的发生,相对于死锁的预防来说,这种方式是动态的。 另外,死锁的预防施加了比较强的限制条件,虽然实现起来比较简单,但是却严重损害了系统性能。在避免死锁的方法中,所施加的限制条件较弱,有可能获得较好的系统性能。 4.4.3死锁的检测 死锁的检测是在死锁发生以后采取的一种方式,能够把死锁检测出来并解除之,它是动态的。前面两种方式,都是在系统为进程分配资源时施加限制条件或进行检测,若系统为进程分配资源时不采取任何措施,则应该提供检测和解除死锁的手段。

文档评论(0)

li455504605 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档