操作系统第三讲进程通信习题课
- 格式:ppt
- 大小:254.00 KB
- 文档页数:26
第三章一、问答题1、用户级线程与内核级线程的区别是什么?2、PCB中包含哪些信息?进程状态属于哪类信息?3、什么是操作系统的内核?4、简述时间片轮转调度算法的基本思想。
5、某系统采用时间片轮转调度算法的处理机调度算法,某个时刻根据用户要求创建了一个进程P,进程P在其存在过程中依次经历了:进程调度选中了进程P 占用处理机运行,进程P运行中提出资源申请,要求增加内存使用量,没有得到;进程等待一段时间后得到内存;进程调度再次选中了进程P占用处理机运行;进程P的时间片到;一段时间后,进程P再次占用处理机;有紧急进程Q进入,系统停止进程P的运行,将处理机分配进程Q;进程Q运行完,进程调度再次选中了进程P占用处理机运行;进程P运行完。
请分析进程P在其整个生命过程中的状态变化。
进程调度选中了进程P占用处理机运行(就绪→运行),进程P运行中提出资源申请,要求增加内存使用量,没有得到(运行→阻塞);进程等待一段时间后得到内存(阻塞→就绪);进程调度再次选中了进程P占用处理机运行(就绪→运行);进程P的时间片到(运行→就绪);一段时间后,进程P再次占用处理机(就绪→运行);有紧急进程Q进入,系统停止进程P的运行,将处理机分配进程Q(运行→就绪);进程Q运行完,进程调度再次选中了进程P占用处理机运行(就绪→运行);进程P运行完。
请分析进程P在其整个生命过程中的状态变化。
6、试比较进程与程序的异同。
7、引起创建进程的事件通常有哪些?简述进程的创建过程。
8、简述进程的阻塞过程。
911、简述操作系统的三级调度。
12、为什么要了解进程间的家族关系?因为父进程和子进程之间是隶属关系,子进程可以继承使用父进程的资源;如果父进程被撤销,还应撤销其所有的子孙进程。
13、什么是进程?。
14、试比较进程和线程的区别。
15、简述进程的基本状态,画出其状态转换图。
二、计算题1、若程序Pa,Pb和Pc单独执行时间分别Ta,Tb和Tc,Ta=1小时,Tb=1.5小时,Tc=2小时,其中处理机工作时间分别为Ta=10分钟,Tb=15分钟,Tc=35分钟。
进程部分的习题1.在公共汽车上,司机进程和售票员进程各司其职。
司机在正常行车中售票员售票,两者之间没有制约关系,可以任意并发。
但是在其他环节,司机和售票员进程之间存在着如下同步关系:1)司机停车后等待售票员关门后才能启动车辆。
2)售票员售完票后,等待司机到站停车,停车后才能打开车门。
var door,stop:semaphore:=0,0;beginparbegin司机进程:beginwhile(true) {wait (door);〃等待售票员发送关门信息启动车辆;正常行车;到站停车;signal (stop) ;//给售票员发送到站信息}end;售票员进程:beginwhile(true) {关车门;signal (door) ;//给司机发送关门信息售票;wait (stop) ;//等待司机发送到站信息开车门;上下乘客;}end;parend;end.2.某寺庙,有小和尚,老和尚若干。
有一水缸,由小和尚提水入缸供老和尚饮用。
水缸可容10桶水,水取自同一井中。
水井径窄,每次中能容下一个桶取水。
水桶总数为3个。
每人一次取缸水仅为1桶,且不可同时进行。
试用记录型信号量给出有关取水、入水的算法描述。
根据题意,定义信号量及其初值如下:(1)水桶为临界资源需互斥使用,定义信号量bucket,因有3个桶,故初值为3;(2)水井一次只能允许下一个桶取水,定义互斥信号量well,初值为1;(3)水缸一次只能允许一个人取水,定义互斥信号量jar,初始值为1;(4)empty和full用于小和尚和老和尚之间的•同步制约关系。
因为缸能存10桶水,所以empty初始值为10;开始时缸中没有水,full的初始值为0。
semaphore bucket二3,jar=l,full二0,empty二10,well二1;young_monk() { /*小和尚入水算法*/wh订e(l) {wait(empty);wait (bucket);wait (well);从水井中打水;signal(well);wait (jar);倒入水缸;signal (jar);signal (bucket);signal (full);)}old_monk() { /*老和尚取水算法*/wh i1e (1) {wait(full);wait (bucket);wait (jar);从缸中取水;signal (jar);signal (bucket);signal (empty);从桶中倒入饮用;}}3.设有3个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者), 共享一个由n个缓冲区组成的缓冲池;B与C也构成一对生产者与消费者(此时B为生产者, C为消费者),共享另一个由m个缓冲区组成的缓冲池。
第三章一.选择题(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__。
第3章进程调度习题【例】在三种基本类型的操作系统中,都设置了进程调度,在批处理系统中还应设置( )调度【答案】AA 作业B 进程C 中级D 多处理机【例】下列算法中,()只能采用非抢占调度方式【解答】CA 高优先权法B 时间片轮转法C FCFS调度算法D 短作业优先算法【例】最适合分时系统的进程调度算法是()【解答】DA FCFSB SSJFC 优先数法D 轮转法【例】进程调度是从()选择一个进程投入运行。
【解答】AA 就绪队列B 等待队列C 作业后备队列D 提交队列【例】进程调度主要负责()【解答】BA 选作业进入内存B 选一进程占有CPUC 建立一进程D 撤销一进程【例】“可抢占”和“不可抢占”的优先级调度算法相比()【解答】BA 前者开销小B 前者开销大C 两者开销大致相同D 两者开销不能相比【解析】因为“可抢占”优先级调度时钟保证在处理机上运行的是优先级最高的进程,这样,当处理机正在运行某个进程时,很可能会被其他优先级更高的进程抢占引起处理机调度,和不可抢占算法相比,前者的调度次数会更频繁,而每调度一次都会引起保护现场,恢复现场的工作,所以可抢占的优先级调度算法开销更大。
【例】()优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变A 先来先服务B 静态C 动态D 短作业【答案】B【例】若进程P一旦被唤醒就能够投入运行,系统可能为( )A 分时系统,进程P的优先级最高B 抢占调度方式,就绪队列上的所有进程的优先级皆比P的低C 就绪队列为空队列D 抢占调度方式,P的优先级高于当前运行的进程【分析】1 在分析系统中,进程调度是按照轮转方式进行的。
系统并不登记进程的优先级2 在抢占调度方式中,P的优先级高于就绪队列上的所有进程,但不一定高于当前的运行进程,所以也不一定能立即运行3 无论哪种调度方式,若就绪队列为空队列,P被唤醒并插入后都会成为该队列的唯一进程,但这并不是说P可以立即获得处理机。
习题 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 操作的次序无关紧要,不会出现死锁现象。
操作系统第三章进程通信1. 1临界区是指( )。
[单选题] *A、并发进程中用于实现进程互斥的程序段B、并发进程中用于实现进程同步的程序段C、并发进程中用户实现进程通信的程序段D、并发进程中与共享变量有关的程序段(正确答案)2. 2相关临界区是指( )。
[单选题] *A、一个独占资源B、并发进程中与共享变量有关的程序段C、一个共享资源D、并发进程中涉及相同变量的那些程序段(正确答案)3. 3管理若干进程共享某一资源的相关临界区应满足三个要求,其中( )不考虑。
[单选题] *A、一个进程可以抢占己分配给另一进程的资源(正确答案)B、任何进程不应该无限地逗留在它的临界区中C、一次最多让一个进程在临界区执行D、不能强迫一个进程无限地等待进入它的临界区4. 4( )是只能由P和V操作所改变的整型变量。
[单选题] *A、共享变量B、锁C、整型信号量(正确答案)D、记录型信号量5. 5对于整型信号量,在执行一次P操作时,信号量的值应( )。
[单选题] *A、不变B、加1C、减1(正确答案)D、减指定数值6. 6在执行v操作时,当信号量的值( )时,应释放一个等待该信号量的进程。
[单选题] *A、>0B、<0C、>=0D、<=0(正确答案)7. 7 [单选题] *Pv操作必须在屏蔽中断下执行,这种不可被中断的过程称为( )。
A、初始化程序B、原语(正确答案)C、子程序D、控制模块8. 8进程间的互斥与同步分别表示了各进程间的( )。
[单选题] *A、竞争与协作(正确答案)B、相互独立与相互制约C、不同状态D、动态性与并发性9. 9在进程通信中,( )常用信件交换信息。
[单选题] *A、低级通信B、高级通信(正确答案)C、消息通信D、管道通信10. 在间接通信时,用send(N,M)原语发送信件,其中N表示( )。
[单选题] *A发送信件的进程名B接收信件的进程名C信箱名(正确答案)D信件内容11. 11下列对线程的描述中,( )是错误的。
进程管理(处理机调度与死锁)习题课1 处理机调度温馨提示:本考点考查处理机调度的基本概念、准则和进程(作业)调度算法。
请同学们掌握常见的进程调度算法的特点,并能够利用这些进程调度算法求作业的执行情况、周转时间和平均周转时间。
1.下列进程调度算法中,综合考虑进程等待时间和执行时间的是()。
A.时间片轮转调度算法B.短进程优先调度算法C.先来先服务调度算法D.高响应比优先调度算法【2009年统考——第24题】【考查内容】高响应比优先调度算法的特点。
【解析】高响应比优先算法的响应比=(等待时间+运行时间)/运行时间=1+等待时间/运行时间。
该算法综合考虑了进程的等待时间和执行时间。
故而,本题选择D答案。
【参考答案】D2.下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是()。
A.先来先服务B.高响应比优先C.时间片轮转D.非抢占式短任务优先【2011年统考——第23题】【考查内容】高响应比优先算法的特点。
【解析】先来先服务有利于短作业,不利于长作业,但是不是短作业优先。
时间片轮转算法不是短作业优先,而是每一个就绪队列的进程依次轮流执行一个时间片。
对于非抢占式短作业优先算法,有利于短作业,但不利于长作业,可能会产生“饥饿”现象。
高响应比优先是先来先服务算法和短作业优先算法的一种综合平衡。
该算法满足短作业优先,长作业在等待时间长了之后,优先级会增大,最终会获得被调度的机会,不会发生“饥饿”现象。
故而,本题选择B答案。
【参考答案】B3.操作系统中调度算法是核心算法之一,下列关于调度算法的论述中正确的是()。
A.先来先服务调度算法对即对长作业有利也对段作业有利B.时间片轮转调度算法只对长作业有利C.实时调度算法也要考虑作业的长短问题D.高相应比者优先调度算法既有利于短作业又兼顾长作业【2014年——南京航空航天大学】【考查内容】进程(作业)调度算法。
【解析】本题是一个总结题,我们总结如下:(1).短作业优先算法有利于短作业而不利于长作业。
第3章进程的同步与通信习题与解答3.2 例题解析例3.2.1 多道程序系统程序的执行失去了封闭性和再现性,因此多道程序的执行不需要这些特性,这种说法是否正确?解这种说法不正确。
可以想象,如果一个程序在多道程序系统中,在相同的输入的情况下,多次执行所得结果是不同的,有谁还敢使用这个程序?因此,多道程序的执行也需要封闭性和再现性,只不过单道程序系统的封闭性和再现性是先天固有的,多道程序系统的程序执行要想获得封闭性和再现性,需通过程序员的精心设计才能得到。
所使用的方法就是同步和互斥的方法。
例3.2.2 多个进程对信号量S进行了5次 P操作,2次V操作后,现在信号量的值是 -3,与信号量S相关的处于阻塞状态的进程有几个?信号量的初值是多少?解(1) 因为S的当前值是-3,因此因为S处于阻塞状态的进程有3个;(2) 因为每进行一次P(S)操作,S的值都减1,每执行1次V操作S的值加1,故信号量的初值为-3+5-2=0;例3.2.3 如下锁的实现方法存在什么缺点?如何改进?LOCK(X) UNLOCK(X){ {do while X=1 ; X=0;X=1} }解存在的缺点是:当锁是关闭时,采用的是循环等待的方法,这样的等待还是要占用处理机的时间,应该采用阻塞等待的方法。
改进的锁实现如下:LOCK(X) UNLOCK(X){ {if X.value=1 if not empty(X.L) { insert( *, X.L); { P=remove(X.L);Block (*) Wakeup(P) } }else X.Value=1 else X.Value=0} }这里X.value是锁的值,X.L是存放由于锁X而阻塞的进程的队列。
insert( *, X.L)将当前进程的进程号插入到X.L,remove(X.L)是从X.L中移出一个进程号。
例3.2.4 使用多个进程计算Y=F1(X)+F2 (X).解(1) 确定并发和顺序操作在这个问题中,F1(X)和F2 (X)的计算是可以并行处理的,因此F1(X)和F2 (X)可以分别出现在两个进程中。
进程部分的习题1. 在公共汽车上,司机进程和售票员进程各司其职。
司机在正常行车中售票员售票,两者之间没有制约关系,可以任意并发。
但是在其他环节,司机和售票员进程之间存在着如下同步关系:1)司机停车后等待售票员关门后才能启动车辆。
2)售票员售完票后,等待司机到站停车,停车后才能打开车门。
var door,stop:semaphore:=0,0beginparbegin司机进程:beginwhile(true){wait(door); //等待售票员发送关门信息启动车辆;正常行车;到站停车;signal(stop);//给售票员发送到站信息}end;售票员进程:beginwhile(true){关车门;signal(door); //给司机发送关门信息售票;wait(stop);//等待司机发送到站信息开车门;上下乘客;}endparendend.2.某寺庙,有小和尚,老和尚若干。
有一水缸,由小和尚提水入缸供老和尚饮用。
水缸可容10桶水,水取自同一井中。
水井径窄,每次中能容下一个桶取水。
水桶总数为3个。
每人一次取缸水仅为1桶,且不可同时进行。
试用记录型信号量给出有关取水、入水的算法描述。
根据题意,定义信号量及其初值如下:(1)水桶为临界资源需互斥使用,定义信号量bucket,因有3个桶,故初值为3;(2)水井一次只能允许下一个桶取水,定义互斥信号量well,初值为1;(3)水缸一次只能允许一个人取水,定义互斥信号量jar,初始值为1;(4)empty和full用于小和尚和老和尚之间的同步制约关系。
因为缸能存10桶水,所以empty初始值为10;开始时缸中没有水,full的初始值为0。
semaphore bucket=3,jar=1,full=0,empty=10,well=1; young_monk(){ /*小和尚入水算法*/while(1){wait(empty);wait (bucket);wait (well);从水井中打水;signal(well);wait (jar);倒入水缸;signal (jar);signal (bucket);signal (full);}}old_monk(){ /*老和尚取水算法*/while(1){wait(full);wait (bucket);wait (jar);从缸中取水;signal (jar);signal (bucket);signal (empty);从桶中倒入饮用;}}3.设有3个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲区组成的缓冲池;B与C也构成一对生产者与消费者(此时B为生产者,C为消费者),共享另一个由m个缓冲区组成的缓冲池。
现代操作系统课后答案【篇一:现代操作系统习题答案】>(汤小丹编电子工业出版社2008.4)第1章操作系统引论习题及答案1.11 os有哪几大特征?其最基本的特征是什么?答:并发、共享、虚拟和异步四个基本特征,其中最基本的特征是并发和共享。
1.15 处理机管理有哪些主要功能?其主要任务是什么?答案略,见p17。
1.22 (1)微内核操作系统具有哪些优点?它为何能有这些优点?(2)现代操作系统较之传统操作系统又增加了哪些功能和特征?第2章进程的描述与控制习题及答案略第3章进程的同步与通信习题及答案3.9 在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?答:资源信号量full表示缓冲区中被占用存储单元的数目,其初值为0,资源信号量empty表示缓冲区中空存储单元的数目,其初值为n,signal(full)在生产者进程中,如果在生产者进程中缺少了signal(full),致使消费者进程一直阻塞等待而无法消费由生产者进程生产的数据;signal(empty)在消费者进程中,如果在消费者进程中缺少了signal(empty),致使生产者进程一直阻塞等待而无法将生产的数据放入缓冲区。
3.13 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
答:参考答案一:至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两支筷子,从而使更多的哲学家能够进餐。
采用此方案的算法如下:var chopstick:array[0,…,4] of semaphore :=1;room:semphore:=4;repeatwait(room);wait(chopstick[i]);wait(chopstick[(i+1) mod 5]);…eat;…signal(chopstick[i]);signal(chopstick[(i+1) mod 5);signal(room);…think;until false;第4章处理机调度与死锁习题及答案4.1 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?答:略,见p73。
进程同步与通信练习题(一)单项选择题1.临界区是指(D)。
A.并发进程中用于实现进程互斥的程序段 B.并发进程中用于实现进程同步的程序段 C.并发进程中用户实现进程通信的程序段 D.并发进程中与共享变量有关的程序段2.相关临界区是指(D )。
A.一个独占资源 B.并发进程中与共享变量有关的程序段 c.一个共享资源 D.并发进程中涉及相同变量的那些程序段3.管理若干进程共享某一资源的相关临界区应满足三个要求,其中(A)不考虑。
A一个进程可以抢占己分配给另一进程的资源 B.任何进程不应该无限地逗留在它的临界区中 c.一次最多让一个进程在临界区执行 D.不能强迫一个进程无限地等待进入它的临界区4、(C)是只能由P和v操作所改变的整型变量。
A共享变量 B.锁 c整型信号量 D.记录型信号量5.对于整型信号量,在执行一次P操作时,信号量的值应(C)。
A.不变 B.加1 C减1 D.减指定数值6.在执行v操作时,当信号量的值(D )时,应释放一个等待该信号量的进程。
A>0 B.<0 c.>=0 D.<=0 这道题目问的是:使用v操作之前的情况。
即,若S信号量的值大于0则释放一个等待该信号量的进程,所以S的值小于等于0的时候才需要通过V操作实现释放一个等待该信号量的进程7.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为(B)。
A初始化程序 B.原语c.子程序 D控制模块8.进程间的互斥与同步分别表示了各进程间的(A)。
A.竞争(互斥时竞争资源)与协作(同步时共同完成一个任务) B.相互独立与相互制约 c.不同状态 D.动态性与并发性9并发进程在访问共享资源时的基本关系为(B)。
A.相互独立与有交往的 B.互斥与同步 c 并行执行与资源共享 D信息传递与信息缓冲10.在进程通信中,(B)常用信件(信件在信箱中,信箱属于高级通信)交换信息。
A.低级通信 B.高级通信 c.消息通信 D.管道通信11.在间接通信时,用send(N,M)原语发送信件,其中N表示(C)。