计算机操作系统(第三章)_31(进程的通信与死锁)
第3章死锁习题及答案

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

第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块JCB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU 繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
计算机操作系统第三章

计算机操作系统第三章1.⾼级调度与低级调度的主要任务是什么?为什么要引⼊中级调度?⾼级调度主要功能是根据某种算法,决定将外存上处于后备队列中的哪⼏个作业调⼊内存,为它们创建进程,分配必要的资源,并将它们放⼊就绪队列。
低级调度主要功能是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。
引⼊中级调度的主要⽬的是,提⾼内存利⽤率和系统吞吐量。
使那些暂时不能运⾏的进程不再占⽤内存资源,将它们调⾄外存等待,把进程状态改为就绪驻外存状态或挂起状态。
2.处理机调度算法的共同⽬标是什么?批处理系统的调度⽬标⼜是什么?共同⽬标:资源利⽤率,公平性,平衡性,策略强制执⾏。
批处理系统的调度⽬标:平均周转时间短,系统吞吐量⾼,处理机利⽤率⾼。
3.何谓作业、作业步和作业流?作业:作业是⼀个⽐程序更为⼴泛的概念,它不仅包含了通常的程序和数据,⽽且还应配有⼀份作业说明书,系统根据该说明书来对程序的运⾏进⾏控制。
在批处理系统中,是以作业为基本单位从外存调⼊内存的。
作业步:通常,在作业运⾏期间,每个作业都必须经过若⼲个相对独⽴⼜相互关联的顺序加⼯步骤才能得到结果。
我们把其中的每⼀个加⼯步骤称为⼀个作业步。
各作业步之间存在着相互联系,往往是上⼀个作业步的输出作为下⼀个作业步的输⼊。
作业流:是指若⼲个作业进⼊系统后依次存放在外存上形成的输⼊作业流,在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4.在什么情况下需要使⽤作业控制块JCB,其中包含了哪些内容?每当⼀个作业进⼊系统时,便由“作业注册”程序为该作业建⽴⼀个作业控制块JCB。
再根据作业类型,将它放到相应的作业后背队列中等待调度。
通常在JCB中包含的内容有:作业标识、⽤户名称、⽤户账户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业运⾏时间)、资源请求(预计运⾏时间、要求内存⼤⼩等)、资源使⽤情况等。
精品文档-计算机操作系统教程(第二版)(徐甲同)-第3章

第3章 进程管理 图 3.1 程序的顺序执行
第3章 进程管理
显然,程序的顺序执行具有如下特性: (1) 当顺序程序在处理机上执行时,处理机严格地顺序执行 程序规定的动作。每个动作都必须在前一动作结束后才能开始。 除了人为的干预造成机器暂时停顿外,前一动作的结束就意味着 后一动作的开始。程序和机器执行程序的活动严格一一对应。 (2) 一个程序在机器中执行时,它独占全机资源,除了初始 状态外,只有程序本身规定的动作才能改变这些资源的状态。
第3章 进程管理
2. 程序和机器执行程序的活动不再一一对应 程序和机器执行程序的活动是两个概念。程序是指令的有序 集合,是静态的概念;而机器执行程序的活动是指指令序列在处 理机上的执行过程,或处理机按照程序执行指令序列的过程。通 常把机器执行程序的活动称为“计算”。显然,“计算”是一个 动态的概念。
程序和数据集合两部分是进程存在的物质基础,即进程的实 体。
第3章 进程管理
进程控制块(或任务控制块)包含了进程的描述信息和控制信 息,是进程的动态特性的集中反映。不同的操作系统其进程控制 块的内容及信息量也不同。在小型机、微型机等比较简单的操作 系统中,PCB只占用十几个单元;而在一些大、中型机的操作系 统中,PCB的内容可能占用几十甚至上百个单元。
第3章 进程管理
直接制约关系通常是在彼此之间有逻辑关系的两个并发执行 的程序之间发生的。例如,一个正在执行的程序段需要另一程序 段的计算结果,只有当另一程序段在某一时刻送来计算结果时, 正在执行的程序段才能继续执行下去。否则它就一直等待,无法 执行。两个并发程序段以间接方式发生制约关系是由竞争使用同 一资源引起的。得到资源的程序段可以继续执行,得不到资源的 程序段就只好暂停等待。
第3章 进程管理
计算机操作系统(第四版)课后习题答案第三章

第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块J CB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
操作系统复习(选择题)

操作系统复习(选择题)第一章操作系统引论1.______不是分时系统的特点。
A.多个用户是经过网络连接,同时使用计算机系统B.各用户可同时请求系统服务C.各用户的请求彼此独立,互不干扰D.用户以会话方式控制自己的程序运行2.在的控制下,计算机系统能及时处理由过程控制反馈的数据,并作出响应。
A.批处理操作系统B.实时操作系统C.分时操作系统D.多处理机操作系统3. 在操作系统中,用户界面指的是。
A.硬件接口、软件接口和操作环境B.命令接口、程序接口和操作环境C.硬件接口、命令接口和操作环境D.硬件接口、命令接口和程序接口4.下列各项中,不是现代操作系统的主要特征。
A. 并发性B. 共享性C. 确定性D. 虚拟性5.从用户的观点看,操作系统是。
A. 用户与计算机之间的接口B. 控制和管理计算机资源的软件C. 合理地组织计算机工作流程的软件D. 由若干层次的程序按一定的结构组成的有机体6.在下列操作系统的各个功能组成部分中,不需要硬件的支持。
A. 进程调度B. 时钟管理C. 地址映射D. 中断系统7.有关原语的说法中,是正确的。
A.原语是不可中断执行的用户过程B.原语是不可中断执行的操作系统过程C.原语是可中断执行的用户过程D.原语是可中断执行的操作系统过程8. 多道批处理系统的主要缺点是。
A. CPU利用率低B. 不能并发执行C. 缺少交互性D. 以上都不是9.设计实时操作系统时,首先要考虑系统的。
A.实时性和可靠性B.实时性和灵活性C.灵活性和可靠性D.灵活性和可移植性10.主要由于原因,使UNIX易于移植。
A、UNIX是由机器指令书写的B、UNIX大部分由汇编少部分用C语言编写C、UNIX是用汇编语言编写的D、UNIX小部分由汇编大部分用C语言编写第二章进程管理1.下列的进程状态变化中,的变化是不可能发生的。
A. 运行→就绪B. 运行→等待C. 等待→运行D. 等待→就绪2. 进程具有并发性和两大重要属性。
操作系统-徐甲同 2版 习题答案 第三章进程-死锁

计算机操作系统
第三章 进程管理
3.破坏“循环等待”条件 采用资源有序/顺序分配法: 把系统中所有资源编 号, 进程在申请资源时必须严格按资源编号的递增次 序进行,否则操作系统不予分配。打破环。 例如:1,2,3,…,10
计算机操作系统
第三章 进程管理
R1
A
B
此列子表明; 进程竞争资源有可能死锁。 但不一定就会死锁,这取决于各 进程的推进速度和对资源的请求 顺序。 死锁是一种与时间有关的错误。 进程竞争的资源应是互斥
R2
进程死锁例1的环路表示
3.4
计算机操作系统
第三章 进程管理
A r1
死锁的举例 例2:
进 程 A A r2 A r3 A r4 B r1 进 程 B B r2 B r3 B r4 请求 读卡 机请 求打 印机 释放 打卡 机 释放 读卡 机 读卡 机 请求 打印 机 请求 读卡 机 释放 打印 机 释放 读卡 机 打印 机
4、 Ar1 Br1 Ar2 Br2 Ar3 Ar4 Br3 Br4
3.6
计算机操作系统
第三章 进程管理
二、产生死锁的四个必要条件
1) 互斥条件(资源独占): 一个资源每次只能给一个进程使用 2) 不可剥夺条件(不可强占): 资源申请者不能强行的从资源占有者手中夺取资 源, 资源只能由占有者自愿释放 3) 请求和保持条件: (部分分配,占有申请) 在申请新的资源的同时保持对原有资源的占有。 4) 循环等待条件: 存在一个进程-等待资源环形链 {P1 , P2 , … , Pn}, 其中P1等待P2占有的资源, P2等待P3占有的资源, …, Pn等待P1占有的资源。
计算机操作系统(第四版)课后习题答案第三章

第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块JCB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU 繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 进程管理
第21页 源程序如下p72
3.8 3.8.1 死锁的概念
死 锁
3.8.2 死锁的排出方法
2011/10/10
第三章 进程管理
第22页
Bridge Crossing Example
• 车辆只允许单向通行。 • 桥上的每个位置可以看作一个资源。 • 如果发生死锁, 可以通过让一辆车后退来 解决 (剥夺资源,回滚)。 • 死锁时,可能要求多辆车后退。 • 可能会出现饥饿现象(Starvation )。
2011/10/10
第三章 进程管理
第6页
消息的一般形式为4个部分组成。即:发送 进程名、接收进程名、数据和有关数据的操作 (图3.15)。
图3.15消息的组成
2011/10/10
第三章 进程管理
第7页
消息或邮箱机制的特点
• 无论接收进程是否已准备好接收消息,发送进程都将把所 要发送的消息送入缓冲区或邮箱。 消息或邮箱机制的特点是: ① 只要存在空缓冲区或邮箱,发送进程就可以发送消息。 ② 与会话系统不同,发送进程和接收进程之间无直接连接 关系,接收进程可能在收到某个发送进程发来的消息之后, 又转去接收另一个发送进程发来的消息。 ③ 发送进程和接收进程之间存在缓冲区或邮箱(图3.16) 用来存放被传送消息
2011/10/10
第三章 进程管理
第2页
在单机系统中,进程间通信可分为4种形式: (1) 主从式:终端控制进程和终端进程 (2) 会话式:通信进程双方可分别称为使用进程和服务进程 (3) 消息或邮箱机制; (4) 共享存储区方式。
2011/10/10
第三章 进程管理
第3页
主从式通信系统的主要特点是:
2011/10/10
第三章 进程管理
第13页
3.7.3 邮箱通信
• 邮箱通信就是由发送进程申请建立一与接收进程 链接的邮箱。 • 发送进程把消息送往邮箱,接收进程从邮箱中取 出消息,从而完成进程间信息交换。 • 设置邮箱的最大好处就是发送进程和接收进程之 间没有处理时间上的限制。一个邮箱可考虑成发 送进程与接收进程之间的大小固定的私有数据结 构,它不像缓冲区那样被系统内所有进程共享。
2011/10/10
第三章 进程管理
第26页
2. 死锁的起因
• 死锁的起因是并发进程的资源竞争。 • 产生死锁的根本原因系统提供的资源个数少于并 发进程所要求的该类资源数。显然,由于资源的 有限性,不可能为所有要求资源的进程无限制地 提供资源。 • 消除死锁的方法:采用适当在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,
2011/10/10
第三章 进程管理
第12页
例:设公用信号量mutex 为控制对缓冲区访问的互斥信号量,其初 值为1 。设SM为接收进程的私用信号量,表示等待接收的消息个数, 其初值为0 。设发送进程调用过程send(m)将消息m 送往缓冲区, 接收进程调用过程Receive(m)将消息m从缓冲区读往自己的数据区, 则Send(m)和Receive(n)可分别描述为: Send(m): begin Receive(n): 向系统申请一个消息 begin 缓冲区 P(SM) P(mutex) P(mutex) P(SM) 摘下消息队列中的消息n 将发送区消息m送入 将消息n从缓冲区复制到接收区 新申请的消息缓冲区 V(SM) 释放缓冲区 把消息缓冲区挂入接 V(mutex) 收进程的消息队列 end V(mutex) V(SM) end
2011/10/10
第三章 进程管理
第15页
例:设发送进程调用过程 deposit(m)将消息发送到邮箱,接收进程调用过 程remove(m)将消息m 从邮箱中取出。另外,为了记录邮箱中空格个数和 消息个数,信号量fromnum 为发送进程的私用信号量,信号量mesnum 为接收进程的私用信号量。fromnum 的初值为信箱的空格数 n,mesnum 的初值为 0。 deposit(m)和remove(m) 可描述如下: deposit(m): begin local x P (fromnum) 选择空格x 将消息m放 入空格x中 置格x的标 志为满 V (mesnum) end
2011/10/10
第三章 进程管理
第9页
3.7.2 消息缓冲机制
发送进程
在自己的内存空间设置一个 把要发送的消息填入发送区 在自己的内存 空间设置一个
发送区
接收区
接收进程
公用缓冲区
发送进程和接收进程采用消息缓冲机制进行数据传 送时,发送进程在发送消息前,先在自己的内存空间设置 一个发送区,把欲发送的消息填入其中,然后再用发送过 程将其发送出去。接收进程则在接收消息之前,在自己的 内存空间内设置相应的接收区,然后用接收过程接收消息。
• 由于消息缓冲机制中所使用的缓冲区为公用缓冲区, 使用消息缓冲机制传送数据时,两通信进程必须满 足如下条件:
应禁止其他进程对该缓冲区消息队列的访问。否则,将引起 消息队列的混乱。同理,当接收进程正从消息队列中取消息 缓冲时,也应禁止其他进程对该队列的访问。 ② 当缓冲区中无消息存在时,接收进程不能接收到任何消息。 至于发送进程是否可以发送消息,则由发送进程是 否申请到缓冲区决定。
图3.16缓冲区或邮箱通信结构
2011/10/10
flash演示: 生产者、消费者
第8页
第三章 进程管理
共享存储区方式:
共享存储区方式不要求数据移动。两个需要互相交换 信息的进程通过对同一共享数据区(shared memory)的 操作来达到互相通信的目的。这个共享数据区是每个互相 通信进程的一个组成部分。 以上几种通信方式都可用于大量数据传送,而且,由 于其通信方式不同,需要使用不同的控制方式来达到通信 进程之间同步或互斥的目的。
哲学家进餐问题
void philosoper(int i) { while (TRUE) { think(); P( fork[i] ); P( fork[( i + 1) % N ] ); eat(); V( fork[i] ); V( fork[( i + 1) % N ] ); } } 程序有什么问题? // i为哲学家号 // 思考,直至饥饿 // 试图拿左侧叉子 // 试图拿右侧叉子 // 取到两把叉子 // 放下左侧叉子 // 放下右侧叉子
计算机操作系统 第三章 进程管理_3
楚雄师范学院计科系 秦 海 菲 qinhaifei123@
3.7
进 程 通 信
• 通信(communication)意味着在进程间传送数据 • 进程间的通信根据通信内容可以划分为二种:即 控制信息的传送与大批量数据传送。 • 低级通信:进程间控制信息的交换。 • 高级通信:进程间大批量数据的交换。 • 低级通信一般只传送一个或几个字节的信息,以 达到控制进程执行速度的作用。高级通信要传送 大量数据。高级通信的目的不是为了控制进程的 执行速度,而是为了交换信息。
第三章 进程管理
第27页
3.产生死锁有四个必要条件:
(1) 互斥条件: 并发进程所要求和占有的资源是不能同时被
2011/10/10
第三章 进程管理
第18页
图3.20 管道通信
利用UNIX提供的系统调用pipe,可建立一条同步通信管 道。其格式为: pipe(fd) intfd[2]; 这里,fd[1] 为写入端,fd[0]为读出端。 • 例: p71
发送进程
2011/10/10
接收进程
第三章 进程管理 第19页
2011/10/10
remove(m):
中
begin local x P(mesnum) 选择满格x 把满格x中的消息取出放m 置格x标志为空 V(fromnum) end
第三章 进程管理
第16页
3.7.4 进程通信的实例——和控制台的通信
通用计算机中,除了用户终端之外,还有一台 由系统操作员控制的控制台终端。各用户进程可将消息送 到控制台进程,操作员在读到这些消息后做出相应的处理。
2011/10/10
第三章 进程管理
第14页
邮箱由邮箱头和邮箱体组成。其中邮箱头描述邮箱名 称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。邮 箱体主要用来存放消息(图3.17)。
图3.17 邮箱通信结构
对于只有一发送进程和一接收进程使用的邮箱,则进程间通信应满 足如下条件: ① 发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。 ② 接收进程接收消息时,邮箱中至少要有一个消息存在。
例2: 编写一程序,建立一个管道。同时,父进程生成子进 程P1,P2,这两个子进程分别向管道中写入各自的字符串, 父进程读出它们(如图3.21)。
图3.21 父进程和子进程P1,P2通信例子 解:程序框图如图3.22所示:
2011/10/10
第三章 进程管理
第20页
图3.22 例2程序流图
2011/10/10
用户进程与磁盘管理进程之间的通信是会 话系统的一个例子
2011/10/10
第三章 进程管理
第5页
会话方式中,通信进程双方可分别称为使用进程和服 务进程。其中,使用进程调用服务进程提供的服务。它们 具有如下特点: ① 使用进程在使用服务进程所提供的服务之前,必须得到 服务进程的许可; ② 服务进程根据使用进程的要求提供服务,但对所提供服 务的控制由服务进程自身完成。 ③ 使用进程和服务进程在通信时有固定连接关系。 各用户进程向磁盘管理进程提出使用要求并得到许可 之后,才可以使用相应的存储区。而且,由磁盘管理进程 自身完成对磁盘存储区的管理和控制。另外,用户进程与 磁盘管理进程之间,只有在用户进程要求使用磁盘存储区 时才有通信关系。
flash演示:导致死锁的情况
3.8.1死锁的定义
• 死锁:各并发进程彼此互相等待对方所拥有的资源,且