首页 > 编程知识 正文

进程死锁产生的条件,死锁定理是用于处理死锁的()方法

时间:2023-05-06 01:12:32 阅读:176888 作者:4021

一.死锁定义

1 .在多程序系统中,虽然可以通过同时执行多个进程来提高资源利用率和系统吞吐量,但是在进程执行中会出现由于争夺资源而出现的僵局――死锁――deadlock――

进程处于这种僵持状态时,如果没有外力的作用,它们就无法进一步前进。

2 .死锁发生原理:如果某个进程组的每个进程都在等待某个事件的发生,且只有该进程组的其他进程可以触发该事件,则该进程组发生死锁。

3、对死锁的几点思考:

多个环境进程可能同时运行、竞争资源、进程无法前进、或相互等待,从而导致进程被阻止。 (发生进程阻塞的原因:只是资源分配不足) )死锁没有现实意义)即使再次执行同一进程组,如果组内的进程执行顺序不同,也不一定会发生死锁

4、死锁原因:

竞争资源引起进程死锁

可剥夺和非剥夺性资源

1 )可剥夺资源

意味着进程获得这样的资源后,该资源将被处理器和内存等其他进程和系统夺走

不可剥夺的资源

2 )意味着系统将此类资源分配给某个进程后,不能强制回收,只能在进程使用后自行释放。 例如,磁带机、打印机等

竞争非剥夺性资源

1 )系统的非剥夺性资源由于数量有限不能满足进程运行的需要,进程在运行中会争夺这些资源,导致临时资源陷入僵局

2 ) 3358www.Sina.com/指与永久资源相区别的、由一个进程生成并在由另一个进程使用后不再浪费的资源,临时性资源

消耗性资源

如果并发进程P1和P2按曲线所示顺序进行,则进入不稳定全区d内。 此时,P1保存资源R1,P2保存资源R2,系统处于不安全的状态。 因为此时,如果两个进程进一步前进,就有可能发生死锁。

例如,如果P1运行到P1request(r2 ),则R2将被阻止,因为它已经被P1占用。 当p2执行到P2request(r1 )时,由于R1被P1占用而阻塞,导致进程死锁。

5、死锁发生的根本原因:

流程所需资源量系统资源量

进程的推进顺序不合理(不正确) ) ) )。

6、发生死锁的4个必要条件

必要的意义都必须满足,缺一不可

第一、互斥条件:某个资源一次只能访问一个进程,如果该资源被分配给某个进程,则其他进程在该进程结束之前不能访问。

也就是说,该进程正在访问临界资源。

第二,要求和维持条件:进程至少维持一个资源,但提出新的资源要求,该资源已被其他进程占用。 (占有并等待,占有自己拥有的资源,等待其他进程释放自己所需的资源) )。

第三、不能抢占的条件:其他进程已经占用了某个资源,不能因为这个进程也需要这个资源就抢占其他进程已经有的资源。

第四、环路等待条件:出现死锁时,必然存在一个进程- -资源循环等待的环状链。 (每个进程至少占用以下进程所需的一个资源。)

如果所有这四个条件都满足,就会发生死锁。 发生死锁的进程无法进行,他们拥有的资源也无法释放,会发生cpu吞吐量降低、浪费系统资源、影响计算机性能等不利事件。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。