网络工程师——进程管理——死锁问题

进程管理是操作系统的核心,但如果设计不当,就会出现死锁问题。如果一个进程在等待一个不可能发生的事,则进程就会死锁,而一个或多个进程产生死锁,就会造成系统死锁。


死锁的必要条件:

1.png

互斥:对于操作系统而言,有的资源它必须是互斥的来进行访问,互斥指的是一个资源在某一个时间刻只能被一个进程使用,当这个进程在使用这个资源的时候,其他进程无法使用这个资源

保持和等待:一个进程已经获得了一部分资源,但是还不足够,它在请求其他资源的时候,而其他资源又刚好被其他进程占用,这个时候就形成了保持和等待这样一个条件。

不剥夺:这个资源在被某一个进程占用之后,只有等这个进程使用完毕之后进行释放,不能够去剥夺某一个进程所占用的资源。

环路等待:进程1和进程2都获得了一部分资源,但是都还不足,进程1在等待进程2释放进程2当前所占用的资源,进程2在等待进程1释放进程1当前所占用的资源,当两个进程都占用了对方需要的资源,但是双方都不进行释放,都处于保持和等待,就造成了环路等待。


解决死锁

一、死锁预防:进程在运行过程中所需要的资源数一次性进行分配

二、死锁避免:对资源的请求数它可以分段的去展开,这要遵循银行家算法的问题,如何安全有效的分配资源

三、死锁检测:如何检测到死锁

四、死锁解除:剥夺机制


二维码

发表评论