23
例题:假定系统中有五个进程{P0、P1、P2、 P3、P4}和三种类型的资源{A,B,C},每一 种资源的数量分别为10、5、7,在T0时刻的 资源分配情况如图
资源情况 进程
Max Need Allocation A B C A B C A B C
Available A B C
P0
7
3 9 2 4
16
3. 防止“环路等待”条件的出现(层次分配策略)
这种方法的基本思想是:资源被分成多个层次,一个进程 得到某一层的一个资源后,它只能再申请较高一层的资源;当一 个进程要释放某层的一个资源时,必须先释放所占用的较高层 的资源;当一个进程获得了某一层的一个资源后,它想再申请该 层中的另一个资源,就必须先释放该层中的已占用资源.
根据使用方式:共享资源和独享资源(即非临界资源与临界资源) 。
根据使用期限: 永久资源和临时性资源。
3
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占)
资源 打印机,读卡机,磁带机,可为某个进程独 享(不可抢占)
根据使用方式:共享资源和独享资源。 根据使用期限;永久资源和临时性资源。
可重复使用的资源,如:内存、 外部设备、数据文件、表格等
6
我们先来看一个申请不同类型资源的死锁例子: 假定有两个进程Pl和P2,设F和T都是可重用资源。于是 Pl和P2可有如下形式:
图 简单的死锁例子
7
三、产生死锁的原因
1 竞争资源 当系统中供多个进程所共享的资源,不足 以同时满足它们的需要时,引起它们对资源的竞争 而产生死锁; 答:不可能。因为死锁产生的原因有两点:系统资源不足或推进 2 进程推进的顺序不当 进程在运行过程中,请求和 顺序不当,在本题中,进程所需的最大资源数为 60,而系统共有 释放资源的顺序不当,导致进程的死锁。 该类资源 65个,其资源数已足够系统内各进程使用。 例题: 一个OS有20个进程,竞争使用65个同类资源, 申请方式是逐个进行的,一旦某个进程获得它所需 要的全部资源,则立即归还所有资源。每个进程最 多使用三个资源。若仅考虑这类资源,该系统有无 可能产生死锁,为什么?