死锁 ╰+攻爆jí腚メ 2022-10-26 04:00 9阅读 0赞 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70] * 死锁: 各进程互相等待对方手里的资源, 导致各进程都阻塞, 无法向前推进的现象。 * 饥饿: 由于长期得不到想要的资源, 某进程无法向前推进的现象。 比如: 在短进程优先(SPF) 算法 中, 若有源源不断的短进程到来,则长进程将一直得不到处理机, 从而发生长进程“饥饿” 。 * 死循环: 某进程执行过程中一直跳不出某个循环的现象。 有时是因为程序逻辑 bug 导致的, 有时是程序员故意设计的。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 1] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 2] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 3] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 4] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 5] * 安全序列, 就是指如果系统按照这种序列分配资源, 则每个进程都能顺利完成。 只要能找出一个 安全序列, 系统就是安全状态。 * 安全状态, 就一定不会发生死锁。 如果系统进入不安全状态, 可能发生死锁 银行家算法核心思想: 在进程提出资源申请时, 先预判此次分配是否会导致系统进入不安全状态。 如果会进入不安全状态, 就暂时不答应这次请求, 让该进程先阻塞等待。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 6] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 7] * 假设系统中有 n 个进程, m 种资源每个进程在运行前先声明对各种资源的最大需求数,可用一个 n\*m 的矩阵(可用二维数组实现)表示所有进程对各种资源的最大需求数。 不妨称为最大需求矩阵 Max, Max\[i,j\]=K 表示进程 Pi 最多需要 K 个资源Rj。 * 同理, 系统可以用一个 n\*m 的分配矩阵 Allocation 表示对所有进程的资源分配情况。 Max – Allocation =Need 矩阵, 表示各进程最多还需要多少各类资源。 * 另外, 还要用一个长度为m的一维数组 Available 表示 当前系统中还有多少可用资源。 某进程Pi向系统申请资源,可用一个长度为m的一维 数组 Requesti 表示本次申请的各种资源量。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 8] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 9] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 10] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 11] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70]: /images/20221024/efa23e68dde545f1b8a7ef9cc1316020.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 1]: /images/20221024/c3a1ce5b34944a64b873948ec407ac9b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 2]: /images/20221024/4e21df5491574c12b8c9f81cc250e23e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 3]: /images/20221024/f9c7ba59d8c6407492c1c1a98b96bd77.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 4]: /images/20221024/2223531ca274467a85f606481d735867.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 5]: /images/20221024/d56039f4d1f946c08f32997081919d10.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 6]: /images/20221024/aa0b5bddd64b4840b14811ae974e3c78.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 7]: /images/20221024/8fa6faba09544d18b1fd30557e3c9985.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 8]: /images/20221024/2292a5797c254091bab609352a54e9af.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 9]: /images/20221024/cb31ff50189f4ebdb9022a1713354433.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 10]: /images/20221024/2a1b8cf389a54a7f8ec2bcf841a1b3a9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxNDgwNjA3_size_16_color_FFFFFF_t_70 11]: /images/20221024/edd32127e9b74f40bfc595702ffe543f.png
相关 死锁 线程 T1 占有A锁的钥匙, 同时需要拿B锁的钥匙. 线程 T2 占有B锁的钥匙, 同时需要拿A锁的钥匙. 如果两个线程都不释放自己的钥匙, 那么就会出现死锁. 如果T1线 淩亂°似流年/ 2022年12月27日 08:56/ 0 赞/ 7 阅读
相关 死锁 什么是死锁 死锁,就是指多个线程循环等待它方占有的资源而无限期地僵持下去的局面。 如果没有外力的作用,那么死锁涉及到的各个线程都将永远处于阻塞状态。 就如同两个人过 Love The Way You Lie/ 2022年12月09日 03:11/ 0 赞/ 7 阅读
相关 死锁 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub ╰+攻爆jí腚メ/ 2022年10月26日 04:00/ 0 赞/ 10 阅读
相关 死锁 > Java程序无法从死锁中恢复过来,所以设计程序时一定要排除死锁的可能。死锁中的经典问题就是哲学家进餐问题。 死锁的常见类型 锁顺序死锁 下图所示就是最典型的锁 雨点打透心脏的1/2处/ 2022年07月13日 14:09/ 0 赞/ 239 阅读
相关 死锁 一.死锁发生的条件 死锁的发生必须具备下列4个必要条件: –互斥:任一时刻只允许一个进程使用资源 –请求和保持:进程在请求其余资源时,不主动释放已经占用的资源 –非剥夺 快来打我*/ 2022年06月13日 12:57/ 0 赞/ 301 阅读
相关 死锁 死锁: 指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统 柔情只为你懂/ 2022年05月22日 07:43/ 0 赞/ 271 阅读
相关 死锁 1.死锁的条件 死锁有三个必要条件: 1) 互斥——一次只有一个进程可以使用一个资源。其他进程不可访问已分配给其他进程的资源。 2) 占有且等待— 爱被打了一巴掌/ 2022年03月15日 10:16/ 0 赞/ 152 阅读
相关 死锁 一、什么是死锁 多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。 死锁是指两个或两个以上的进程(线程)在运行过 ╰+哭是因爲堅強的太久メ/ 2022年01月27日 04:49/ 0 赞/ 477 阅读
相关 死锁 一、死锁的概念 死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。若无外力作用,事务都将无法推进下去。 解决死锁问题最简单的方式 快来打我*/ 2021年12月09日 01:04/ 0 赞/ 420 阅读
相关 死锁 关于死锁的一些结论: 参与死锁的进程数至少为两个 参与死锁的所有进程均等待资源 参与死锁的进程至少有两个已经占有资源 死锁进程是系统中当前进程集 你的名字/ 2021年11月04日 15:12/ 0 赞/ 421 阅读
还没有评论,来说两句吧...