我们在平时使用电脑的时候,经常会遇到死机的情况,这个时候电脑的运行就会停止,无法工作也无法娱乐,让人非常头疼。今天这篇文章就来介绍一下死机的一个原因,死锁的内容。
死锁的起因,通常是源于多个进程对资源的争夺,首先来介绍一下关于资源的内容吧。系统中有很多的资源,引起死锁的资源主要是互斥访问方法的不可被抢占的资源,如打印机、数据文件、信号量等。按消耗划分成可重用性资源和消耗性资源,计算机中大多数是可抢占性资源。按占用可分为可抢占资源和不可抢占性资源,例如CPU和内存属于可抢占式,打印机和磁带机属于不可抢占式。
多个进程争夺不可抢占资源和可消耗资源时,就会导致死锁的发生。通常系统中所拥有的不可抢占性资源不足以满足多个进程运行的需要,使得进程在运行过程中会因争夺资源陷入僵局。当然,计算机的资源是永远无法同时满足所有任务的需求,所以才会有进程的推进顺序,而推进顺序的不当也会引起死锁。就好像进程A占用了a资源,进程B占用了b资源,进程A就会和进程B互相争夺彼此所持有的资源,导致双方进入循环等待的处境。
死锁的发生有四个必要条件,分别是互斥条件、请求和保持条件、不可抢占条件、循环等待条件。互斥条件就是对进程分配到的资源具有排它性,其他请求资源的进程只能等待。请求和保持条件相类似,在保持至少一个资源的同时又请求了其他资源,由于其他资源被占有,进程阻塞,又不释放自己已获得的资源。不可抢占条件,进程已获得资源在未释放之前不可被抢占。循环等待条件,和上述A、B进程类似,进程A等待进程B占用的资源,进程B等待进程C占用的资源。
四所示非常影响正常的计算机使用的,目前处理死锁的方法可归结为四种。预防死锁,通过设置某些限制条件,破坏产生死锁的四个必要条件的一个或几个。避免死锁,是通过某种方法防止系统进入不安全状态。检测思索,这种方法无须事先采取任何限制性措施,通过检测出死锁的发生,再通过适当的措施将进程从死锁中解脱出来。解除死锁,当检测到系统中发生死锁时,常用的方法时撤销一些进程,回收资源。
死锁是死机很常见的一种原因,区别就是死机时系统已经彻底崩溃了,而死锁只是发生循环等待,无法正常执行而已。
,