📅  最后修改于: 2020-12-14 03:48:00             🧑  作者: Mango
每个进程都需要一些资源来完成其执行。但是,资源是按顺序授予的。
死锁是一种情况,其中每个计算机进程都在等待分配给另一个进程的资源。在这种情况下,由于所需的资源由其他正在等待释放其他资源的进程所保留,因此没有任何进程被执行。
让我们假设存在三个过程P1,P2和P3。存在三个不同的资源R1,R2和R3。 R1分配给P1,R2分配给P2,R3分配给P3。
一段时间后,P1要求R2正在使用R1。 P1暂停执行,因为没有R2就无法完成。 P2还要求P3正在使用R3。 P2也停止执行,因为没有R3就无法继续执行。 P3还要求R1被P1使用,因此P3也停止执行。
在这种情况下,三个过程之间将形成一个循环。没有任何进展,他们都在等待。由于所有进程都被阻止,因此计算机无响应。
Sr. | Deadlock | Starvation |
---|---|---|
1 | Deadlock is a situation where no process got blocked and no process proceeds | Starvation is a situation where the low priority process got blocked and the high priority processes proceed. |
2 | Deadlock is an infinite waiting. | Starvation is a long waiting but not infinite. |
3 | Every Deadlock is always a starvation. | Every starvation need not be deadlock. |
4 | The requested resource is blocked by the other process. | The requested resource is continuously be used by the higher priority processes. |
5 | Deadlock happens when Mutual exclusion, hold and wait, No preemption and circular wait occurs simultaneously. | It occurs due to the uncontrolled priority and resource management. |
资源只能以互斥的方式共享。这意味着,如果两个进程不能同时使用同一资源。
进程在等待某些资源的同时保留另一资源。
计划好的流程将一直执行到完成为止。调度程序无法同时调度其他进程。
所有进程都必须以循环方式等待资源,以便最后一个进程正在等待第一个进程所持有的资源。