第4章死锁处理 本章知识点: 4.1死锁问题概述 4.2死锁处理 43哲学家用餐问题
1 第4章 死锁处理 本章知识点: • 4.1 死锁问题概述 • 4.2 死锁处理 • 4.3 哲学家用餐问题
41死锁问题概述 死锁是由于进程间相互竞争系统资源或 通信而引起的一种阻塞现象。如果操作 系统不采取特别的措施,这种阻塞将永 远存在,最终可能导致整个系统处于瘫 痪状态。因此,死锁问题是操作系统中 需要考虑的重要问题
2 4.1 死锁问题概述 死锁是由于进程间相互竞争系统资源或 通信而引起的一种阻塞现象。如果操作 系统不采取特别的措施,这种阻塞将永 远存在,最终可能导致整个系统处于瘫 痪状态。因此,死锁问题是操作系统中 需要考虑的重要问题
4.1.1可重用资源 下面是一个使用可重用资源而发生死锁的例子。两个 进程P1和P2竞争必须互斥访问的磁盘文件D和磁带机T, 程序重复地执行以下操作: repeat repeat Request (D) Request (t) Re Request (D) Release(t) Release(d) Release (d) Release (t) forever forever
3 4.1.1 可重用资源 下面是一个使用可重用资源而发生死锁的例子。两个 进程P1和P2竞争必须互斥访问的磁盘文件D和磁带机T, 程序重复地执行以下操作: P1 P2 repeat repeat … … Request(D); Request(T); … … Request(T); Request(D); … … Release(T); Release(D); … … Release(D); Release(T); … … forever forever
4.1.2消耗型资源 下面是使用消耗型瓷源而发生死锁的例子: P Receive(p2, M): Receive(P1,Q); Send( Po, n Send (P, r 如果 Receive阻塞就会发生死锁
4 4.1.2 消耗型资源 下面是使用消耗型资源而发生死锁的例子: P1 P2 … … Receive(P2 ,M); Receive(P1 ,Q); … … Send(P2 ,N); Send(P1 ,R); 如果Receive阻塞就会发生死锁
413产生死锁的条件 系统产生死锁有四个必要条件: 互斥 占用并等待 非强占 循环等待
5 4.1.3 产生死锁的条件 系统产生死锁有四个必要条件: • 互斥。 • 占用并等待 • 非强占 • 循环等待