死锁 煤死锁的定义 煤鸵鸟算法 煤死锁的防北 煤死锁的避免 兴死锁的检测 煤解决死锁的混合策略 08:52
08:52 死锁 死锁的定义 鸵鸟算法 死锁的防止 死锁的避免 死锁的检测 解决死锁的混合策略
死 锁的定义 操作系統中的死锁基于如下假定: ◆任意一个进程要求资源的最大数量不超过 系统能提供的最大量 ◆如果一个选程在执行中所提出的资源要求 能够得到满足。那么它一定能在有限的时 间内结束 ◆一个资源在任何时刻最多只为一个进程所 占有 ◆一个进程一次申请一个资源。且只在资源 得不到满足时才处于等待状 ◆一个选程结束时释放它所占有的全部资源 ◆系统具有有限个进程和资源 08:52
08:52 死锁的定义 操作系统中的死锁基于如下假定: 任意一个进程要求资源的最大数量不超过 系统能提供的最大量 如果一个进程在执行中所提出的资源要求 能够得到满足,那么它一定能在有限的时 间内结束 一个资源在任何时刻最多只为一个进程所 占有 一个进程一次申请一个资源,且只在资源 得不到满足时才处于等待状态 一个进程结束时释放它所占有的全部资源 系统具有有限个进程和资源
死锁的定义 操作系统中的死锁是指:系统中存 在一组进程。其中每一个进程都在 等待另一个进程所占有的且不可被 强占的资源;即该组进程形成了 环等待资源的状忞。这种等侍永远 不能结束 兴死锁的产生是与资源分配葉略和并 发进程执行的速度有关 08:52
08:52 死锁的定义 操作系统中的死锁是指:系统中存 在一组进程,其中每一个进程都在 等待另一个进程所占有的且不可被 强占的资源;即该组进程形成了循 环等待资源的状态,这种等待永远 不能结束 死锁的产生是与资源分配策略和并 发进程执行的速度有关
若干死锁的例子 例1竞争资源产生死锁。 设系统有打印机、读卡机各一台,它们被进程 P和Q共享。两个进程并发执行,它们按下 列次序请求和释放资源 紫进程P 进程Q ※请求读卡机请求打印机 请求打印机请求读卡机 释放读卡机释放读卡机 释放打印机释放打印机 08:52
08:52 若干死锁的例子 例1 竞争资源产生死锁。 设系统有打印机、读卡机各一台,它们被进程 P和Q共享。两个进程并发执行,它们按下 列次序请求和释放资源: 进程P 进程Q 请求读卡机 请求打印机 请求打印机 请求读卡机 释放读卡机 释放读卡机 释放打印机 释放打印机
例2PⅤ操作使用不当产生死锁 紫进程Q1 进程Q2 P(S1); P(s2) P(s2); P(s1); 煤 使用r1和r2; 使用r1和r2 ※ V(S1) V(s2); ※V(S2); V(S1); 08:52
08:52 例2 PV操作使用不当产生死锁 进程Q1 进程Q2 ……… ……… P(S1); P(s2); P(s2); P(s1); ……… ……… 使用r1和r2; 使用r1和r2 ……… ……… V(S1); V(s2); V(S2); V(S1);
例3资源分配不当引起死锁 张若系统中有m个资源被n个进程共享 当每个进程都要求K个资源,而m< nK时,即资源数小于进程所要求的总 数时,如果分配不得当就可能引起死锁 08:52
08:52 例3 资源分配不当引起死锁 若系统中有m个资源被n个进程共享, 当每个进程都要求K个资源,而m < n·K时,即资源数小于进程所要求的总 数时,如果分配不得当就可能引起死锁
例4对临时性资源使用不加限制引起的死锁 在进程通信时使用的信件可以看作是 种临时性资源,如果对信件的发送和接 收不加限制的话,则可能引起死锁。 08:52
08:52 例4 对临时性资源使用不加限制引起的死锁 在进程通信时使用的信件可以看作是一 种临时性资源,如果对信件的发送和接 收不加限制的话,则可能引起死锁
3.6.3驼鸟算法 兴最简单的方法是象鸵鸟一样对死锁视而 不见 08:52
08:52 3.6.3驼鸟算法 最简单的方法是象鸵鸟一样对死锁视而 不见
煤形成死锁的四个必要亲件 ◆进程互斥使用资源 ◆申请新资源时不释放已占有资源 ◆一个选程不能抢夺其他选程占有的资源 ◆存在一组循环等待资源的进程 08:52
08:52 形成死锁的四个必要条件 进程互斥使用资源 申请新资源时不释放已占有资源 一个进程不能抢夺其他进程占有的资源 存在一组循环等待资源的进程
鱉破坏第一个条件,使资源可同时访问而不是互斥 使用,是个简单的办法,磁盘可用这种办法管理, 但有许多资源往狂是不能同时访问的,所以这种 做法许多场合行不通 采用剥夺式调度方法可以破坏第三个条件,但剥 夺调度方法目前只适用于对主存资源和处理器资 源的分配,当进程在申请资源未获准许的情况下 如主动释放资源(一种剥夺式),然后才去等待,以 后再一起向系统提出申请,也能防止死锁,但这些 办法不适用于所有资源 由于种种死锁防止办法施加于资源的限制条件太 严格,会造成资源利用率和吞吐率低。下面介绍两 种比较实用的死锁防止方法,它们能破坏第二个 条件或第四个条件。 08:52
08:52 破坏第一个条件,使资源可同时访问而不是互斥 使用,是个简单的办法,磁盘可用这种办法管理, 但有许多资源往往是不能同时访问的,所以这种 做法许多场合行不通。 采用剥夺式调度方法可以破坏第三个条件,但剥 夺调度方法目前只适用于对主存资源和处理器资 源的分配,当进程在申请资源未获准许的情况下, 如主动释放资源(一种剥夺式),然后才去等待,以 后再一起向系统提出申请,也能防止死锁,但这些 办法不适用于所有资源。 由于种种死锁防止办法施加于资源的限制条件太 严格,会造成资源利用率和吞吐率低。下面介绍两 种比较实用的死锁防止方法,它们能破坏第二个 条件或第四个条件