死锁的产生:
允许多个进程并发执行共享系统资源时,系统必须提供同步机制和进程通信机制,然而,对这种机制使用不当的话,可能会出现进程永远被阻塞的现象;
例如,两个进程分别等待对方占有的一个资源,于是两者都不能执行而处于永远等待,这种现象称为“死锁”;
死锁的定义:
一组进程处于死锁状态是指:每一个进程都在等待被另一个进程所占有的、不能抢占的资源。
例如,
存在n个进程P1, P2, …, Pn;
进程Pi因为申请不到资源Ri而处于等待状态;
而Ri又被Pi+1占有, Rn被P1占有;
显然,这n个进程的等待状态永远不能结束,这n个进程就处于死锁状态;
死锁产生的例子: