进程死锁总结

死锁的定义:

死锁是指多个进程在运行过程中由于争夺资源而造成的一种僵局,若无外力作用,它们都将无法推进下去。此时系统处于一种死锁状态,这些互相等待的进程称之为死锁进程。

注意:通过系统资源分配图可以更精确地描述死锁。

死锁产生的原因:

(1)竞争资源。

比如:进程P1持有资源R1,它需要资源R2才能完成运行从而释放资源R1;进程P2持有资源R2,它需要资源R1才能完成运行从而释放资源R2;此时,系统就进入了一种僵局,死锁发生。

(2)进程间推进顺序非法。

系统资源分配图:

由进程集合P、资源集合R和边集合E组成。

P_i -> R_j:表示申请边。进程P_i申请了资源R_j。申请边由进程(圆圈表示)指向资源(矩形框表示)。

R_j -> P_i:表示分配变。资源R_j分配给了进程P_i。分配边由资源(矩形框内的一个点,其表示一个资源)指向进程(圆圈表示)。

可以证明:

如果系统资源分配图中没有环,则一定不存在死锁。

如果系统资源分配图中有环,则可能存在死锁。(具体要看每个类型的资源有多少个,若每个类型的资源只有一个则一定存在死锁)

(1)无死锁

进程死锁总结

P3执行完释放R3;P2得到R3执行完释放R1;P1得到R1执行完释放资源。

(2)有死锁

进程死锁总结

P3需要得到R2才会执行从而释放R3;P2需要得到R3才会执行从而释放R2,R1;P1需要得到R1才会执行。

P3,P2,P1就这样相互僵持谁也不能执行。

(3)无死锁

进程死锁总结

P4会执行完释放R2,P3得到R2会执行完释放R1,P1得到R1会执行完释放资源。P2直接执行完释放资源。

死锁的四个必要条件:

(1)互斥:至少有一个资源一次只能供一个进程使用,其他进程想使用必须等到其被释放为止。

(2)占有并等待:一个进程占有至少一个资源并得到另一个资源,这另一个资源又被其他等待进程所占有。

(3)不可抢占:进程持有的资源只能被进程自己释放。

(4)循环等待:有一组等待进程 {P0,P1,…,Pn},P0 等待的资源为 P1 占有,P1 等待的资源为 P2 占有,……,Pn-1 等待的资源为 Pn 占

        有,Pn 等待的资源为 P0 占有。形成一个等待环。

注意:所有四个条件必须同时成立才会出现死锁。循环等待条件意味着占有并等待条件,这样四个条件并不完全独立。

原创文章,作者:三酷猫,如若转载,请注明出处:https://www.sankumao.com/882.html

(0)
上一篇 2022年6月14日 上午8:43
下一篇 2022年6月26日 下午1:44

相关推荐

  • Linux如何搜索查找文件里面内容

    在Linux系统当中,如何搜、索查找文件里面的内容呢? 这个应该是系统维护、管理当中遇到最常见的需求。那么下面介绍,总结一下如何搜索、查找文件当中的内容。 搜索、查找文件当中的内容…

    2022年11月2日
  • vmware共享文件夹如何设置,虚拟机中共享文件夹在哪里?

    1.点击虚拟机设置,选项中,添加共享文件夹的路径(这个路径是主机的路径) 一般设置好了后,要重启一下虚拟机 2.现在我们就可以在共享的文件夹里存放文件了。这样我们在虚拟机中也可以读…

    2022年12月20日
  • Linux命令之rz命令与sz命令

    rz命令(Receive ZMODEM),使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器,注意不能上传文件夹。 当我们使用虚拟终端软件,如Xshell、S…

    2022年8月4日
  • 鼠标指针总是变成一条竖线怎么办?

    Windows 7系统下鼠标指针变成竖线的解决方法第一步、进入Windows7系统后,右键桌面,在弹出的快捷菜单之中点击个性化子菜单。第二步、弹出了个性窗口,在左侧之中点击更改鼠标…

    2022年4月18日
  • Windows 11 安装SSH服务

    一、什么是SSH? SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、…

    2023年1月14日
  • win10左下角搜索框无法搜索无反应的终极解决方案

    最近要做信息安全检查,检查电脑设置。所以使用搜索来搜索设置项,结果没想到搜索框一点就黑。完全不起作用,气死我了。去百度搜索了很多方法都没有什么效果。最后找到了下面这种解决方法。很简…

    2022年4月21日
  • windows如何查看端口占用情况?windows端口管理

    一、查看被占用端口对应的 PID 二、查看指定 PID 的进程 三、结束进程 或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看6283对应的进程是谁,如果看不到PID这…

    2022年10月24日
  • shell编程快速入门三:输入/输出重定向

    linux 的标准输入与输出 设备 设备名 文件描述符 类型 键盘 /dev/stdin 0 标准输入 显示器 /dev/stdout 1 标准输出 显示器 /dev/stderr…

    2023年2月8日
  • windows11如何打开22端口?

    Windows系统中,防火墙可以保护系统更安全,不过防火墙的开启不免会对一些端口进行限制,而如果你想使用这个端口,又不关闭防火墙的话,我们就需要在防火墙中进行设置!那么如何在Win…

    2023年1月14日
  • Linux中Swap与Buffer/Cache有什么区别?

    简介 swap:硬盘里面的,也就是常说的虚拟内存。 buffer/cache:内存里面区域,具体看下面这篇教程 swap作用 相对于内存来说, 磁盘的容量是非常大的, 所以Linu…

    2022年11月16日