第三章进程管理(死锁问题、线程)
第三章进程管理 - PowerPoint 演示文稿

浙江教育学院 信息学院
3.6.3用P,V原语操作实现同步
解:由题意可知,进程PA调用的过程deposit(data)和进 程PB调用的过程remove(data)必须同步执行,因为过 程deposit(data)的执行结果是过程remove(data)的执 行条件,而当缓冲队列全部装满数据时,remove(data) 的执行结果又是deposit(data)的执行条件,满足同步 定义。从而,我们按以下三步描述过程deposit(data) 和remove(data): 1)设Bufempty为进程PA的私用信号量,Buffull为进 程PB的私用信号量; 2)令Bufempty的初始值为n(n为缓冲队列的缓冲区个 数),Buffull的初始值为0, 3)描述:
浙江教育学院 信息学院
信号量和P,V原语
P原语
申请资源的进程如果s<0,进 程自我阻塞,因此进程放弃 了CPU。 图3.12P原语操作功能
浙江教育学院 信息学院
信号量和P,V原语
V原语
释放资源的进程A,如果 有进程B在等待资源,A要 唤醒B进程后再返回原进 程程序执行,如果原进程 程序执行完毕,则把CPU 交给进程调度程序。
浙江教育学院 信息学院
3.7进程通信
进程通信(IPC, Inter-Process Communication)
在进程间传送数据。 操作系统可以被看作是各种进程组成的,例如用户 进程、计算进程、打印进程等。这些进程都具有各 自独立的功能,且大多数被外部需要而启动执行。 一般来说,进程间的通信根据通信的内容可以划分 为两种:
3.6同步的概念
并发进程同时访问公有数据和公有变量引出了 互斥的概念.现在研究进程的合作关系.
操作系统习题及答案

优先级,后者所得到的是
优先级。
25. 在 机。
调度算法中,按照进程进入就绪队列的先后次序来分配处理
26. 作业调度是高级调度,进程调度是低级调度。( 是否正确? )
27. 线程与进程的根本区别在于进程是
单位,而线程是
单位,
具有自己的主存空间,
共享该主存空间并对其所有主存空间都有存
取权限。
28.在多用户环境下,由多个程序共享一台计算机,机内资源状态将由多个程序 来改变,因此使程序失去了在顺序执行上时具有的________和________特 征。
2、( )优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。 A.先来先服务 B.静态 C.动态 D.短作业
3、以下关于死锁的必要条件的叙述中错误的是( )。 A.只要具备了死锁的必要条件,就一定发生死锁现象 B.解决死锁问题可以从死锁的必要条件出发
C.一旦出现死锁现象,处于死锁状态的进程一定同时具备死锁的必要条件 D.死锁的四个必要条件之间不是完全独立的,但也不是等价的
的值为( )。
A. > 0
B.< 0
C.>= 0
D.<=0
6、如果进程 PA 对信号量 S 执行 P 操作,则信号量 S 的值应(
)
A.加 1
B.减 1
C.等于 0 D.小于 0
7、从静态角度上看,进程是由程序、数据及(
)三部分组成。
A. JCB
B. PCB
C. FCB
D .I/O 缓冲区
H、处于(
、
2. 进程是一个
态的概念,程序是一个
态的概念。
3. 操作系统中,可以并行工作的基本单位是 组成。
,它是由程序、
U035计算机操作系统教程_第四版_(张尧学著)_清华大学出版社_第3章

3.1.2 进程的定义 进程的概念是60年代初期,首先在MIT 的 Multics系 统和IBM 的 TSS/360系统中引用的。从那以来,人 们对进程下过许多各式各样的定义。 (1) 进程是可以并行执行的计算部分(S.E.Madnick, J.T.Donovan); (2) 进程是一个独立的可以调度的活动(E.Cohen, D.Jofferson); (3) 进程是一抽象实体,当它执行某个任务时,将要 分配和释放各种资源(P.Denning); (4) 行为的规则叫程序,程序在处理机上执行时的活 动称为进程(E.W.Dijkstra);
W(Si)={b1 b2 … bn},bj(j=1,…,n) 是语句Si在执行期间必须对其进行修改、访问的变量; 如果对于语句S1和S2,有 ① R(S1)∩ W(S2)={∮}, ② W(S1)∩ R(S2)={∮}, ③ W(S1)∩ W(S2)={∮} 同时成立,则语句S1和S2是 可以并发执行的。
(1) 进程是一个动态概念,而程序则是一个静态概念。程序是 指令的有序集合,没有任何执行的含义。而进程则强调执 行过程,它动态地被创建,并被调度执行后消亡。 (2) 进程具有并行特征,而程序没有。由进程的定义可知,进 程具有并行特征的两个方面,即独立性和异步性。也就是 说,在不考虑资源共享的情况下,各进程的执行是独立的, 执行速度是异步的。显然,由于程序不反映执行过程,所 以不具有并行特征。 (3) 进程是竞争计算机系统资源的基本单位,从而其并行性受 到系统自己的制约。这里,制约就是对进程独立性和异步 性的限制。 (4) 不同的进程可以包含同一程序,只要该程序所对应的数据 集不同。
第3章 进程管理
3.1 进程的概念 3.2 进程的描述 3.3 进程状态及其转换 3.4 进程控制 3.5 进程互斥 3.6 进程同步 3.7 进程通信 3.8 死锁问题 3.9 线程 本章小结 习题
第3章死锁习题及答案

第三章死锁习题一、填空题1.进程的“同步”和“互斥”反映了进程间①和②的关系。
【答案】①直接制约、②间接制约【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。
2.死锁产生的原因是①和②。
【答案】①系统资源不足、②进程推进路径非法【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。
由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。
而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。
所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。
3.产生死锁的四个必要条件是①、②、③、④。
【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件【解析】互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。
非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。
占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源,循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。
4.在操作系统中,信号量是表示①的物理实体,它是一个与②有关的整型变量,其值仅能由③原语来改变。
【答案】①资源,②队列,③P-V【解析】信号量的概念和P-V原语是荷兰科学家E.W.Dijkstra提出来的。
信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。
信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。
信号量的值只能由P-V原语来改变。
5.每执行一次P原语,信号量的数值S减1。
如果S>=0,该进程①;若S<0,则②该进程,并把它插入该③对应的④队列中。
chap进程管理

3) 初始化进程控制块
初始化标识符信息(填入)、处理机的状态信息(指令指 针, 栈指针)和控制信息(状态,优先级...)
1) 设置相应的链接
如: 把新进程加到就绪队列的链表中
3.25
计算机操作系统
第三章 进程管理
二、 进程的终止(撤消) 1. 进程何时终止? 1) 正常结束 批处理系统中,进程已运行完成遇到 Halt 指令 分时系统中, 用户退出登录 2) 异常结束 本进程发生出错和故障事件 存储区越界、保护性错(如:写只读文件)、特权 指令错、非法指令(如:程序错转到数据区)、算 术运算错、运行超时、等待超过时、I/O 失败、 3) 外界干预 操作系统干预、父进程请求、父进程终止
N的值
1
1
1
3.9
1
2
2
计算机操作系统
第三章 进程管理
资源共享 系统中硬件和软件资源不再为单个用户程序所独占,而
由几个用户程序共同使用。 程序并发执行和资源共享是现代操作系统的基本特性,它 们之间互为依存。 并发的特征 1.程序结果的不可再现性:并发程序执行的结果与其执行 的相对速度有关,是不确定的 2.在并发环境下程序的执行是间断性的:执行——停—— 执行 3.程序和机器执行程序的活动不再一一对应 4.并发程序间的相互制约
End;
end;
int N=1; 是AA和BB都能访问的外部公共变量,这两 个程序在并发执行, N:=N+1;可分解为3条机器指令, 它们的执行顺序不同有可能导致N的值结果不同。
3.8
计算机操作系统
第三章 进程管理
(a) 顺序 执行
时间 程序A
程序B
T0 A←N 1
T0 A←N
T1 A←A+1 1
第三章Operating_System进程管理

作业的概念主要用于批处理操作系统;而进程 的概念几乎用于所有的多道系统中。
5. 进程的组成
程序:描述进程要完成的功能。 数据:程序执行时需要的数据。 进程控制块(PCB):存储有关进程的
各种信息,操作系统根据它来控制和管 理进程。
6 进程控制块 (PCB, process control block)
进程控制信息:
– 当前状态; – 优先级(priority); – 代码执行入口地址; – 程序的外存地址; – 运行统计信息(执行时间、页面调度); – 进程间同步和通信信息;阻塞原因
资源管理信息:虚拟地址空间的现状、打开文件列 表
CPU现场保护结构:寄存器值(通用、程序计数器 PC、状态PSW)
进程与程序的组成不同:进程的组成包括程序、数据和 进程控制块(即进程状态信息)。
进程具有并发特征(独立性和异步性) ;而程序没有。 进程与程序的对应关系:通过多次执行,一个程序可对
应多个进程;通过调用关系,一个进程可包括多个程序。
4.作业与进程的区别
作业是用户向计算机提交任务的实体,被提交 后进入外存的作业等待队列。而进程是完成用 户任务的执行实体,被创建后,总有相应部分 常驻内存;
分配处理机资源;
2. 转换
进程创建(Enter):系统创建进程,形成 PCB,分配所需资源,排入暂停进程表 (可为一个队列);
调度运行(Dispatch):从暂停进程表中选 择一个进程(要求已完成I/O操作),进入 运行状态;
暂停运行(Pause):用完时间片或启动I/O 操作后,放弃处理机,进入暂停进程表;
顺序执行的特征
– 顺序性:按照程序结构所指定的次序(可能有分支或循环)
操作系统原理-第三章进程管理习题(1)

第三章进程管理习题一. 单选题1. UNIX操作系统的进程控制块中常驻内存的是()。
A.proc结构B.proc结构和核心栈C.ppda区D.proc结构和user结构2. 当()时,进程从执行状态转变为就绪状态。
A.进程被调度程序选中B.时间片到C.等待某一事件D.等待的事件发生3.在进程状态转换时,下列()转换是不可能发生的。
A.就绪态→运行态B.运行态→就绪态C.运行态→阻塞态D.阻塞态→运行态4.下列各项工作步骤中,()不是创建进程所必需的步骤。
A.建立一个PCBB.作业调度程序为进程分配CPUC.为进程分配内存等资源D. 将PCB链入进程就绪队列5.下列关于进程的叙述中,正确的是()。
A.进程通过进程调度程序而获得CPU。
B.优先级是进行进程调度的重要依据,一旦确定不能改变。
C.在单CPU系统中,任一时刻都有1个进程处于运行状态。
D.进程申请CPU得不到满足时,其状态变为等待状态。
6.从资源管理的角度看,进程调度属于()。
A.I/O管理B.文件管理C.处理机管理D.存储器管理7.下列有可能导致一进程从运行变为就绪的事件是()。
A.一次I/O操作结束B.运行进程需作I/O操作C.运行进程结束D.出现了比现运行进程优先权更高的进程8.一个进程释放一种资源将有可能导致一个或几个进程()。
A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪9.一次I/O操作的结束,有可能导致()。
A.一个进程由睡眠变就绪B.几个进程由睡眠变就绪C.一个进程由睡眠变运行D.几个进程由睡眠变运行10.当一个进程从CPU上退下来时,它的状态应变为()。
A.静止就绪B. 活动就绪C. 静止睡眠D. 活动睡眠11.为使进程由活动就绪变为静止就绪,应利用()原语?** B. ACTIVE C. BLOCK D. WAKEUP12.在下面的叙述中,不正确的是()。
A.一个进程可创建一个或多个线程B.一个线程可创建一个或多个线程C.一个线程可创建一个或多个进程D.一个进程可创建一个或多个进程13. 若系统中只有用户级线程,则处理机调度单位是()。
进程概念、进程控制

3.1 进程的概念
进程的概念是60年代初首先由麻省理工学院 进程的概念是60年代初首先由麻省理工学院 60 MULTICS系统和IBM公司的CTSS/360系统 系统和IBM公司的CTSS/360 的MULTICS系统和IBM公司的CTSS/360系统 引入的。进程有很多各式各样的定义, 引入的。进程有很多各式各样的定义,如: 进程是一个可以并行执行的计算部分 进程是一个抽象实体,当它执行某个任务时, 进程是一个抽象实体,当它执行某个任务时, 将要分配和释放各种资源 进程是一个独立的可以调度的活动 等等
2.进程控制信息: 2.进程控制信息: 进程控制信息
当前状态(就绪态、执行态、等待态) 当前状态(就绪态、执行态、等待态) 进程优先级(priority) 进程优先级(priority) 进程开始地址 运行统计信息, 运行统计信息,进程占有和利用资源的情况 通信信息
27
ห้องสมุดไป่ตู้
3.资源管理信息: 3.资源管理信息: 资源管理信息 有关存储器的信息 使用输入输出设备的信息 有关文件系统的信息等 4.CPU现场保护信息 现场保护信息: 4.CPU现场保护信息: 存储退出执行时的进程现场数据, 存储退出执行时的进程现场数据,当该进 程重新恢复运行时恢复处理器现场。 程重新恢复运行时恢复处理器现场。 •包括通用寄存器内容、控制寄存器内容、 包括通用寄存器内容、控制寄存器内容、 包括通用寄存器内容 用户堆栈指针、系统堆栈指针等。 用户堆栈指针、系统堆栈指针等。
25
PCB的内容 不同系统不尽相同) PCB的内容 (不同系统不尽相同)
26
PCB的内容 PCB的内容
1.进程描述信息: 1.进程描述信息: 进程描述信息
进程标识符(process ID,唯一, 进程标识符(process ID,唯一,通常是一个整 数)或进程名 用户名或用户标识符(user 用户名或用户标识符(user ID) 家族关系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程死锁
3、检测死锁: 、检测死锁: 事先并不采取任何限制, 事先并不采取任何限制 , 也不检查系统是 否进入不安全区, 允许死锁发生, 否进入不安全区 , 允许死锁发生 , 但可 通过检测机构及时检测出死锁的发生, 通过检测机构及时检测出死锁的发生 , 并精确确定与死锁有关的进程和资源, 并精确确定与死锁有关的进程和资源 , 然后采取适当措施, 然后采取适当措施 , 将系统中已发生的 死锁清除掉
进程死锁
生产者—消费者问题 生产者 消费者问题 avail- 生产者用信号量, avail - 生产者用信号量 , 记录缓冲区空单 元个数。 元个数。 Full—消费者信号量,记录产品个数。 Full 消费者信号量,记录产品个数。 消费者信号量 Mutex—互斥信号量。 Mutex 互斥信号量。 互斥信号量
进程死锁
资源的分类
根据资源性质:可剥夺(抢占)和不可剥夺( 根据资源性质:可剥夺(抢占)和不可剥夺(抢 资源。 占)资源。 可抢占资源—指资源占有进程虽然需要使用该 可抢占资源 指资源占有进程虽然需要使用该 资源,但另一个进程却强行把资源从占有者进 资源, 程处抢来。 程处抢来。 不可抢占资源—指只有占用者进程不再需要使 不可抢占资源 指只有占用者进程不再需要使 用该资源而主动释放资源外, 用该资源而主动释放资源外,其它进程不得在 占有者进程使用资源过程中强行抢占。 占有者进程使用资源过程中强行抢占。
R2已经分配给 、R1已经分配给 已经分配给P1、 已经分配给 已经分配给P2 已经分配给
P1
已分配给P1 已分配给
R1
R2
P2
已分配给 p2
申请 r2
进程死锁
产生死锁的四个必要条件
⑴互斥条件:进程访问的是临界资源,那个资源一次只 互斥条件:进程访问的是临界资源, 互斥条件 能被一个进程所使用。 能被一个进程所使用。 不剥夺条件:一个资源仅能被占有它的进程所释放, ⑵不剥夺条件:一个资源仅能被占有它的进程所释放, 而不能被其他进程剥夺。 而不能被其他进程剥夺。 部分分配: 请求和保持条件) ⑶部分分配:(请求和保持条件)一个进程在请求新的 资源的同时,保持对某些资源的占有。 资源的同时,保持对某些资源的占有。 环路等待条件:存在一个进程的环路链, ⑷环路等待条件:存在一个进程的环路链,链中每一个 进程占用有着某个或某些资源, 进程占用有着某个或某些资源 , 又在等待链中的另 一个进程占有的资源。
进程死锁
产生死锁的原因
1 竞争资源。当系统中供多个进程所共享的资 竞争资源。 不足以同时满足它们的需要时, 源,不足以同时满足它们的需要时,引起它们 对资源的竞争而产生死锁; 对资源的竞争而产生死锁; 2 进程推进的顺序不当 。进程在运行过程中, 进程在运行过程中, 请求和释放资源的顺序不当,导致进程的死锁。 请求和释放资源的顺序不当,导致进程的死锁。
进程死锁Biblioteka 资源的概念OS是计算机系统中资源的管理者,而进程是竞 是计算机系统中资源的管理者, 是计算机系统中资源的管理者 争资源的基本单位, 争资源的基本单位,故对系统中所有进程的资 源分配工作,都由 完成 完成。 源分配工作,都由OS完成。 研究资源分配时, 研究资源分配时,我们必须搞清该资源是可以 被几个进程同时使用, 被几个进程同时使用,还是只能为一个进程使 用,资源的不同使用性质正是引起系统死锁的 原因。 原因。
进程死锁
在每个进程已经创建9个进程后, 在每个进程已经创建 个进程后,原来的 个进程后 10个进程和新创建的 个子进程已用完 个进程和新创建的90个子进程已用完 个进程和新创建的 了进程表。这样,原来的10个进程现在 了进程表。这样,原来的 个进程现在 都处于创建子进程的无限循环中——死 都处于创建子进程的无限循环中 死 出现这种情况的可能性是非常小的, 锁。出现这种情况的可能性是非常小的, 但还是有可能发生的。一旦出现, 但还是有可能发生的。一旦出现,只要 忽略原进程已运行情况的现场, 忽略原进程已运行情况的现场,重新启 动机器让它们重新运行即可。 动机器让它们重新运行即可。
进程死锁
3.6 死锁问题
在多道程序系统中,多个进程并发运行,共享资 源,从而提高了资源的利用率。但是若对资源的 管理和使用不当,在一定条件下会导致系统发生 一种随机性故障――死锁。在一些系统中,比如 实时控制系统,系统一旦发生死锁将导致灾难性 的后果。
进程死锁
3.6.1 死锁的基本概念
资源 死锁的定义 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法
进程死锁
3.6.2 死锁的排除方法
1 鸵鸟算法 2 预防死锁 3 避免死锁 4 检测和解除死锁
进程死锁
1鸵鸟算法(置之不理) 鸵鸟算法(置之不理) 鸵鸟算法 解决死锁的最简单方法就是鸵鸟算法。 解决死锁的最简单方法就是鸵鸟算法。即 像鸵鸟一样,当遇到危险时, 像鸵鸟一样,当遇到危险时,将头埋进沙子 假装毫无问题。 里,假装毫无问题。 当死锁在计算机中很少出现时, 当死锁在计算机中很少出现时,比如说每五 年或更长时间才出现一次时, 年或更长时间才出现一次时,人们就不必花 费更多的精力去解决它,而是采用类似鸵鸟 费更多的精力去解决它,而是采用类似鸵鸟 一样的办法忽略它。 一样的办法忽略它。 UNIX系统为例 它潜在地存在死锁, 系统为例, 以UNIX系统为例,它潜在地存在死锁,但 它并不花功夫去检测和解除死锁,而是忽略 它并不花功夫去检测和解除死锁, 不去理它。 不去理它。
进程死锁
判断
1 参与死锁的所有进程都占有资源
2 参与死锁的所有进程均正在等待资源 3 参与死锁的所有进程中至少有两个进程占有 资源 4 参与死锁的进程至少有两个
进程死锁
关于死锁的一些结论
参与死锁的进程最少是两个 两个以上进程才会出现死锁) (两个以上进程才会出现死锁) 参与死锁的进程至少有两个已经占有资源 参与死锁的所有进程都在等待资源 参与死锁的进程是当前系统中所有进程的子集 如果死锁发生,会浪费大量系统资源, 注:如果死锁发生,会浪费大量系统资源,甚至 导致系统崩溃
进程死锁 CPU、主存、硬盘: 该类资源可为几个进程 、主存、硬盘 共同使用(可抢占) 共同使用(可抢占) 资源 打印机,读卡机,磁带驱动器 打印机,读卡机,磁带驱动器: 可为某个进 程独享(不可抢占) 程独享(不可抢占)
根据使用方式:共享资源和独享资源。 根据使用方式:共享资源和独享资源。 根据使用期限;永久资源和临时性资源。 根据使用期限;永久资源和临时性资源。
进程死锁
4、解除死锁: 、解除死锁: 与检测死锁相配套, 与检测死锁相配套 , 用于将进程从死锁状 态解脱出来。 态解脱出来。 常用的方法是撤消或挂起一些进程。 常用的方法是撤消或挂起一些进程 。 以回 收一些资源,再将它们分配给处于阻塞状 收一些资源, 态的进程,使之转为就绪状态。 态的进程,使之转为就绪状态。 实现难度大, 实现难度大 , 但可获得较好的资源利用率 和系统吞吐量。 和系统吞吐量。
可重复使用的资源 由一个进程产生, 由一个进程产生,被另外一个进程使用短暂时间 之后便无用的资源
进程死锁
申请r1 申请
P1
已分配给P1 已分配给
R1 P2
R2
申请 r2
已分配给 p2
进程死锁
死锁的定义
死锁Deadlock:是计算机系统中多道程序并发 : 死锁 执行时, 执行时,两个或两个以上的进程由于竞争资源 而造成的一种互相等待的现象(僵局),如无 而造成的一种互相等待的现象(僵局),如无 ), 外力作用,这些进程将永远不能再向前推进。 外力作用,这些进程将永远不能再向前推进。 陷入死锁状态的进程称为死锁进程, 陷入死锁状态的进程称为死锁进程,所占用的 死锁进程 资源或者需要它们进行某种合作的其它进程就 会相继陷入死锁, 会相继陷入死锁,最终可能导致整个系统处于 瘫痪状态。 瘫痪状态。
S3 P3 S2
P1 S1 P2
P1:Request(S3);Release(S1) : P2:Request(S1);Release(S2) : P3:Request(S2);Release(S3) : 可能发生死锁
并发执行。 例:进程P1、P2并发执行。 进程 、 并发执行 共享资源R1、 共享资源 、R2
进程死锁
UNIX系统允许创建的进程总数是由进程 UNIX系统允许创建的进程总数是由进程 表中包含的PCB个数决定的。因此,PCB资 PCB个数决定的 表中包含的PCB个数决定的。因此,PCB资 源是有限资源。 源是有限资源。如果由于进程表中已经无 空闲的PCB而使创建子进程操作(FORK) PCB而使创建子进程操作(FORK)失 空闲的PCB而使创建子进程操作(FORK)失 则执行FORK FORK操作的程序可以等待一段 败,则执行FORK操作的程序可以等待一段 时间之后再试。 时间之后再试。 出现这种情况的可能性是非常小的, 出现这种情况的可能性是非常小的,但 还是有可能发生的。一旦出现, 还是有可能发生的。一旦出现,只要忽略 原进程已运行情况的现场, 原进程已运行情况的现场,重新启动机器 让它们重新运行即可。 让它们重新运行即可。 假定UNIX系统有 个PCB项,10个进 假定 系统有100个 项 个进 系统有 程正在运行,每个需要创建12个子进程 个子进程。 程正在运行,每个需要创建 个子进程。
进程死锁 deposit( data) begin p(avail) p(mutex) 送数据入缓冲区某 单元 v(full) v(mutex) end end remove (data) begin p(full) p(mutex) 取缓冲区中某单元 数据 v(avail) v(mutex)
进程死锁
在前述若pv操作使用不当 会引起死锁。 在前述若pv操作使用不当,会引起死锁。把生产 pv操作使用不当, 者进程两个p操作次序调换一下,先执行P mutex) 后执行P(avail) (mutex),后执行P(avail) mutex) P(mutex) 互斥 avail) P(avail) 者执行。 者执行。 判断 缓冲区满,不能送, 缓冲区满,不能送,从消费