第三章进程同步问题习题答案教学内容
第三章进程同步与通信作业习题与答案

第三章进程同步与通信作业习题与答案第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。
A.管道B.管程C.通道D.DMA2.以下_B__不是操作系统的进程通信手段。
A.管道B.原语C.套接字D.文映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。
A.3B.2C.1D.04.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_C__。
A.3,2,1,0,-1B.2,1,0,-1,-2C.1,0,-1,-2,-3D.4,3,2,1,05.下面有关进程的描述,是正确的__A__。
A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。
A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B__。
A.没有进程进入临界区B.有1个进程进入了临界区C.有2个进程进入了临界区D.有1个进程进入了临界区并且另一个进程正等待进入8.信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。
A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C.信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10.并发是指_C__。
A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11.临界区是_C__。
A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。
第三章 进程 习题

G,若系统中并发运行的进程和资源之间满足互斥使用,保持和等待,非剥夺性和循环等待,则可判定系统中发生了死锁;
H,在对付死锁的策略中,解除死锁通常都是和检测死锁配套使用;
I,产生死锁的原因可归结为竞争资源和进程推进顺序不当;
J,在死锁的解决方法中,由于避免死锁采用静态分配资源策略,所以对资源的利用率不高.
如果某一进程获得除CPU外的所有所需运行资源,经调度,分配给它CPU,该进程将进入( ).
A,就绪状态B,运行状态
C,等待状态D,活动状态
如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进入( ).
A,自由状态B,停止状态
C,等待状态D,静止状态
进程从运行状态变为等待状态的原因是( ).
A,共享资源B,临界区
C,临界资源D,共享区
答案-1:C
临界区是指( ).
A,并发进程中用于实现进程互斥的程序段
B,并发程序中用于实现进程同步的程序段
C,并发程序中用于实现进程通信的程序段
D,并发程序中与共享变量有关的程序段
答案-6:D
进程是( ).
A,与程序等效的概念B,并发环境中程序的执行过程
C,一个系统软件D,存放在内存中的程序
在进程通信中,使用信箱方式交换信息的是( ).
A,低级通信B,高级通信C,共享存储器通信D,管道通信
答案:B(普通)
关于进程,下列叙述不正确的是( ).
A,进程包含了数据和运行其上的程序
B,同一个程序运行在不同的数据集合上时,构成了不同的进程
C,一个被创建了的进程,在它消亡之前,总是处于3种基本状态之一
(×)2,具有多道功能的操作系统一定是多用户操作系统.
(完整版)第三章进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。
A.管道B.管程C.通道D.DMA2.以下_B__不是操作系统的进程通信手段。
A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。
A.3B.2C.1D.04.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V 操作管理时信号量S的可能取值是_C__。
A.3,2,1,0,-1B.2,1,0,-1,-2C. 1,0,-1,-2,-3D.4,3,2,1,05.下面有关进程的描述,是正确的__A__。
A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。
A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B_ _。
A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。
A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。
A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。
A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。
北大操作系统第三章:操作系统习题课(三)

操作系统习题讲解进程的同步与互斥(三)赵俊峰P 、V 题的一般分析过程1问题的分析确定有哪些进程y1.问题的分析,确定有哪些进程;2y2.确定各个进程之间的同步互斥关系;y3.信号量的设计(初值以及用来实现哪些进程间的同步互斥、是否需要一般变量的辅助)辅助);y4、实现(避免出现不公平现象比如饥饿、避免出现死锁如P 操作的次序问题)。
同学们的问题1有几个进程进程的划分?y:有几个进程,进程的划分?y 2:if 判断语句与P/V 之间的区别?多余的判断?y 3:每个进程的行为划分?对于行为的控制?该谁去控制?触发行为的条件及被触发的行为?y 5:触发行为的条件及被触发的行为?y 6:需要全面考虑题目要求需要全面考虑题目要求y 7:什么时候需要计数?共享变量需要互斥使用y 8:共享变量需要互斥使用进程同步与互斥习题(四)请用信号量解决以下问题y 把学生和监考老师都看作进程, 学生有N 人, 考场门口每次只能进出个人教师1人. 考场门口每次只能进出一个人, 进考场原则是先来先进. 当N 个学生都进入考场后, 教师才能发卷子. 学生交卷后可以离开考场. 教师要等收上来全部卷子并封装卷子后才能离开考场.(1)(1)问共需设置几个进程?(2) 试用P 、V 操作解决上述问题中的同步和互斥关系.进程同步与互斥习题(四)共享资源:考场门口请用信号量解决以下问题y 把学生和监考老师都看作进程, 学生有N 人, 考场门口每次只能进出个人教师1人. 考场门口每次只能进出一个人, 进考场原则是先来先进.c 当N 个学生都进入考场后, 教师才能发卷子. 学生交卷后可以离开考场. d 教师要等收上来全部卷子并封离同步行为:c d 装卷子后才能离开考场.(1) ?()问共需设置几个进程(2) 试用P 、V 操作解决上述问题中的同步和互斥关系.信号量及其他变量的设置需设置以下的信号量S_Door = 1//能否进出门;S St d tR d 0学生是否到齐S_StudentReady = 0//学生是否到齐;S_Mutex1 = 1//互斥信号量;S M t 21互斥信号量S_Mutex2 = 1//互斥信号量;S_ExamBegin = 0//开始考试;S E O 0考试结束所有试卷S_ExamOver = 0//考试结束,所有试卷已交;int nStudentNum 0;int nStudentNum = 0;int nPaperNum = 0;student(){学生进程P(S_Door);进门;V(S Door);V(S_Door);P(S_Mutex1);// 增加学生的个数nStudentNum ++;if(nStudentNum N)V(S StudentReady);if(nStudentNum == N) V(S_StudentReady);V(S_Mutex1);P(S_ExamBegin);//等老师宣布考试开始考试;交卷;P(S Mutex2);P(S_Mutex2);//增加试卷的份数nPaperNum ++;if(nPaperNum == N) V(S_ExamOver);V(S Mutex2);V(S_Mutex2);P(S_Door);出门;V(S_Door);}Teacher()教师进程(){P(S_Door);进门进门;V(S_Door);P(S StudentReady);//P(S_StudentReady); 最后一个进来学生把老师唤醒;发卷子;for(i=1; i <= N; i++)(;;)V(S_ExamBegin);//开始考试;P(S_ExamOver);//等待考试结束;封装卷子P(S_Door);出门;V(S_Door);}进程同步与互斥习题(五)某商店有两种食品B A 和B, 最大数量各为m 个.该商店将A,B 两种食品搭配出售, 每次各取一个. 为避免食品变质, 遵循先到食品先出售的原则, 有两个食品公司分别不断地供应A,B 两)种食品(每次一个). 为保证正常销售, 当某种食品的数量比另一种的数量超过k(k<m)个时, 暂停对数量大的食品进货, 补充数量少的食品.◦(1)(1) 问共需设置几个进程?◦(2) 试用P ,V 操作解决上述问题中的同步和互斥关系.生产者-消费者中的消费者行为进程同步与互斥习题(五)某商店有两种食品B A 和B, 最大数量各为m 个. 该商店将A,B 两种食品搭配出售, 每次各取一个. 为避免食品变质, 遵循先到食品先出售的原则, 有两个食品公司分别不断地供应A,B 两)种食品(每次一个).为保证正常销售, 当某种食品的数量比另一种的数量超过k(k<m)个生产者-消费者中的生产者行为生产者之间时, 暂停对数量大的食品进货, 补充数量少的食品.的同步行为◦(1) 问共需设置几个进程?(2)PV ◦(2) 试用P ,V 操作解决上述问题中的同步和互斥关系.信号量及其他变量的设置设置以下的信号量 S_Mutex = 1 S Wait A = 0; S_Wait_A = 0; S_Num_A = 0; S BuffNum A = m; S_BuffNum_A = m; S_Wait_B = 0; S Num B 0; S_Num_B = 0 S_BuffNum_B = m; i t N int nNum_A = 0; A 0 int nNum_B = 0; //用于互斥访问的信号量 //A太多了,要等一等 太多了 要等一等B //食品A的空闲缓冲区个数; //B太多了,要等一等A //食品B的空闲缓冲区个数;Producer_A() A进程 { int b_TooMuch; while(1) { 生产产品; P(S_Mutex); if((nNum A nNum_B) == k) b_TooMuch = 1; if((nNum_A nNum B) == k) b TooMuch = 1; else b_TooMuch = 0; V(S_Mutex); if(b T M h) P(S W i A) //A太多了 if(b_TooMuch) P(S_Wait_A); 太多 P(S_BuffNum_A); 向商店提供一个 向商店提供 个A商品; V(S_Num_A); P(S_Mutex); nNum A ++; nNum_A ++; if(nNum_B - nNum_A == k-1) V(S_Wait_B); //可以进B了}}V(S Mutex); V(S_Mutex);Producer_B() B进程 { int b_TooMuch; while(1) { 生产产品; P(S_Mutex); if((nNum B nNum_A) == k) b_TooMuch = 1; if((nNum_B nNum A) == k) b TooMuch = 1; else b_TooMuch = 0; V(S_Mutex); if(b T M h) P(S W i B) //B太多了 if(b_TooMuch) P(S_Wait_B); 太多 P(S_BuffNum_B); 向商店提供一个 向商店提供 个B商品; V(S_Num_B); P(S_Mutex); nNum B ++; nNum_B ++; if(nNum_A - nNum_B == k-1) V(S_Wait_A); //可以进A了}}V(S Mutex); V(S_Mutex);Shop() Sh () { while(1) { P(S_Num_A); ( _Num_B); ); P(S 出售A、B食品各一个; V(S BuffNum A); V(S_BuffNum_A); V(S_BuffNum_B); } }Shop进程信号量和P、V原语的小结对信号量和P、V原语的使用可以归纳为三种情形: 第一,把信号量视为一个加锁标志位,其目的是为了 实现对某个唯一 实现对某个唯 唯一的共享数据 唯 的共享数据 共享数据的互斥访问 互斥访问,如数据库中 的某个记录,各个进程间的某个共享变量。
计算机操作系统03进程的同步与通信

用TS实现进程互斥: repeat while TS(lock) do skip; critical section lock:=false; remainder section until false;
第三章 进程的同步与通信
2. 利用Swap指令实现互斥 Swap指令: procedure (var a,b:Boolean) var temp:Boolean; begin temp:=a; a:=b; b:=temp end
计算机操作系统
第三章 进程的同步与通信
教学目的与要求: 1.掌握进程同步、进程通信、资源、信号量等
基本概念 2.了解解决进程同步问题的软件方法和硬件方
法 3.能用信号量和管程解决简单进程同步问题 4.了解OS/2操作系统的进程同步与通信机制
第三章 进程的同步与通信
重点与难点:
1. 同步、通信、资源、信号量等基本概念
第三章 进程的同步与通信
2 临界资源的定义 临界资源是指并发进程之间在某段时间内同
时提出访问请求的互斥型资源。 例:在A进程正在访问打印机的时候,B进程也提
出对打印机的访问请求,则打印机为临界资源。应 互斥使用临界资源。
三.临界区 1 临界区的定义 是指进程中访问临界资源的那段代码
第三章 进程的同步与通信
第三章 进程的同步与通信
算法3:与算法2相似,只是在flag[i]=ture时表示进 程P[i]要求进入临界区,若此时无其它进程有此要求, 则进程P[i]可进入临界区。对于进程Pi repeat flag[i]:=true; while flag[j] do no_op critical section flag[i]:=false; remainder section until false 该算法的缺点:违背了空闲让进和有限等待原则
操作系统课后习题答案 3 进程同步与通信

习题 3 进程同步与通信一、选择题题号1 2 3 4 5 6 7 8 9 10答案A D D C B C A B A A题号11 12答案D C二、综合题1、答:临界资源也称独占资源、互斥资源,它是指某段时间内只充许一个进程使用的资源。
比如打印机等硬件资源,以及只能互斥使用的变量、表格、队列等软件资源。
各个进程中访问临界资源的、必须互斥执行的程序代码段称为临界区,各进程中访问同一临界资源的程序代码段必须互斥执行。
为防止两个进程同时进入临界区,可采用软件解决方法或同步机构来协调它们。
但是,不论是软件算法还是同步机构都应遵循下述准则:①空闲让进。
②忙则等待。
③有限等待。
④让权等待。
2、答:忙等待意味着一个进程正在等待满足一个没有闲置处理器的严格循环的条件。
因为只有一个CPU 为多个进程服务,因此这种等待浪费了CPU 的时钟。
其他类型的等待:与忙等待需要占用处理器不同,另外一种等待则允许放弃处理器。
如进程阻塞自己并且等待在合适的时间被唤醒。
忙等可以采用更为有效的办法来避免。
例如:执行请求(类似于中断)机制以及PV 信号量机制,均可避免“忙等待”现象的发生。
3、答:在生产者—消费者问题中,Producer 进程中P(empty)和P(mutex)互换先后次序。
先执行P(mutex),假设成功,生产者进程获得对缓冲区的访问权,但如果此时缓冲池已满,没有空缓冲区可供其使用,后续的P(empty)原语没有通过,Producer 阻塞在信号量empty 上,而此时mutex 已被改为0,没有恢复成初值1。
切换到消费者进程后,Consumer 进程执行P(full)成功,但其执行P(mutex)时由于Producer 正在访问缓冲区,所以不成功,阻塞在信号量mutex 上。
生产者进程和消费者进程两者均无法继续执行,相互等待对方释放资源,会产生死锁。
在生产者和消费者进程中,V 操作的次序无关紧要,不会出现死锁现象。
第3章课后习题+进程同步与通信

售票大厅可容纳200
人购票,说明最多允 许200人共享售票大 厅,用信号量empty 表示,初值为200;
售票员一次只能为一 个购票者服务,说明 必须互斥地进行购票 ,用信号量mutex表 示,初值为1。
5. 进程之间的关系如图3-16所示,试用P、V操作描 述它们之间的同步。
A
S2 C
S1 B
S4 F D
答:同步关系;因为一个工序必须在前一个工序完成后才能开始, 他们必须相互协作才能使进程圆满完成。
(4)商品的入库出库。
答:同步关系;因为商品出库可以为入库提供空间。
(5)工人做工与农民种粮。
答:没有制约关系。
4. 设有一个售票大厅,可容纳200人购票。如果厅 内不足200人则允许进入,超过则在厅外等候; 售票员某时只能给一个购票者服务,购票者买完 票后就离开。试问:
(1)购票者之间是同步关系还是互斥关系?
答:互斥关系。只能有一个人获得售票员的服务。
(2)用P、V操作描述购票者的工作过程。
semaphore empty=200; semaphore mutex=1;
void buyer() { P(empty);
P(mutex); 买票; V(mutex); V(empty); }
wait(mutexB); if (countB==0) wait(mutex);
countB++; signal(mutexB);
过桥;
wait(mutexB); countB--;
if (countB==0) signal(mutex); signal(mutexB); }
S3
S5
E
S6 G
semaphore A,B,C,D,E,F,G=0,0,0,0,0,0,0; P1( ){S1;V(A);V(B);} P2( ){P(A);S2;V(C);} P3( ){P(B);S3;V(D);V(E);} P4( ){P(D);S4;V(F);} P5( ){P(E);S5;V(G);} P6( ){P(C);P(F);P(G);S6;}
操作系统原理与实践教程(第三版)第3章习题答案

第3章处理器管理(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互合作,并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。
失去封闭性是因为程序在并发执行时,多个程序需要共享系统中的多种资源。
所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。
失去可再现性是因为程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。
(2) 什么是进程?为什么要在操作系统中引入进程?解:进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位。
“进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。
(3) 试从并发性、独立性、动态性上比较程序和进程的不同。
解:●并发性是进程的重要特征,同时也是OS 的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
●独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。
●动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。
(4) 什么是PCB?它具有什么作用?为什么说PCB是进程存在的唯一标识?解:进程控制块(Process Control Block,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。
它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程.因为系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程同步练习
1. 有一阅览室, 共有 100 个座位。
读者进入时必须 先
在一张登记表上登记, 该表为每一座位列一表目, 包括座号和读者姓名。
读者离开时要消掉登记内容。
试用 P 、V 操作描述读者进程的同步结构。
var
mutex : semaphere;
full : semaphere;
table : array 0..n-1 procedure reader; 读者进程 begin
P(full);
P(mutex);
Register_name(table) ;
V(mutex);
Reading ;
P(mutex);
Delet_name(table);
V(mutex);
V(full)
end;
信号量,用于互斥 信号量,用于同步 of item; 登记表
begin
semi nitsal(mutex.v,1; full.v,100);
初始化
cobeg in
reader;
reader;
coe nd
end.
2.设公共汽车上有一位司机和一位售票员,它们的活动如下:
售票员:
动车辆
正常行车开车门
到站停车关车门
请分析司机与售票员之间的同步关系,如何用PV。