当多个进程同时竞争一种资源而都又缺少资源无法完成任务时,就会造成一种僵局,多个进程每个都抢占了一部分但还缺少一部分,这些进程无法向前推进,也无法后退,这就是死锁。
一、合理分配资源
首先,第一种方法就是预防死锁的产生,一次性合理地分配所有的资源,只要有一个资源得不到分配,也不给这个进程分配其他资源。这一方面主要就是预防死锁条件的产生。可以使用银行家算法,合理分配资源。
二、允许抢占资源
第二种就是发现系统中有进程死锁时,我们可以强制性地剥夺抢占某些进程的资源,然后分配给死锁进程,以解除死锁状态。用一部分死锁进程的资源来解决另外一部分进程的资源。
三、撤销进程挂起
在第二种中,我们是直接销毁某些死锁的进程来解除另外一部分进程的死锁。但是现在我们可以不用销毁这部分的死锁进程。我们可以将其挂起到CPU外,将资源空出来让给死锁进程,这样也可以解决死锁进程。