计算机操作系统(第四版)第三章死锁
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
银行家算法
银行家算法是最有代表性的避免死锁 算法,是Dijkstra提出的银行家算法。这是 由于该算法能用于银行系统现金贷款的发 放而得名。
21
银行家可以把一定数量的资金供多个用户周转使用,为 保证资金的安全,银行家规定: (1)当一个用户对资金的最大需求量不超过很行家现有的资 金时可接纳该用户. (2)用户可以分期贷款,但贷款的总数不能超过最大需求量;
优点:资源利用率和系统吞吐量与另两种方法相比有较明显的改善 缺点: 1)为系统中各种类型的资源所分配的序号必须相对稳定,这就限 制了新设备类型的增加; 2) 进程实际使用资源的顺序与系统规定的顺序不同而造成资源的 浪费;
17
3
死锁避免
如果操作系统能保证所有的进程在有限的时间 内得到需要的全部资源,则称系统处于安全状态,否则 称系统是不安全的. 避免死锁与预防死锁的区别在于: 预防死锁是设法至少破坏产生死锁的必要条件之 一,严格地防止死锁的出现。 避免死锁,它是在进程请求分配资源时,采用银 行家算法等防止系统进入不安全状态。
19
安全状态的例子
例:假定系统有三个进程P1、P2、P3,共有12台磁带机。 进程P1 、P2和P3分别需要10台、4台和9台。设在T0时 刻,进程P1、P2和P3已经获得5台、2台和2台,还有3 台空闲没有分配。 进程 最大需求 10 4 9 已分配 5 2 2 可用 3
P1
P2 P3
T0时刻系统是安全的。这时存在一个安全序列<P2,P1,P3>
4
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占)(共享资源 )
资源 打印机,读卡机,磁带机,可为某个进程独 享(不可抢占)(独享资源)
根据使用方式:共享资源和独享资源
。
根据使用期限:永久资源和临时性资源。
由一个进程产生,被另外一个进程使用短暂时间之 后便不再使用的资源,如:消息、同步信号等等。
6
我们先来看一个申请不同类型资源的死锁例子: 假定有两个进程Pl和P2,设F和T都是可重用资源。于是 Pl和P2可有如下形式:
图 简单的死锁例子
7
三、产生死锁的原因
1 竞争资源 当系统中供多个进程所共享的资源,不足 以同时满足它们的需要时,引起它们对资源的竞争 而产生死锁; 答:不可能。因为死锁产生的原因有两点:系统资源不足或推进 2 进程推进的顺序不当 进程在运行过程中,请求和 顺序不当,在本题中,进程所需的最大资源数为 60,而系统共有 释放资源的顺序不当,导致进程的死锁。 该类资源 65个,其资源数已足够系统内各进程使用。 例题: 一个OS有20个进程,竞争使用65个同类资源, 申请方式是逐个进行的,一旦某个进程获得它所需 要的全部资源,则立即归还所有资源。每个进程最 多使用三个资源。若仅考虑这类资源,该系统有无 可能产生死锁,为什么?
5
2 0 2 3
3
2 2 2 3
0 1 2 0
3 0 2 1 0 0
0 0
2 1 2
7 4
1 2 6 0 0 1 4 3
3 3 3
2 0 1 1
2
P1
P2 P3 P4
24
10,5 7
进程
资源情况
最大值 Max A B C 7 5 3 9 2 4 2 0 2 3 3 2 2 2 3
已分配 Allocation A B C
16
3. 防止“环路等待”条件的出现(层次分配策略)
这种方法的基本思想是:资源被分成多个层次,一个进程 得到某一层的一个资源后,它只能再申请较高一层的资源;当一 个进程要释放某层的一个资源时,必须先释放所占用的较高层 的资源;当一个进程获得了某一层的一个资源后,它想再申请该 层中的另一个资源,就必须先释放该层中的已占用资源.
5
二、死锁的定义
计算机系统中多道程序并发执行时,两个或两个以上的进 1)死锁:是一种相互或循环 2)饥饿:不是循环等待的局 程由于竞争资源而造成的一种互相等待的现象(僵局),如无 等待的局面,且它们等待的事 面,而是一种单向等待; 外力作用,这些进程将永远不能再向前推进。 件是决不会发生的; 死锁Deadlock:系统中存在一组进程它们等待的事件不是没有 (两个或多个进程),它们 中的每一个进程都占用了某种资源而又都在等待其中另一进程 被死锁的进程应该是两个 发生,而是总被别的进程抢先 所占用的资源,这种等待永远不能结束 ,则说系统出现了“死 或两个以上,一个进程不可能 以致一直轮不到(很难轮到) 锁”,或说这组进程处于死锁状态。 自己把自己锁上,除非出现程 它们。饥饿的进程可能是一个 陷入死锁状态的进程称为死锁进程, 所占用的资源或者需 序设计错误。 要它们进行某种合作的其它进程就会相继陷入死锁,最终可能 或多个。 导致整个系统处于瘫痪状态。 死锁和饥饿的主要差别是什么? 仅涉及一个进程的死锁有可能存在吗?为什么?
22
要记住的一些变量的名称 1 Available(可利用资源总数) 某类可利用的资源数目,其初值是系统中所配置的该类 全部可用资源数目。 2 Max:某个进程对某类资源的最大需求数 3 Allocation: 某类资源已分配给某进程的资源数。 4 Need:某个进程还需要的各类资源数。 Need= Max-Allocation 系统把进程请求的资源(Request)分配给它以后要修改的变量 Available:=Available-Request; Allocation:=Allocation+Request; Need:= Need- Request;
8
例1:进程推进顺序不当产生死锁问题. 例2:PV操作使用不当产生死锁. 例3:同类资源分配不当引起死锁. 例4:对临时性资源使用不加限制引起死锁 综上:产生死锁的因素不仅与系统拥有的资源数量有关,而且与 资源分配策略,进程对资源的使用要求以及并发进程的推进 顺序有关。 但以下两种情况进程永远等待不属于要讨论的死锁问题: (1)某个进程申请系统中不存在的资源或申请的资源数超过了系 统拥有的最大资源数。 (2)硬件故障或程序性错误引起的循环等待。
9
四、产生死锁的四个必要条件
⑴互斥条件 : 资源在一段时间内只能被一个进程 所使用。(临界资源)
⑵请求和保持条件 : 一个进程请求资源得不到满 足而等待,但不释放已占有的资源。(部分分配)
⑶不剥夺条件 : 一个资源仅能被占有它的进程所 释放,而不能被其他进程剥夺。(主动释放) ⑷环路等待条件 : 存在一个进程资源的环路链, 链中每一个进程占用着某些资源,又在等待另 一个进程占有的资源。
根据使用方式:共享资源和独享资源(即非临界资源与临界资源) 。
根据使用期限: 永久资源和临时性资源。
3
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占)
资源 打印机,读卡机,磁带机,可为某个进程独 享(不可抢占)
Leabharlann Baidu
根据使用方式:共享资源和独享资源。 根据使用期限;永久资源和临时性资源。
可重复使用的资源,如:内存、 外部设备、数据文件、表格等
还需要 Need A B C 7 4 1 2 3 2 Available A B C 3 3 2
可用
P0 P1 P2 P3 P4
0 1
2 0
0
0
3 0 2 2 1 1
0 0 2
6 0 0 0 1 1
4 3 1
Work+Allocation
工作向量Work.它表示系统可提供给进程继续运行所需要的各类资源的数目 资源情况 进程 P1 P3 P4 P2 P0 work A B C 3 3 5 3 7 4 7 4 10 4 2 2 3 5 7 Need A B C 1 2 0 1 4 3 6 0 7 4 2 1 1 0 3
13
2 预防死锁
根据产生死锁的四个必要条件,只要使其中之 一不能成立,死锁就不会出现。 但必要条件 1 是由 设备的固有特性所决定的,不仅不能改变,相反还 应加以保证,因此实际上只有三种方法。
1.破坏请求和保持条件 2.破坏不剥夺条件 3.破坏环路等待条件
预防死锁是一种较易实现的方法,已被广泛使 用,但由于所施加的限制条件往往太严格,可能导 致系统资源利用率和系统吞吐量降低。
资源严重浪费
进程运行延迟
15
2 . 防止“不剥夺”条件的出现
采用的策略:一个已经占有了某些资源的进程,当 它再提出新的资源要求而不能立即得到满足时,必 须释放它已经占有的所有资源,待以后需要时再重 新申请。 缺点: 1)实现比较复杂,且要付出很大代价; 2)还因为反复地申请和释放资源,而使进程的执行 无限地推迟,延长了周转时间,增加了系统的开销, 降低了系统吞吐量(例如打印机打印的结果不连续)
解决死锁的方法一般可分为 : 预防 、 避免、检测和解除四种. 10
死锁的排除方法
1 鸵鸟算法 2 预防死锁 3 避免死锁 4 检测和解除死锁
11
1
鸵鸟算法(置之不理)
解决死锁的最简单方法就是鸵鸟算法。即像 鸵鸟一样,当遇到危险时,将头埋进沙子里,假 装毫无问题。 当死锁在计算机中很少出现时,比如说每五年 或更长时间才出现一次时,人们就不必花费更多 的精力去解决它,而是采用类似鸵鸟一样的办法 忽略它。 以UNIX系统为例,它潜在地存在死锁,但它 并不花功夫去检测和解除死锁,而是忽略不去理 它。
18
在资源的动态分配的过程中,使用某种方法去防 止系统进入不安全状态,从而避免死锁的发生。 虽然并非所有不安全状态都是死锁状态, 系统状态: 安全状态:指系统能按照某种顺序 但当系统进入不安全状态后,便有可能进入死 如 <P1,P2,…,Pn>,为每个进程分配所需的资源,直 至最大需求,使得每个进程都能顺利完成 (称为 锁状态;反之只要系统处于安全状态,系统便 <P1,P2,…,Pn> 序列为安全序列) 。 非安全状态: 可避免进入死锁状态。因此,避免死锁的实质 即在某个时刻系统中不存在一个安全序列,则称系统 是如何使系统不进入不安全状态。(银行家算 处于不安全状态或非安全状态。 法) 注意: 1)安全序列不一定只有一个 2)系统只要处在安全状态,就肯定不会发生死锁 3)系统处在不安全状态下时,未必一定会发生死锁
(3)当银行家现有的资金不能满足用户的尚需总数时,对用 户的贷款可推迟支付,但总能使用户在有限的时间里得到贷款;
(4)当用户得到所需的全部资金后,一定能在有限的时间里 归还所有资金 银行家算法是通过动态地检测系统中资源分配情况和进 程对资源的需求情况来决定如何分配资源的,在能确保系统 处于安全状态时才能把资源分配给申请者,从而避免系统发 生死锁。
Allocation A B C
2 0 2 1 0 0 3 0 0 1 0 1 2 2 0
14
1.破坏“请求和保持条件”(静态分配策略)
系统要求任一进程必须预先申请它所需的全部资源, 而且仅当该进程的全部资源要求能得到满足时,系统才 能给予一次性分配,然后启动该进程运行,但是在分配 时只要有一种资源不满足,系统就不会给进程分配资源。 进程运行期间,不会再请求新的资源,所以,再分配就 不会发生(摒弃了部分分配)。 缺点:
资源的分类
根据资源性质:可剥夺(抢占)和不可剥夺(非抢占)资源。 可抢占资源—指占用资源的进程虽然还需要使用该资源,但 另一个进程却强行把资源抢走。 不可抢占资源—指只有占用者进程不再需要使用该资源而主 动释放资源外,其它进程不得在占有者进程使用资源过程中强 行抢占。
2
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占) 资源 打印机,读卡机,磁带驱动器,可为某个进 程独享(不可抢占)
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
死锁
资源 死锁的定义 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法
1
一、资源的概念
OS是计算机系统中资源的管理者,而进程是竞争资源的基 本单位,故对系统中所有进程的资源分配工作,都由OS完成。 研究资源分配时,我们必须弄清楚该资源是可以被几个进 程同时使用,还是只能为一个进程使用,资源的不同使用性质 正是引起系统死锁的原因。
银行家算法
银行家算法是最有代表性的避免死锁 算法,是Dijkstra提出的银行家算法。这是 由于该算法能用于银行系统现金贷款的发 放而得名。
21
银行家可以把一定数量的资金供多个用户周转使用,为 保证资金的安全,银行家规定: (1)当一个用户对资金的最大需求量不超过很行家现有的资 金时可接纳该用户. (2)用户可以分期贷款,但贷款的总数不能超过最大需求量;
优点:资源利用率和系统吞吐量与另两种方法相比有较明显的改善 缺点: 1)为系统中各种类型的资源所分配的序号必须相对稳定,这就限 制了新设备类型的增加; 2) 进程实际使用资源的顺序与系统规定的顺序不同而造成资源的 浪费;
17
3
死锁避免
如果操作系统能保证所有的进程在有限的时间 内得到需要的全部资源,则称系统处于安全状态,否则 称系统是不安全的. 避免死锁与预防死锁的区别在于: 预防死锁是设法至少破坏产生死锁的必要条件之 一,严格地防止死锁的出现。 避免死锁,它是在进程请求分配资源时,采用银 行家算法等防止系统进入不安全状态。
19
安全状态的例子
例:假定系统有三个进程P1、P2、P3,共有12台磁带机。 进程P1 、P2和P3分别需要10台、4台和9台。设在T0时 刻,进程P1、P2和P3已经获得5台、2台和2台,还有3 台空闲没有分配。 进程 最大需求 10 4 9 已分配 5 2 2 可用 3
P1
P2 P3
T0时刻系统是安全的。这时存在一个安全序列<P2,P1,P3>
4
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占)(共享资源 )
资源 打印机,读卡机,磁带机,可为某个进程独 享(不可抢占)(独享资源)
根据使用方式:共享资源和独享资源
。
根据使用期限:永久资源和临时性资源。
由一个进程产生,被另外一个进程使用短暂时间之 后便不再使用的资源,如:消息、同步信号等等。
6
我们先来看一个申请不同类型资源的死锁例子: 假定有两个进程Pl和P2,设F和T都是可重用资源。于是 Pl和P2可有如下形式:
图 简单的死锁例子
7
三、产生死锁的原因
1 竞争资源 当系统中供多个进程所共享的资源,不足 以同时满足它们的需要时,引起它们对资源的竞争 而产生死锁; 答:不可能。因为死锁产生的原因有两点:系统资源不足或推进 2 进程推进的顺序不当 进程在运行过程中,请求和 顺序不当,在本题中,进程所需的最大资源数为 60,而系统共有 释放资源的顺序不当,导致进程的死锁。 该类资源 65个,其资源数已足够系统内各进程使用。 例题: 一个OS有20个进程,竞争使用65个同类资源, 申请方式是逐个进行的,一旦某个进程获得它所需 要的全部资源,则立即归还所有资源。每个进程最 多使用三个资源。若仅考虑这类资源,该系统有无 可能产生死锁,为什么?
5
2 0 2 3
3
2 2 2 3
0 1 2 0
3 0 2 1 0 0
0 0
2 1 2
7 4
1 2 6 0 0 1 4 3
3 3 3
2 0 1 1
2
P1
P2 P3 P4
24
10,5 7
进程
资源情况
最大值 Max A B C 7 5 3 9 2 4 2 0 2 3 3 2 2 2 3
已分配 Allocation A B C
16
3. 防止“环路等待”条件的出现(层次分配策略)
这种方法的基本思想是:资源被分成多个层次,一个进程 得到某一层的一个资源后,它只能再申请较高一层的资源;当一 个进程要释放某层的一个资源时,必须先释放所占用的较高层 的资源;当一个进程获得了某一层的一个资源后,它想再申请该 层中的另一个资源,就必须先释放该层中的已占用资源.
5
二、死锁的定义
计算机系统中多道程序并发执行时,两个或两个以上的进 1)死锁:是一种相互或循环 2)饥饿:不是循环等待的局 程由于竞争资源而造成的一种互相等待的现象(僵局),如无 等待的局面,且它们等待的事 面,而是一种单向等待; 外力作用,这些进程将永远不能再向前推进。 件是决不会发生的; 死锁Deadlock:系统中存在一组进程它们等待的事件不是没有 (两个或多个进程),它们 中的每一个进程都占用了某种资源而又都在等待其中另一进程 被死锁的进程应该是两个 发生,而是总被别的进程抢先 所占用的资源,这种等待永远不能结束 ,则说系统出现了“死 或两个以上,一个进程不可能 以致一直轮不到(很难轮到) 锁”,或说这组进程处于死锁状态。 自己把自己锁上,除非出现程 它们。饥饿的进程可能是一个 陷入死锁状态的进程称为死锁进程, 所占用的资源或者需 序设计错误。 要它们进行某种合作的其它进程就会相继陷入死锁,最终可能 或多个。 导致整个系统处于瘫痪状态。 死锁和饥饿的主要差别是什么? 仅涉及一个进程的死锁有可能存在吗?为什么?
22
要记住的一些变量的名称 1 Available(可利用资源总数) 某类可利用的资源数目,其初值是系统中所配置的该类 全部可用资源数目。 2 Max:某个进程对某类资源的最大需求数 3 Allocation: 某类资源已分配给某进程的资源数。 4 Need:某个进程还需要的各类资源数。 Need= Max-Allocation 系统把进程请求的资源(Request)分配给它以后要修改的变量 Available:=Available-Request; Allocation:=Allocation+Request; Need:= Need- Request;
8
例1:进程推进顺序不当产生死锁问题. 例2:PV操作使用不当产生死锁. 例3:同类资源分配不当引起死锁. 例4:对临时性资源使用不加限制引起死锁 综上:产生死锁的因素不仅与系统拥有的资源数量有关,而且与 资源分配策略,进程对资源的使用要求以及并发进程的推进 顺序有关。 但以下两种情况进程永远等待不属于要讨论的死锁问题: (1)某个进程申请系统中不存在的资源或申请的资源数超过了系 统拥有的最大资源数。 (2)硬件故障或程序性错误引起的循环等待。
9
四、产生死锁的四个必要条件
⑴互斥条件 : 资源在一段时间内只能被一个进程 所使用。(临界资源)
⑵请求和保持条件 : 一个进程请求资源得不到满 足而等待,但不释放已占有的资源。(部分分配)
⑶不剥夺条件 : 一个资源仅能被占有它的进程所 释放,而不能被其他进程剥夺。(主动释放) ⑷环路等待条件 : 存在一个进程资源的环路链, 链中每一个进程占用着某些资源,又在等待另 一个进程占有的资源。
根据使用方式:共享资源和独享资源(即非临界资源与临界资源) 。
根据使用期限: 永久资源和临时性资源。
3
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占)
资源 打印机,读卡机,磁带机,可为某个进程独 享(不可抢占)
Leabharlann Baidu
根据使用方式:共享资源和独享资源。 根据使用期限;永久资源和临时性资源。
可重复使用的资源,如:内存、 外部设备、数据文件、表格等
还需要 Need A B C 7 4 1 2 3 2 Available A B C 3 3 2
可用
P0 P1 P2 P3 P4
0 1
2 0
0
0
3 0 2 2 1 1
0 0 2
6 0 0 0 1 1
4 3 1
Work+Allocation
工作向量Work.它表示系统可提供给进程继续运行所需要的各类资源的数目 资源情况 进程 P1 P3 P4 P2 P0 work A B C 3 3 5 3 7 4 7 4 10 4 2 2 3 5 7 Need A B C 1 2 0 1 4 3 6 0 7 4 2 1 1 0 3
13
2 预防死锁
根据产生死锁的四个必要条件,只要使其中之 一不能成立,死锁就不会出现。 但必要条件 1 是由 设备的固有特性所决定的,不仅不能改变,相反还 应加以保证,因此实际上只有三种方法。
1.破坏请求和保持条件 2.破坏不剥夺条件 3.破坏环路等待条件
预防死锁是一种较易实现的方法,已被广泛使 用,但由于所施加的限制条件往往太严格,可能导 致系统资源利用率和系统吞吐量降低。
资源严重浪费
进程运行延迟
15
2 . 防止“不剥夺”条件的出现
采用的策略:一个已经占有了某些资源的进程,当 它再提出新的资源要求而不能立即得到满足时,必 须释放它已经占有的所有资源,待以后需要时再重 新申请。 缺点: 1)实现比较复杂,且要付出很大代价; 2)还因为反复地申请和释放资源,而使进程的执行 无限地推迟,延长了周转时间,增加了系统的开销, 降低了系统吞吐量(例如打印机打印的结果不连续)
解决死锁的方法一般可分为 : 预防 、 避免、检测和解除四种. 10
死锁的排除方法
1 鸵鸟算法 2 预防死锁 3 避免死锁 4 检测和解除死锁
11
1
鸵鸟算法(置之不理)
解决死锁的最简单方法就是鸵鸟算法。即像 鸵鸟一样,当遇到危险时,将头埋进沙子里,假 装毫无问题。 当死锁在计算机中很少出现时,比如说每五年 或更长时间才出现一次时,人们就不必花费更多 的精力去解决它,而是采用类似鸵鸟一样的办法 忽略它。 以UNIX系统为例,它潜在地存在死锁,但它 并不花功夫去检测和解除死锁,而是忽略不去理 它。
18
在资源的动态分配的过程中,使用某种方法去防 止系统进入不安全状态,从而避免死锁的发生。 虽然并非所有不安全状态都是死锁状态, 系统状态: 安全状态:指系统能按照某种顺序 但当系统进入不安全状态后,便有可能进入死 如 <P1,P2,…,Pn>,为每个进程分配所需的资源,直 至最大需求,使得每个进程都能顺利完成 (称为 锁状态;反之只要系统处于安全状态,系统便 <P1,P2,…,Pn> 序列为安全序列) 。 非安全状态: 可避免进入死锁状态。因此,避免死锁的实质 即在某个时刻系统中不存在一个安全序列,则称系统 是如何使系统不进入不安全状态。(银行家算 处于不安全状态或非安全状态。 法) 注意: 1)安全序列不一定只有一个 2)系统只要处在安全状态,就肯定不会发生死锁 3)系统处在不安全状态下时,未必一定会发生死锁
(3)当银行家现有的资金不能满足用户的尚需总数时,对用 户的贷款可推迟支付,但总能使用户在有限的时间里得到贷款;
(4)当用户得到所需的全部资金后,一定能在有限的时间里 归还所有资金 银行家算法是通过动态地检测系统中资源分配情况和进 程对资源的需求情况来决定如何分配资源的,在能确保系统 处于安全状态时才能把资源分配给申请者,从而避免系统发 生死锁。
Allocation A B C
2 0 2 1 0 0 3 0 0 1 0 1 2 2 0
14
1.破坏“请求和保持条件”(静态分配策略)
系统要求任一进程必须预先申请它所需的全部资源, 而且仅当该进程的全部资源要求能得到满足时,系统才 能给予一次性分配,然后启动该进程运行,但是在分配 时只要有一种资源不满足,系统就不会给进程分配资源。 进程运行期间,不会再请求新的资源,所以,再分配就 不会发生(摒弃了部分分配)。 缺点:
资源的分类
根据资源性质:可剥夺(抢占)和不可剥夺(非抢占)资源。 可抢占资源—指占用资源的进程虽然还需要使用该资源,但 另一个进程却强行把资源抢走。 不可抢占资源—指只有占用者进程不再需要使用该资源而主 动释放资源外,其它进程不得在占有者进程使用资源过程中强 行抢占。
2
CPU、主存、硬盘,该类资源可为几个进程 共同使用(可抢占) 资源 打印机,读卡机,磁带驱动器,可为某个进 程独享(不可抢占)
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
死锁
资源 死锁的定义 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法
1
一、资源的概念
OS是计算机系统中资源的管理者,而进程是竞争资源的基 本单位,故对系统中所有进程的资源分配工作,都由OS完成。 研究资源分配时,我们必须弄清楚该资源是可以被几个进 程同时使用,还是只能为一个进程使用,资源的不同使用性质 正是引起系统死锁的原因。