好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

系统进程死锁产生的原因

1.有限资源的竞争引起进程死锁

当系统中为多个进程所共享的资源不能同?悸?闼?堑男枨笫?引起它们对资源的竞争而产生死锁。在通常情况下,系统中的资源分为可剥夺、非剥夺和临时性资源,不同类型的资源在发生死锁时的处理方式不同。

(1)可剥夺资源如 cpu 和主存等,在系统中优先权高的进程可剥夺优先权低的进程对这些资源的占用。

(2)非剥夺资源如打印机、读卡机和磁带机等是属于?妓承蛑馗词褂玫淖试础U饫嘧试吹奶氐闶牵?毕低嘲涯匙试捶峙涓?辰?毯螅?荒茉偾啃惺栈兀?荒茉诮?逃猛旰笞远?头拧M?所示是多个进程因争夺非剥夺资源产生死锁的典型例子。具体地说,如果有一组进程P1,P2,...,Pn,其中P1,P2,...,Pn分?e占有资源R1,R2,...,Rn,P1同时又申请资源R2,P2同时又申请资源R3,…,Pn-1同时又申请Rn,Pn占有资源Rn同时再申请资源R1。此时,这组进程都因资源得不到满足而进人了互相等待的阻塞状态,永远也不可能前进并到达终点,这时就说系统中出现了死锁现象,P1,P2,...,Pn这组进程处于死锁状态。



(3)临时性资源是指由进程产生、使用后无用的资源。如进程通信时使用的信件,如果对信件的发送和接收不加限制的话,则可能引起死锁。如图2所示,S1、S2和S3是临时性资源,分别由进程P1、P2和P3产生,进程之 间的 通信情况是:P1要求从P3接收信件,P3要求从P2接收信件,P2要求从P1接收信件。而实际的操作过程是:进程P1等待进程P3的信件S3来到后再向进程P2发送信件S1,P2又要等待P1的信件S1来到后再向P3发送信件S2,而P3也要等待P2的信件S2来到后才能发出信件S3。 在这 种情况下就形成了循环等待,发生死锁。



由此可见,多个进程竞争使用资源,而系统提供的资源数不能完全满足进程的需求,所以资源不足是引起死锁的主要原因。但需要注意的是,并不是多个进程要求使用多个资源就一定会产生死锁,上例还表明,进程在运行中对资源要求在时间上的冲突也是产生死锁的 一个 原因。

2.进程推进的顺序不当引起死锁

由于进程的调度是独立的,因此它们对资源的请求和释放操作也存在多种序列,其中有些序列是不安全的,如上面提到的对临时性资源的占用情况;而有些序列是安全的,例如进程P1、P2都需要资源R1、R2,如果两个进程的推进顺序是,进程P1占有资源R1,申请R2时,进程P2还未占有R2,这样就不会发生死锁。这说明死锁是一种与时间有关的 错误 ,它和各进程推进的速度以及对资源清求的顺序有关。

(window.slotbydup = window.slotbydup || []).push({ id: "u6900636", container: "_lzu4spjrog", async: true });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐

无法登录微软账户详细教程

一些电脑用户在重装了系统之后出现微软账户无法登录的情况,而且指纹和面部识别也都没法录入了,其实大家可以通过计算机中的管理建立新用户并禁用原用户来完成。

mtu怎么获取

电脑上的mtu最好是与我们的真实网络mtu保持一致,这样才可以发挥出最大的网速水平,那么我们应该如何查看自己的mtu,并获取到最佳mtu设置标准呢,就需要在cmd中一个个排查了。

7zip解压软件怎么用

7zip解压工具许多用户喜欢在手机上使用,但是这个软件对于新手来说操作还是有点难度的,要解压的话,大家可以通过右击你的压缩包,然后进行解压,但是前提是一定要有压缩包哟。

鸿蒙3.1升级名单一览

去年9月份华为开启了鸿蒙3.0系统公测升级更新,向许多机型都推送3.0,而本月鸿蒙3.1系统也将出现在大家面前,正式开启公测招募。

appdata文件夹有什么用

appdata是每一个Windows系统中几乎都有的文件夹,而且它通常会默认在c盘中,并占用了几十个G的内存空间,但是很多朋友并不知道这个appdata文件夹有什么用。

appdata文件夹可以移到d盘吗

我们在系统检查的时候经常会发现appdata文件夹非常大,而且因为它默认是在c盘,所以会占用大量的c盘空间非常令人头疼,这时候我们可以将appdata文件夹移动到d盘解放c盘吗,其实理论上是可行的。

wmiproviderhost怎么禁用

wmiproviderhost进程如果占用了用户很大内存空间的话,其实是可以直接进行禁用的,大家只需要进入系统服务界面,然后将相关的应用直接的进行禁用就好了。

wmi provider host可以结束进程吗

清理后台的时候,肯定很多的伙伴在任务管理器里面看到了wmi provider host进程吧,大家最好奇的莫过于是不是可以去结束这个进程,其实可以结束进程,但是非常不建议哟~

查看更多关于系统进程死锁产生的原因的详细内容...

  阅读:45次