第二章 进程管理

合集下载

第二章进程管理答案

第二章进程管理答案

第二章进程管理一、单项选择题1、顺序程序和并发程序的执行相比,()。

A.基本相同B. 有点不同C.并发程序执行总体上执行时间快D.顺序程序执行总体上执行时间快2、在单一处理机上,将执行时间有重叠的几个程序称为()。

A.顺序程序B. 多道程序C.并发程序D. 并行程序3、进程和程序的本质区别是()。

A.存储在内存和外存B.顺序和非顺序执行机器指令C.分时使用和独占使用计算机资源D.动态和静态特征4、在下列特性中,不是进程的特性的是()。

A. 异步性B. 并发性C. 静态性D. 动态性5A6A.7A.8A.9A.10A.11A.12。

A.13A.14A.15A.16、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是()。

A. S>0B. S=0C. S<0D. S≠017、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。

A.10 B.8 C.6 D.418、在进程通信中,使用信箱方式交换信息的是()。

A.低级通信B.高级通信C.共享存储器通信D.管道通信19.( )必定会引起进程切换。

A.一个进程被创建后进入就绪态B.一个进程从运行态变成等待态c.一个进程从运行态变成就绪态 D.一个进程从等待态变成就绪态20、操作系统使用( )机制使计算机系统能实现进程并发执行,保证系统正常工作。

A.中断B.查询c.同步D互斥21.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。

A.顺序执行B.同时执行c.并行执行D.并发执行22.操作系统根据( )控制和管理进程,它是进程存在的标志。

A.程序状态字B.进程控制块 c.中断寄存器 D.中断装置23.若干个等待占有cPU并运行的进程按一定次序链接起来的队列为( )。

A.运行队列 B.后备队列 c.等待队列D.就绪队列24.进程的( )和并发性是两个很重要的属性。

A.动态性 B.静态性 c.易用性 D.顺序性25引入多道程序设计技术后,处理器的利用率( )。

精品文档-计算机操作系统(第三版)汤小丹-第2章

精品文档-计算机操作系统(第三版)汤小丹-第2章
第二章 进 程 管 理
第二章 进 程 管 理
2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程
第二章 进 程 管 理
2.1 进程的基本概念
2.1.1 程序的顺序执行及其特征
1. 程序的顺序执行
通常可以把一个应用程序分成若干个程序段,在各程序段 之间,必须按照某种先后次序顺序执行,仅当前一操作(程序段) 执行完后,才能执行后继操作。例如,在进行计算时,总须先 输入用户的程序和数据,然后进行计算,最后才能打印计算结 果。这里,我们用结点(Node)代表各程序段的操作(在图2-1中 用圆圈表示),其中,I代表输入操作,C代表计算操作,P为打 印操作;另外,用箭头指示操作的先后次序。这样,上述的三 个程序段的执行顺序可示于图2-1(a)中。对一个程序段中的多 条语句来说,也有一个执行顺序问题,例如对于下述三条语句 的程序段:
(3) 可再现性:只要程序执行时的环境和初始条件相同, 当程序重复执行时,不论它是从头到尾不停顿地执行,还是 “停停走走”地执行,都将获得相同的结果。
程序顺序执行时的特性,为程序员检测和校正程序的错误 带来了很大的方便。
第二章 进 程 管 理
2.1.2 前趋图
前趋图(Precedence Graph)是一个有向无循环图,记为 DAG(Directed Acyclic Graph),用于描述进程之间执行的前 后关系。图中的每个结点可用于描述一个程序段或进程,乃至 一条语句;结点间的有向边则用于表示两个结点之间存在的偏 序(Partial Order,亦称偏序关系)或前趋关系(Precedence Relation)“→”。
第二章 进 程 管 理
(2) 父进程请求。有时父进程希望挂起自己的某个子进程, 以便考查和修改该子进程,或者协调各子进程间的活动。

操作系统课件 第2章 进程

操作系统课件 第2章 进程

第二章 进 程 管 理
对于具有下述四条语句的程序段: S1: a∶=x+2 S2: b∶=y+4 S3: c∶=a+b S4: d∶=c+b 请画出前趋关系图。
S1 S3 S2 S4
第二章 进 程 管 理
2.2 程序并发执行时的特征
1) 间断性 相互制约性)-后面的模块等待前面的模块 间断性(相互制约性 - 相互制约性 传来的结果,然后才执行(如打印模块等待 计算模块完成)。走走停停。 2) 失去封闭性 :多个程序共享系统中的各种资源, 因而这些资源的状态将由多个程序来改变, 致使程序的运行已失去了封闭性。 结果是一个程序运行时会受到另一个程序的 结果是 影响。 3) 不可再现性 :程序在并发执行时,由于失去了封 闭性,也将导致失去其可再现性
第二பைடு நூலகம் 进 程 管 理
新进程
接纳
就绪 时间片完 I/O完成 进程调度
阻塞 I/O请求
执行
完成
结束
图 2-5 进程的三种基本状态及其转换
(教材讲5种)
第二章 进 程 管 理
作业调度
作业后备队列
阻塞队列
外存
进程就绪队列
一些 阻塞队列
内存
处理器 (CPU)
第二章 进 程 管 理
3.7五状态 五状态进程模型 五状态
第二章 进 程 管 理
3.4进程与程序的区别 进程与程序的区别
程序是静态的, 1)程序是静态的 进程是动态的; 是根本区别) 1)程序是静态的,进程是动态的;(是根本区别) 程序是有序代码的集合;进程是程序的执行。 程序是有序代码的集合;进程是程序的执行。 2)进程和程序不是一一对应的 2)进程和程序不是一一对应的 ; • 一个程序可对应多个进程 即多个进程可执行同一程序 ; 一个程序可对应多个进程,即多个进程可执行同一程序 • 一个进程可以执行一个或几个程序 3)进程是暂时的 程序的永久的:进程是一个状态变化的过程, 进程是暂时的, 3)进程是暂时的,程序的永久的:进程是一个状态变化的过程, 程序可长久保存。 程序可长久保存。 4)进程与程序的组成不同 进程的组成包括程序、 进程与程序的组成不同: 4)进程与程序的组成不同:进程的组成包括程序、数据和进程 控制块(即进程状态信息)。 控制块(即进程状态信息)。 5)进程具有创建其他进程的功能 而程序没有。 进程具有创建其他进程的功能, 5)进程具有创建其他进程的功能,而程序没有。

计算机操作系统 第二章 进程管理(2)

计算机操作系统 第二章 进程管理(2)

缺点:
(1)进程在等待进入临界区时也要耗费处理器时间, 不能实现“让权等待” (2)可能出现进程“饥饿”
2.3.2 信号量机制
新的同步工具——信号量和P、V操作。
信号量:是一种数据结构,代表可用资源实 体的数目。
信号量只能通过初始化和两个标准的原语: P(wait(S))、V((signal(S))来访问。 P原语相当于进入区操作,V原语相当于退 出区操作。
AND同步机制
AND同步机制的基本思想是:进程运行时所 需要的所有资源,要么全部分配给它,使用完 毕后一起释放;要么一个都不分配给它。实现 时,采用原子操作:要么全部分配到所有资源, 要么一个也不分配到。 称AND型信号量P原语为:
Swait(Simultaneous wait)
V原语为Ssignal(Simultaneous signal)。
SP原语描述
Swait(S1,S2,„,Sn) /* SP原语描述 */ {while(1) {if(S1>=1&&S2>=1&&„&&Sn>=1) {for(i=1;i<=n;i++) Si--; /* 先确信可满足所有资源要求再减1操作 */ berak; } else /* 资源不够时 */ {将进程放入第一个信号量小于1的阻塞队列Si.sqeue; 将PC中的地址回退到SP开始处; 阻塞进程; } } }
第二章 进程管理(2)
2.3 进程同步
多进程并发执行时,由于资源共享或进程合 作,使进程间形成间接相互制约和直接相互制 约关系,这需要用进程互斥与同步机制来协调 两种制约关系。 进程同步的主要任务:协调进程执行次序, 使并发执行的诸进程间能有效地共享资源和相 互合作,使程序的执行具有可再现性。

第2章 进程管理课后习题解答

第2章 进程管理课后习题解答

第题中,如果修改问题中的同步算法,要求 对写进程优先,即一旦写进程到达,后续的读者进程必须等待, 而无论是否有读者进程在读文件。写出相应进程的程序段。 semaphore fmutex=1, rmutex=1, wmutex=1;que=1;
int rcount=0, wcount=0; void main() { parbegin(reader, writer); }
12
void reader { while(1) { wait(que); wait(rmutex); if(0==readcount) wait(fmutex); readcount++; signal(rmutex); signal(que); …. begin to read wait(rmutex); readcount--; if(readcount==0) signal (fmutex); signal(rmutex); } }
读者—写者问题(读优先) 读者 写者问题(读优先) 写者问题 semaphore rmutex=1,wmutex=1; int readcount=0; = void main() { parbegin(reader,writer); }
读者进程: 读者进程: void reader() { while(1) { wait(rmutex); if (readcount==0) wait(wmutex); readcount++; signal(rmutex); … 读操作 wait(rmutex); readcount--; if (readcount==0) signal(wmutex); signal(rmutex); } }
18
chopstick[ ={1 semaphore chopstick[5]={1,1,1,1,1}; viod main() { parbegin(P0(),P1(),P2(),P3(),P4()); parbegin(P0(),P1(),P2(),P3(),P4()); } Pi() /*i=0,1,2,3,4*/ { while(1) { wait(chopstick[i]); [ ] wait(chopstick[(i+1)%5]); [ ] eating; … signal(chopstick[i]); [ ] signal(chopstick[(i+1) %5]); [ ] thinking; } }

chap2 进程管理

chap2 进程管理

2· 2 进程的状态及转换
状态及其转换 静止就绪状态:表明进程具备运行条件但目前在二级存储器中,当它被 对换到主存才能被调度执行 静止阻塞状态:表明进程正在等待某一事件且在二级存储器中 ①运行或活动就绪→静止就绪,活动阻塞→静止阻塞 通过挂起操作(suspend)。 ②静止就绪→活动就绪, 静止阻塞→活动阻塞 通过激活操作(activate)。 ③静止阻塞→静止就绪: 当等待的事件发生时。 挂起进程的特征: (1)该进程不能立即执行。(2)挂起进程可能会等待事件,但所等待 事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。 (3)进程进入挂起状态是由于操作系统、父进程或进程本身阻止它 的运行。(4)结束进程挂起状态的命令只能通过操作系统或父进程 发出。
题目:
4、进程执行时的间断性,决定了进程可能具有多种状态。进程的基 本状态有三种,在分时系统中,当一个进程拥有的时间片到时, 则该进程即由[1]进入[2]。如果出现因某种原因使得处理机空闲时, 则需要从就绪队列中选择一进程,并将处理机分配给它,此时该 进程进入[3],这个过程是由[4]来完成。 供选择的答案: [1][2][3] A、就绪状态 B、静止状态 C、阻塞状态 D、运行状态 [4] A、进程控制程序 B、资源分配程序 C、进程调度程序 D、处理机分配程序 5、下列进程状态的转换中,哪一个是不正确的( )。 A. 就绪->运行 B. 运行->就绪 C. 就绪->阻塞 D. 阻塞->就绪 6、一个进程被唤醒意味着( )。 A.该进程重新占有了CPU B.进程状态变为就绪 C.它的优先权变为最大 D.其PCB移至就绪队列的队首
2· 2 进程的状态及转换
3、细分5种状态的进程状态及其转换 新建、就绪、运行、阻塞、终止 新建:对应进程刚被创建的状态,为一个新进程 创建必要的管理信息,它并没有被提交运行, 而是等待操作系统完成创建进程的必要操作。 终止:进程已完成执行就变为终止状态。进入终 止态的进程不再执行,但依然临时保留在系统 中等待善后。一旦其他进程完成了终止进程的 信息抽取后,系统将删除该进程。

操作系统原理第二章进程管理

操作系统原理第二章进程管理

2.1 前趋图和程序执行
例:有7个结点的前趋图。
P = { P1,P2,P3,P4,P5,P6,P7 } → = {(P1,P2),(P1,P3),(P1,P4), (P2,P5),
(P3,P5),(P4,P6),(P5,P7),(P6,P7)}
2
1 3
4
5
7 6
2.1 前趋图和程序执行
➢ 程序的顺序执行
打印三项操作。其程序段并发执行的前趋图:
I1 → I2 → I3 → I4 →
↘↘↘↘
C1 → C2 → C3 → C4 →
↘↘↘↘
P1 → P2 → P3 → P4 →
2.1 前趋图和程序执行
例2.Begin integer N:=0;
Cobegin
Program A : begin
Program B : begin
void popaddr (top) { top --; r=*top; return (r) }
void pushaddr(blk) { *top = blk; top++;
}
先执行 popaddr 的top--,接着执行pushaddr的*top=blk
2.1 前趋图和程序执行
➢ 程序并发执行过程及条件 (Bernstein条件)
果必相同。
2.1 前趋图和程序执行
➢ 程序的并发执行
➢ 程序执行环境
➢ 独立性,逻辑上是独立的。 ➢ 随机性:输入和执行开始时间都是随机的。 ➢ 资源共享:资源共享导致对进程执行速度
的制约。
2.1 前趋图和程序执行
➢ 程序的并发执行
并发执行是指两个程序执行时间上是重叠 的。凡是能由一组并发程序完成的任务,都 能由相应的单个程序完成。 例1:有一批程序,而每个程序需输入,计算,

《计算机操作系统》第2章 进程管理

《计算机操作系统》第2章  进程管理

2.1.3 进程的状态模型
新建
准许
准许
挂起
静止就绪
事件 发生
静止阻塞
激活 挂起
激活 挂起
活动就绪
事件 发生 活动 阻塞
分派 超时
运行
等待 事件
释放
退出
பைடு நூலகம்
图2-8 有挂起态的七状态模型
在新的状态模型中,比较重要的新转换如下: ►(1)活动阻塞→静止阻塞:当内存紧张而系统中又没有就绪进程时,一个阻塞
态进程就会被挂起。
分派
进入
非运行
运行
退出
暂停 图2-3 两状态模型
2.1.3 进程的状态模型
2. 三状态模型
三状态模型中进程的三种基本状态如下:
►(1)就绪状态(Ready)。一个进程获得了除处理机之外所需的一切资源,一 旦得到处理机即可运行。在系统中,将处于就绪状态的多个进程的PCB组织成一 个队列,或按照某种规则排在不同的队列中,这些队列称为就绪队列。
2.1.3 进程的状态模型
3. 五状态模型
新建态
进入就 绪队列
运行态
被调 度 时间片
用完
就绪态
事件
发生
退出态 等待事件 阻塞态
图2-6 五状态模型图
►为便于进程管理,有必要增加一种有用的状态,我们称为新建态,对应于刚刚创建 的进程,操作系统还没有把它加入到就绪队列中,通常是进程控制块已经创建但还 没有加载到内存中的新进程。
►同样,进程从系统中退出时,也增加一种有用的状态,进程被终止直到释放PCB所 处的状态,我们称为退出态。
2.1.3 进程的状态模型
五状态模型中的状态转换:
►(1)空→新建:创建一个程序的新进程。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章进程管理1.从静态的角度看,进程是由(A)、(B)、(C)三部分组成的,其中(C)是进程存在的惟一标志。

当几个进程共享(A)时,(A)应当是可重入代码。

A,B,C:(1) JCB;(2) PCB;(3) DCB;(4) FCB;(5) 程序段;(6) 数据段;7) I/O 缓冲区。

2.进程的三个基本状态是(A)、(B)、(C)。

由(A)到(B)是由进程调度所引起的;由(B)到C)是正在执行的进程发生了某事件,使之无法继续执行而引起的。

A,B,C:(1) 挂起;(2) 阻塞;(3) 就绪;(4) 执行;(5) 完成。

3.下列进程状态转换中,绝对不可能发生的状态转换是(A);一般不会发生的状态转换是(B)。

A,B:(1) 就绪→执行;(2) 执行→就绪;(3) 就绪→阻塞;(4) 阻塞→就绪;5) 阻塞→执行;(6) 执行→阻塞。

4.在一个单处理机系统中,存在5 个进程,则最多有(A)个进程处于就绪队列,(B)个进程处于阻塞状态。

A,B:(1) 5;(2) 4;(3) 3;(4) 2;(5) 1;(6) 0。

5.正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为(A)状态;处于静止阻塞状态的进程,在进程等待的事件出现后,应变为(B)状态;若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为(C)状态;若进程已处于阻塞状态,则此时应转变为(D)状态。

A,B,C,D:(1) 静止阻塞;(2) 活动阻塞;(3) 静止就绪;(4) 活动就绪;(5) 执行。

6.为使进程由活动就绪转变为静止就绪,应利用(A)原语;为使进程由执行状态转变为阻塞状态,应利用(B)原语;为使进程由静止就绪变为活动就绪,应利用(C)原语;为使进程从阻塞状态变为就绪状态,应利用(D)原语。

A,B,C,D:(1) create;(2) suspend;(3) active;(4) block;(5) wakeup。

7.在将CPU 的执行状态分为用户态和核心态的系统中,应该在核心态下执行的指令依次为(A)、(B)和(C)。

而从用户状态转换到系统状态是通过(D)实现的。

A,B,C:(1) 屏蔽所有中断;(2) 读时钟;(3) 设置时钟的值;(4) 存取内存中某地址单元的值;(5) 停机。

D:(1) 执行进程直接修改程序状态字;(2) 中断屏蔽;(3) 中断;(4) 进程调度。

8.在分时系统中,导致进程创建的典型事件是(A);在批处理系统中,导致进程创建的典型事件是(B);由系统专门为运行中的应用进程创建新进程的事件是(C)。

在创建进程时,D)不是创建所必需的步骤。

A:(1) 用户注册;(2) 用户登录;(3) 用户记账;(4) 用户通信。

B:(1) 作业录入;(2) 作业调度;(3) 进程调度;(4) 中级调度。

C:(1) 分配资源;(2) 进行通信;(3) 共享资源;(4) 提供服务。

D:(1) 为进程建立PCB;(2) 为进程分配内存等资源;(3) 为进程分配CPU;(4) 将进程插入就绪队列。

9. 从下面对临界区的论述中,选出两条正确的论述。

(1) 临界区是指进程中用于实现进程互斥的那段代码。

(2) 临界区是指进程中用于实现进程同步的那段代码。

(3) 临界区是指进程中用于实现进程通信的那段代码。

(4) 临界区是指进程中用于访问共享资源的那段代码。

(5) 临界区是指进程中访问临界资源的那段代码。

(6) 若进程A 与进程B 必须互斥地进入自己的临界区,则进程A 处于对应的临界区内时,仍有可能被进程B 中断。

(7) 若进程A 与进程B 必须互斥地进入自己的临界区,则进程A 处于对应的临界区内时,便不能被进程B 中断。

10. (A)是一种只能由wait 和signal 操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排它性访问临界资源。

A:(1) 控制变量;(2) 锁;(3) 整型信号量;(4) 记录型信号量。

B,C:(1) 同步;(2) 通信;(3) 调度;(4) 互斥。

11. 对于记录型信号量,在执行一次wait 操作时,信号量的值应当(A),当其值为(B)时,进程应阻塞。

在执行signal 操作时,信号量的值应当(C),当其值为(D)时,应唤醒阻塞队列中的进程。

A,C:(1) 不变;(2) 加1;(3) 减1;(4) 加指定数值;(5) 减指定数值。

B,D:(1) 大于0;(2) 小于0;(3) 大于等于0;(4) 小于等于0。

12.用信号量S 实现对系统中4 台打印机的互斥使用,S.value 的初值应设置为(A),若S.value 的当前值为-1,则表示S.L 队列中有(B)个等待进程。

A:(1) 1;(2) 0;(3) -1;(4) 4;(5) -4。

B:(1) 0;(2) 1;(3) 2;(4) 3;(5) 4;(6) 5;(7) 6。

10.在生产者-消费者问题中,应设置互斥信号量mutex、资源信号量full 和empty。

它们的初值应分别是(A)、(B)和(C)。

A,B,C:(1) 0;(2) 1;(3) -1;(4) -n;(5) +n。

14. 对生产者-消费者问题的算法描述如下,请选择正确的答案编号填入方框中。

producer:begin consumer:begin repeat repeat(A);(E);(B);(B);buffer(in):=m;m:=buffer(out);in:=(in+1)mod n;out:=(out+1)mod n;(C);(C);(D);(F);until false;until false;end end A,B,C,D,E,F:(1) wait(mutex);(2) signal(mutex);(3) wait(empty);(4) signal(full);(5) wait(full);(6) signal(empty)。

15在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入。

send ((A),(B));receive((C),(B));A,B,C:(1) sender;(2) receiver;(3) text;(4) message;(5) mailbox。

16. 使用mail 命令的信箱通信属于(A),因为信息是被发送到接收方的(B)中;使用write命令,实现的是(C)通信,因为信息是被送到收方的(D);使用共享文件进行通信的方式属于(E)通信。

A,C,E:(1) 共享存储器;(2) 实时通信;(3) 消息缓冲通信;(4) 非实时通信;(5) 管道通信。

B,D:(1) 消息缓冲队列;(2) 内存;(3) 信箱;(4) 消息缓冲区;(5) 屏幕;(6) 共享存储区。

17.试选择正确答案,以便能正确地描述图2.10 所示的前趋关系。

Var a,b,c:semaphore:=0,0,0;begin parbeginbegin S1;(A);endbegin S2;(B);endbegin wait(a);wait(b);S3;(C);endbegin (D);S4;endparend endA,B,C,D:(1) signal(a);(2) signal(b);(3) wait(c);(4) signal(c)。

16.有两个程序:A 程序按顺序使用CPU 10 s、设备甲5 s、CPU 5 s、设备乙10 s、CPU 10 s;B 程序按顺序使用设备甲10 s、CPU 10 s、设备乙5 s、CPU 5 s、设备乙10 s。

在顺序环境下,执行上述程序,CPU 的利用率约为(A),若允许它们采用非抢占方式并发执行,并不考虑切换等开销,则CPU 的利用率约为(B)。

A,B:(1) 30%;(2) 40%;(3) 50%;(4) 60%;(5) 70%;(6) 80%;(7) 90%。

19. 从下面的叙述中选出一条正确的叙述。

(1) 操作系统的一个重要概念是进程,不同进程所执行的代码也不同。

(2) 操作系统通过PCB 来控制和管理进程,用户进程可从PCB 中读出与本身运行状态相关的信息。

(3) 当进程由执行状态变为就绪状态时,CPU 现场信息必须被保存在PCB 中。

(4) 当进程申请CPU 得不到满足时,它将处于阻塞状态。

(5) 进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的惟一标志。

20. 从下面的叙述中选出4 条正确的叙述。

(1) 一个进程的状态发生变化总会引起其他一些进程的状态发生变化。

(2) 进程被挂起(suspend)后,状态变为阻塞状态。

(3) 信号量的初值不能为负数。

(4) 线程是CPU 调度的基本单位,但不是资源分配的基本单位。

(5) 在进程对应的代码中使用wait、signal 操作后,可以防止系统发生死锁。

(6) 管程每次只允许一个进程进入。

(7) wait、signal 操作可以解决一切互斥问题。

(8) 程序的顺序执行具有不可再现性。

算法题:1.试修改下面生产者-消费者问题的解法中的错误。

producer: consumer: begin begin repeatrepeat …wait(mutex);produce a new product m;wait(empty);wait(mutex);m:=buffer(out);wait(full);out:=out+1;buffer(in):=m;signal(mutex);signal(mutex);consume product m;until false;until false;end end2. 在测量控制系统中,数据采样任务把所采集的数据送入一单缓冲区,计算任务从该单缓冲区中取出数据进行计算。

试写出利用信号量机制实现两者共享单缓冲的同步算法。

3. 图2.11 给出了一个从键盘输入到打印机输出的数据处理流图,其中键盘输入进程通过缓冲区buffer1 把输入数据传送给计算进程,计算进程把处理结果通过缓冲区buffer2 传送给打印进程。

设上述两个缓冲区的大小分别是n1 和n2,为实现输入进程与计算进程的同步,我们设置了一个互斥信号量mutex1,以及分别表示buffer1 空和满的两个资源信号量empty1和full1;类似地,为实现计算进程和打印进程之间的同步,我们又设置buffer2 的对应信号量mutex2、empty2 及full2。

试用类Pascal 语言写出键盘输入进程、计算进程及打印进程间的同步算法。

2.11 从键盘输入到打印输出流程4、嗜睡的理发师问题:一个理发店由一个有N 张沙发的等候室和一个放有一张理发椅的理发室组成。

相关文档
最新文档