操作系统原理第05章操作系统概述 本章主要学****内容
z何为死锁
z死锁的起因、必要条件和解决策略
操作系统原理 z死锁的预防
z死锁的避免
z死锁的检测
第05章死锁 z死锁的恢复
z重点
死锁的必要条件
苏曙光静态资源分配法
Huazhong University of Science and Technology 有序资源分配法
2
死锁的概念
3 4
1
死锁的概念死锁例子
z死锁的定义进程A 进程B
两个或多个进程无限期地等待永远不会发生的…………
条件的一种系统状态。A3
键盘输入【键盘】打印提示信息【打印机】
每个哲学家都在无限期的等待邻座放下筷子! …………
而邻座没有吃完永远不会放下筷子!死锁! 计算处理键盘输入【需要键盘?】
…………
打印结果【需要打印机?】计算处理
…………
进程A:无法获得打印机,暂停;【不会释放键盘】
进程:无法获得键盘,暂停;【不会释放打印机】
5 6
死锁的概念进程占有资源的同时申请不可能得到的新资源
z死锁的定义
两个或多个进程无限期地等待永远不会发生的
条件的一种系统状态。A17
[实质]在两个或多个进程中,每个进程都持有
某种资源,但又继续申请其它进程已持有的某
种资源。此时每个进程都拥有其运行所需的一
部分资源,但是又都不够,从而每个进程都不
能向前推进,陷于阻塞状态。这种系统状态称
死锁。 A18
7 8
2
幻灯片 5
A3 解释“永远不会发生的条件”:抛硬币上自****太阳从东边出来;恋人吵架僵持;
Administrator, 2008-10-14
幻灯片 7
A17 解释“永远不会发生的条件”:抛硬币上自****太阳从东边出来;恋人吵架僵持;
Administrator, 2008-10-14
A18 解释“都持有资源都申请新的资源”:过独木桥
Administrator, 2008-10-14
2. 死锁的起因、必要条件和解决策略不当的推进顺序导致死锁 A1
z死锁的起因 z A,B两个并发进程共享输入机和打印机
:输入机-打印机死锁点:A进程占有输入机,下一步准备申请打印机;
系统资源有限 A
而进程占有打印机,下一步准备申请输入机;
B:打印机-输入机B
资源数目不足以满足所有进程的需要,引起
B进程进展
进程对资源的竞争而产生死锁。进展路径 1
占
死锁点
并发进程的推进顺序不当 A5 用
输
入
A7
进程在运行过程中,请求和释放资源的顺序机占
用
禁区
不当,导致进程产生死锁。打
印进展路径进展路径 2
危险区 3
机
占用输入机
占用打印机 A进程进展
9 10
A6
不正确的P-V操作引起死锁
int full =0 ; /* 缓冲区中产品的个数*/ z关于死锁的一些结论
缓冲区中空位的个数
int empty = 5; /* */ 参与死锁的进程最少是两个
int mutex = 1; /* 互斥信号量:缓冲区互斥使用*/
两个以上进程才会出现死锁
producer( ) consumer( )
{ { 参与死锁的进程至少有两个已经占有资源
while( 还要继续消费)
while( 生产未完成)
{
{ 参与死锁的所有进程都在等待资源
生产一个产品; 阻塞
P(full); 参与死锁的进程是当前系统中所有进程的子集
P(empty);P(mutex); 阻塞 P(mutex); 等待mutex信号
P(mutex);P(empty); 等待empty信号从缓冲区取1个产品消费; 死锁会浪费大量系统资源,甚至导致系统崩溃
送1个产品到缓冲区; V(mutex);
V(mutex); V(empty);
消费一个产品;
V(full);
}
}
}
}
11 12
3
幻灯片 9
A5 不可能为每个进程都单独准备一套资源。石油,煤炭,天然气,地下水,等资源都是有限的。有计划,统筹安排,也能做到“可持续发展”。
Administr
操作系统原理第05章操作系统概述 来自淘豆网www.taodocs.com转载请标明出处.