第三章进程管理 - PowerPoint 演示文稿
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主从式(master-servant system)通信系统的主 要特点是:
a.主进程可自由地使用从进程的资源或数据; b.从进程的动作受主进程的控制; c.主进程和从进程的关系是固定的.
主从式通信系统的典型例子是终端控制进程和 终端进程。
浙江教育学院 信息学院
3.7.1 进程的通信方式
售票; }
3.6进程同步
计算时需要一个存放 计算结果的Buf,用 Bufempty代表空的 缓冲区,初始值 =TRUE. 打印时需要一个装有 数据的Buf,用Buffull 代表满的缓冲区,初 始值=FALSE. Wait(Bufempty)等待 Bufempty为true. Signal(Buffull)使 Buffull为true.
浙江教育学院 信息学院
3.6同步的概念
1.进程同步举例:公共汽车中的司机和售票员。
司机
P1
售票员
while (true) {
wait(到站)
P2
while (true)
{
wait(关门)
启动车辆; 正常运行; 到站停车; signal(到站) }
浙江教育学院 信息学院
开门;
关门;
signal(关门)
deposit(data ) Begin local pr=n …… produce a product(生产) …… 如果交换位 置 p (mutex) p (mutex) p (avail) p (avail) pr=(pr+1) mod n 将会引起死 送数据进入缓冲区pr 单元 锁 ,为什么? v(mutex) v(full) End remove(data ) Begin local pw=0 p(full) p(mutex) pw=(pw+1) mod n 取缓冲区pw单元数据 v(mutex) v(avail) …… consume the item (消费) …… End
浙江教育学院 信息学院
3.6.2私有信号量
一般来说,我们也可以把各进程之间发送的消 息作为信号量看待。与进程互斥时不同的是, 这里的信号量只与制约进程及被制约进程有关 而不是与整组并发进程有关。因此,我们称该 信号量为私用信号量(Private Semaphvre)。一 个进程Pi的私用信号量Semi是从制约进程发送 来的进程Pi的执行条件所需要的消息。 与私用信号量相对应,我们称互斥时使用的信 号量为公用信号量。
3.6同步的概念
并发进程同时访问公有数据和公有变量引出了 互斥的概念.现在研究进程的合作关系.
浙江教育学院 信息学院
3.6同步的概念
1.进程同步举例:公共汽车中的司机和售票员。
司机
P1
售票员
while (true) { 开门;
P2
while (true)
{
启动车辆; 正常运行; 到站停车; }
第三章进程管理
课程回顾
进程控制就是系统使用一些具有特定功能的程序段来创建,撤消进程 以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协 调、实现资源共享的目的。主要有创建原语,撤消原语,阻塞原语, 唤醒原语。
临界资源:一次仅允许一个进程使用的资源。
一个进程访问临界资源的那段程序代码称为临界部分(Critical section) 或者称为临界区(Critical region).即访问公用数据的那段程序。 尽管用加锁的方法可以实现进程之间的互斥,但这种方法仍然存在 这一些影响系统可靠性和执行效率的问题。例如,循环测试锁定位 将损耗较多的CPU计算时间。 OS可从进程管理者的角度来处理互斥的问题,信号量就是OS提供的 管理公有资源的有效手段。 在操作系统中,信号量sem是一整数。 在sem>=0时代表可供并发进程使用的资源实体数,但sem<0时则表示 正在等待使用临界区的进程数。
浙江教育学院 信息学院
3.6.4生产者-消费者问题
采用信号量机制: full是“满”数目,初值为0,avail是“空” 数目,初值为N。full + avail = N mutex用于访问缓冲区时的互斥,初值是1 每个进程中各个P操作的次序是重要的:先检 查资源数目,再检查是否互斥――否则可能死锁.
会话方式(dialogue system):通信进程双方可分 别称为使用进程和服务进程。其中,使用进程 调用服务进程提供的服务。它们具有如下特点:
a.使用进程在使用服务进程所提供的服务之前,必 须得到服务进程的许可. b.服务进程根据使用进程的要求提供服务,但对所 提供服务的控制由服务进程自身完成. c.使用进程和服务进程在进行通信时有固定连接关 系.
图3.14缓冲区队列
浙江教育学院 信息学院
3.6.3用P,V原语操作实现同步
X的计算值=(x+1) mod n PA进程中的x与PB中的x是 两个独立的变量.
生产
消费
浙江教育学院 信息学院
3.6.3用P,V原语操作实现同步
这里,局部变量x用来指明缓冲区的区号,给 Buf(x)置标志位是为了便于区别和搜索空缓冲区 及非空缓冲区。 (思考:在该题中需要考虑互斥吗?(如果存与放 为两个不同序号的缓冲区,则可以不考虑互斥,但 如果是同一个缓冲区,则要考虑互斥使用.) 如果每次只允许一个进程对缓冲队列进行操作 时怎么办?(需要互斥))
浙江教育学院 信息学院
3.6同步的概念
Pc
Pp
测试缓冲区需 要大量的CPU 时间.
缓冲区Buf
浙江教育学院 信息学院
3.6进程同步
我们把异步环境下的一组并发进程因直接制约而互相 发送消息而进行互相合作、互相等待,使得各进程按 一定的速度执行的过程称为进程间的同步。具有同步 关系的一组并发进程称为合作进程,合作进程间互相 发送的信号称为消息或事件。 如果我们对一个消息或事件赋以唯一的消息名,则 我们可用过程 wait (消息名) 表示进程等待合作进程发来的消息,而用过程 signal (消息名) 表示向合作进程发送消息。
浙江教育学院 信息学院
3.6.3 用P,V原语操作实现同步
1. 为各并发进程设置私用信号量 2. 为私用信号量赋初值 3. 利用P、v原语和私用信号量规定各进 程的执行顺序。
浙江教育学院 信息学院
3.6.3 用P,V原语操作实现同步
例:设进程PA和PB通过缓冲区队列传递数据。PA为发 送进程、PB为接收 进程。PA发送数据时调用发送过 程deposit(data),PB接收数据时调用过程 remove(data)。且数据的发送和接收过程满足如下条 件: 1)在PA至少送一块数据入一个缓冲区之前,PB不可 能从缓冲区中取出数据(假定数据块长等于缓冲区长度), 2)PA往缓冲队列发送数据时,至少有一个缓冲区是 空的; 3)由PA发送的数据块在缓冲队列中按先进先出(FIFO) 方式排列。
浙江教育学院 信息学院
3.6.4生产者-消费者问题
问题描述:若干进程通过有限的共享缓冲区交 换数据。其中,“生产者”进程不断写入,而 “消费者”进程不断读出;共享缓冲区共有N个; 任何时刻只能有一个进程可对共享缓冲区进行 操作。 即满足如下条件: (1)消费者想接收数据时,有界缓冲区中至 少有一个单元是满的。 (2)生产者想发送数据时,有界缓冲区中至 少有一个单元是空的。
图
生产者与消费者问题 浙江教育学院 信息学院
deposit(data ) Begin local pr=n …… produce a product(生产) …… p (avail) p (mutex) pr=(pr+1) mod n 送数据进入缓冲区pr单元 v(mutex) v(full) End
控制信息的传送(低级通信,主要用于互斥与同步) 大批量数据传送(高级通信,主要用于信息交换)
浙江教育学院 信息学院
3.7.1 进程的通信方式
进程的通信方式:
1. 2. 3. 4.
主从式 (master-servant system) 会话式(dialogue system) 消息或信箱机制(message) 共享存储区方式(shared memory)
remove(data ) Begin local pw=0 p(full) p(mutex) pw=(pw+1) mod n 取缓冲区pw单元数据 v(mutex) v(avail) …… consume the item (消费) …… End
浙江教育学院 信息学院
3.6.4生产者-消费者问题
浙江教育学院 信息百度文库院
信号量和P,V原语
P原语
申请资源的进程如果s<0,进 程自我阻塞,因此进程放弃 了CPU。 图3.12P原语操作功能
浙江教育学院 信息学院
信号量和P,V原语
V原语
释放资源的进程A,如果 有进程B在等待资源,A要 唤醒B进程后再返回原进 程程序执行,如果原进程 程序执行完毕,则把CPU 交给进程调度程序。
图3.13V原语操作功能
浙江教育学院 信息学院
用P,V原语实现进程互斥
描述: Pa: P(sem) <S临界区> V(sem):: : : Pb: P(sem) <S临界区> V(sem):: : :
浙江教育学院 信息学院
第3章 进程管理
1.进程概念(0.5学时). 2.进程描述(0.5学时). 3. 过程状态及转换(1学时). 4. 进程控制(1学时). 5.进程互斥(2学时). 6.进程同步( 1.5学时). 7. 进程通信(1.5学时). 8.死锁(1学时). 9.线程(1学时) 作业分析(1学时).
浙江教育学院 信息学院
3.7进程通信
进程通信(IPC, Inter-Process Communication)
在进程间传送数据。 操作系统可以被看作是各种进程组成的,例如用户 进程、计算进程、打印进程等。这些进程都具有各 自独立的功能,且大多数被外部需要而启动执行。 一般来说,进程间的通信根据通信的内容可以划分 为两种:
关门;
售票;
}
浙江教育学院 信息学院
3.6同步的概念
共享缓冲区的进程的同步
例题:设某计算进程Pc和打印进程Pp共用一个 单缓冲区(如右图所示)。其中, Pc进程 负责不断地计算数据并送入缓冲区Buf中, Pp进程负责不断地从缓冲区Buf中取出数据 去打印。
Pc
Pp
缓冲区Buf
分析:Pc.Pp必须遵守以下同步规则: (1)当Pc进程把计算结果送入缓冲区Buf时,Pp进程才能从缓冲区 buffer中取出结果去打印 。 (2)当Pp进程把缓冲区Buf中的数据取出打印后,Pc进程才能把下一个 计算结果送入缓冲区Buf中。
用户进程(使用进程)与磁盘管理进程(服务进程) 之间的通信是会话系统的一个例子.
浙江教育学院 信息学院
3.7.1 进程的通信方式
消息或邮箱机制则无论接收进程是否已准备好 接收消息,发送进程都将把所要发送的消息送 入缓冲区或邮箱。 消息(message)是用来区别于命令(command) 或指令(instruction)等用语的。除了表示所交换 的数据传递大量信息之外,消息还具有两互相 通信的进程地位平等的意思。 消息的一般形式为四个部分组成:
浙江教育学院 信息学院
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)描述:
浙江教育学院 信息学院
3.7.1 进程的通信方式
进程的通信方式:
1. 2. 3. 4.
主从式 (master-servant system) 会话式(dialogue system) 消息或信箱机制(message) 共享存储区方式(shared memory)
浙江教育学院 信息学院
3.7.1 进程的通信方式