什么是死锁?产生死锁的原因和必要条件是什么?
什么是死锁?产生死锁的原因和必要条件是什么如下:
(1) 一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资 源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。
(2)根本原因是:资源有限且操作不当。
(3)必要条件:互斥条件,不可抢占条件,占有且申请条件,循环等待条件。
死锁的规范定义:集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。
死锁:
一种情形,此时执行程序中两个或多个进程发生永久堵塞(等待),每个进程都在等待被其他进程占用并堵塞了的资源。例如,如果进程A锁住了记录1并等待记录2,而进程B锁住了记录2并等待记录1,这样两个进程就发生了死锁现象。
计算机系统中,如果系统的资源分配策略不当,更常见的可能是程序员写的程序有错误等,则会导致进程因竞争资源不当而产生死锁的现象。
在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。例如:事务A 获取了行 1 的共享锁。事务 B 获取了行 2 的共享锁。
排他锁,等待事务 B 完成并释放其对行 2 持有的共享锁之前被阻塞。
排他锁,等待事务 A 完成并释放其对行 1 持有的共享锁之前被阻塞。