进程死锁

来源:互联网 发布:晨曦预算软件破解版 编辑:程序博客网 时间:2024/05/29 06:46

进程死锁

目录

1产生死锁的原因

2产生死锁的四个必要条件

3预防死锁的产生

如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。

1产生死锁的原因

产生死锁的原因可归结为如下两点:
(1)竞争资源。当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足进程的需要时,会引起诸进程的竞争而产生死锁。
(2)进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。[1]

2产生死锁的四个必要条件

1.互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
2.请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
3.非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
4.循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。

3预防死锁的产生

1、采用资源静态分配策略,破坏"部分分配"条件;
2、允许进程剥夺使用其他进程占有的资源,从而破坏"不可剥夺"条件;
3、采用资源有序分配法,破坏"环路"条件。
死锁的避免不严格地限制死锁的必要条件的存在,而是系统在系统运行过程中小心地避免死锁的最终发生。最著名的死锁避免算法是银行家算法。死锁避免算法需要很大的系统开销。


0 0
原创粉丝点击