当我们通常使用电脑时,我们经常会遇到崩溃。这时,电脑的运行就会停止,无法工作或娱乐,这让人头疼。今日本文将介绍死机的一个原因,死锁的内容。
死锁的原因通常来自于多个过程对资源的竞争。让我们先介绍一下资源。系统中有很多资源,导致死锁的资源主要是打印机、数据文件、信号量等不可抢占的资源。可重用资源和消耗资源按消耗划分,计算机多为可抢占资源。可分为可抢占资源和不可抢占资源,如占用资源CPU而且内存是可抢占的,打印机和磁带机是不可抢占的。
当多个过程争夺资源和可消耗资源时,就会导致死锁。通常系统中不可抢占的资源不足以满足多个过程运行的需要,使过程在运行过程中陷入僵局。当然,计算机资源永远不会同时满足所有任务的需求,所以会有进程顺序,推进顺序不当也会导致死锁。就好像过程A占用了A资源,过程B占用了B资源,过程A会和过程B争夺对方持有的资源,导致双方进入循环等待。
死锁的发生有四个必要条件,即相互排斥、请求和维护、不可抢占和循环等待。相互排斥的条件是排斥过程分配的资源,其他要求资源的过程只能等待。请求类似于维护条件。在维护至少一个资源的同时,请求其他资源。由于其他资源被占用,过程被阻塞,他们不释放已获得的资源。不能抢占条件,在释放之前不能抢占过程获得的资源。循环等待条件,以上A、B流程类似,流程A等待流程B占用的资源,流程B等待流程C占用的资源。
目前处理死锁的方法有四种,对计算机的正常使用影响很大。通过设置一定的限制条件,防止死锁破坏四个必要条件中的一个或多个。通过某种方法防止系统进入不安全状态,避免死锁。这种方法不需要事先采取任何限制性措施,通过检测死锁的发生,然后通过适当的措施将过程从死锁中解脱出来。解除死锁,当检测到系统中的死锁时,常用的方法是撤销一些过程,回收资源。
死锁是死机的常见原因。区别在于系统在死机时已经完全崩溃,而死锁只是等待循环,无法正常执行。