在多道程序系统中,由于多个进程并发执行,改善了系统资源的利用率并提高了系统的吞吐量,但可能导致死锁。例如有一座独木桥,如果有两人分别从桥的两边上桥,当它们在桥上相遇时,若他们互不退让,就会出现谁也不能过河的局面。
死锁是指多个并发执行的进程因竞争系统资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。
产生死锁的原因
死锁产生的主要原因有两方面:一方面是进程竞争资源,即由于系统资源不足,在多个进程竞争资源的过程中可能会导致死锁的产生,另一方面,进程间推进顺序不当也会引发死锁,即在多个进程的执行过程中,请求和释放资源的顺序不当也会导致死锁