第3章 进程同步与通信 练习题

合集下载

操作系统自测题三(进程同步)

操作系统自测题三(进程同步)

操作系统自测题三一选择题1.以下________操作系统中的技术是用来解决进程同步的。

A.管道B.管程C.通道D.DMA2.以下________不是操作系统的进程通信手段。

A.管道B.原语C.套接字D.文件映射3.如果有三个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为________。

A.3B.2C.1D.04.下面有关进程的描述,________是正确的。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作5.信号可以用来实现进程之间的________A.调度B.同步与互斥C.同步D.互斥6.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示________。

A.没有进程进入临界区B.有1个进程进入了临界区C.有2个进程进入了临界区D.有1个进程进入了临界区并且另一个进程正等待进入7.信箱通信是一种________方式。

A.直接通信B.间接通信C.低级通信D.信号量8.以下关于临界区的说法,________是正确的。

A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C.信号量的初值非负,在其上只能做P、V操作D.两个互斥进程在临界区内,对共享变量的操作是相同的9.并发是指________。

A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程10.临界区是________。

A.一个缓冲区B.一段数据区C.一段程序D.栈11.进程在处理机上执行,它们的关系是________。

A.进程之间无关,系统是封闭的B.进程之间相互依赖、相互制约C.进程之间可能有关,也可能无关D.以上都不对12.在单处理机中,如果系统中有N个进程,则就绪队列中的进程个数最多的是________。

进程同步练习(答案)

进程同步练习(答案)

一、选择题1、我们把在一段时间内,只允许一个进程访问的资源,称为临界资源,因此,我们可以得出下列论述,请选择一条正确的论述。

A 、对临界资源是不能实现资源共享的B 、对临界资源,应采取互斥访问方式,来实现共享C 、为临界资源配上相应的设备控制块后,便能被共享D 、对临界资源应采取同时访问方式,来实现共享2、在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。

所谓临界区是指_______。

A 、一个缓冲区B 、一段数据区C 、同步机制D 、一段程序3、在操作系统中,信号量表示资源实体,信号量表示资源实体,是一个与队列有关的是一个与队列有关的_________变量,其值仅能用P 、V 操作来改变。

A 、实体B 、整形C 、布尔型D 、记录型4、用P 、V 操作可以解决_______互斥问题。

A 、某些B 、一个C 、一切D 、大多数5、对于记录型信号量,在执行一次P 操作时,信号量值应当_____A__A_(3)___;当其值为______B_B_(4)__时,进程应阻塞。

在执行V 操作时,信号量的值应当______C C (2)___;当其值为____D_D_(3)__时,应唤醒阻塞队列中的进程。

A 、C :(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值B 、D :(1)大于0;(2)大于等于0;(3)小于等于0;(4)小于0 6、对于两个并发进程,其互斥信号量为mutex ;若mutex=0,则表明_______。

A 、没有进程进入临界区B 、有一个进程进入临界区但没进程处于阻塞状态C 、一个进程进入临界区而另一个进程正处于等待进入临界区状态D 、有两个进程进入临界区7、设有5个进程共享一个互斥段,如果允许有3个进程同时进入互斥段,则所采用的互斥信号量的初值应是__________。

A 、5 B 、3 C 、1 D 、0 8、N 个进程共享某一临界资源,则互斥信号量的取值范围为_________。

(完整版)第三章进程同步与通信作业习题与答案

(完整版)第三章进程同步与通信作业习题与答案

第三章一.选择题(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章进程同步与通信练习题

第3章进程同步与通信练习题

第3章进程同步与通信练习题(一)单项选择题1.临界区是指( )。

A.并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段2.相关临界区是指( )。

A.一个独占资源B.并发进程中与共享变量有关的程序段c.一个共享资源D.并发进程中涉及相同变量的那些程序段3.管理若干进程共享某一资源的相关临界区应满足三个要求,其中( )不考虑。

A一个进程可以抢占己分配给另一进程的资源B.任何进程不应该无限地逗留在它的临界区中c.一次最多让一个进程在临界区执行D.不能强迫一个进程无限地等待进入它的临界区4、( )是只能由P和v操作所改变的整型变量。

A共享变量B.锁c整型信号量D.记录型信号量5.对于整型信号量,在执行一次P操作时,信号量的值应( )。

A.不变B.加1 C减1 D.减指定数值6.在执行v操作时,当信号量的值( )时,应释放一个等待该信号量的进程。

A>0 B.<0 c.>=0 D.<=07.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。

A初始化程序B.原语c.子程序D控制模块8.进程间的互斥与同步分别表示了各进程间的( )。

A.竞争与协作B.相互独立与相互制约c.不同状态D.动态性与并发性9并发进程在访问共享资源时的基本关系为( )。

A.相互独立与有交往的B.互斥与同步c并行执行与资源共享D信息传递与信息缓冲10.在进程通信中,( )常用信件交换信息。

A.低级通信B.高级通信c.消息通信D.管道通信11.在间接通信时,用send(N,M)原语发送信件,其中N表示( )。

A.发送信件的进程名B.接收信件的进程名C信箱名D.信件内容12.下列对线程的描述中,( )是错误的。

A不同的线程可执行相同的程序B.线程是资源分配单位c.线程是调度和执行单位D.同一进程中的线程可共享该进程的主存空间13.实现进程互斥时,用( )对应,对同一个信号量调用Pv操作实现互斥。

进程同步与通信作业习题与答案

进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。

A.管道B.管程C.通道2.以下_B__不是操作系统的进程通信手段。

A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。

4.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_C__。

,2,1,0,-1 ,1,0,-1,-2 C. 1,0,-1,-2,-3 ,3,2,1,05.下面有关进程的描述,是正确的__A__。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误、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__。

A.进程之间无关,系统是封闭的B.进程之间相互依赖相互制约C.进程之间可能有关,也可能无关D.以上都不对13. 在消息缓冲通信中,消息队列是一种__A__资源。

第3章 进程同步与通信2

第3章 进程同步与通信2

进程写管道
进程向管道写数据时,可能有以下两种情况:
管道中有足够的空间存放要写的数据,此时每写 一数据块后核心便自动增加地址项的大小.写操 作完成后,核心修改索引节点中的写指针,并唤 醒所有因该管道空而睡眠等待的读进程. 管道中无足够的空间存放要写入的数据,此时核 心对该索引节点作标记后让写进程睡眠,等待数 据从管道中排出.上述情况的一个例外是,当进 程写的数据量大于管道的容量时,核心将尽可能 多的数据写到管道中,然后使进程睡眠,直到获 得更多的空间.
pipe文件的建立 文件的建立
pipe系统调用建立一个无名管道.其语法格式如下:
int pipe(fdes); int fdes[2];
核心创建一个管道时须完成下述工作:
分配磁盘和内存索引节点. 为读进程和写进程分配文件表项. 分配用户文件描述符.在读进程和写进程的用户文件描述 符表中,分别分配一个表项,并将文件描述符fdes[0]和 fdes[1]分别返回给读进程和写进程.
设置信号的处理方式
系统调用signal用于设置信号的处理方式.其 语法格式如下: void (* func)( ) signal(sig,func) 其中,func为收到软中断信号sig后进程希望 调用函数的地址. 19类信号如表所示.
func的取值情况
func的取值可以分成三种情况:
func=1时,进程对信号sig不予理睬. func=0时,即缺省处理,对大多数软中断信号的 缺省处理是终止进程. func为其他整数值时,它的值是指向信号处理程 序的指针.
管道通信示意图1
初始时,其长度为4,系统将管道看成一个循环 队列.按先进先出的方式读写.
A out B C D in
写入字符E后,管道长度为5

操作系统考研资料:第三章进程管理习题(1)

操作系统考研资料:第三章进程管理习题(1)

操作系统考研资料:第三章进程管理习题(1)第三章进程管理习题一. 单选题1. UNIX操作系统的进程控制块中常驻内存的是()。

A.proc结构B.proc结构和核心栈C.ppda区D.proc结构和user结构2. 当()时,进程从执行状态转变为就绪状态。

A.进程被调度程序选中B.时间片到C.等待某一事件D.等待的事件发生3.在进程状态转换时,下列()转换是不可能发生的。

A.就绪态→运行态B.运行态→就绪态C.运行态→阻塞态D.阻塞态→运行态4.下列各项工作步骤中,()不是创建进程所必需的步骤。

A.建立一个PCBB.作业调度程序为进程分配CPUC.为进程分配内存等资源D. 将PCB链入进程就绪队列5.下列关于进程的叙述中,正确的是()。

A.进程通过进程调度程序而获得CPU。

B.优先级是进行进程调度的重要依据,一旦确定不能改变。

C.在单CPU系统中,任一时刻都有1个进程处于运行状态。

1D.进程申请CPU得不到满足时,其状态变为等待状态。

6.从资源管理的角度看,进程调度属于()。

A.I/O管理B.文件管理C.处理机管理D.存储器管理7.下列有可能导致一进程从运行变为就绪的事件是()。

A.一次I/O操作结束B.运行进程需作I/O操作C.运行进程结束D.出现了比现运行进程优先权更高的进程8.一个进程释放一种资源将有可能导致一个或几个进程()。

A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪9.一次I/O操作的结束,有可能导致()。

A.一个进程由睡眠变就绪B.几个进程由睡眠变就绪C.一个进程由睡眠变运行D.几个进程由睡眠变运行10.当一个进程从CPU上退下来时,它的状态应变为()。

A.静止就绪B. 活动就绪C. 静止睡眠D. 活动睡眠11.为使进程由活动就绪变为静止就绪,应利用()原语?A.SUSPENDB. ACTIVEC. BLOCKD. WAKEUP12.在下面的叙述中,不正确的是()。

操作系统课后习题答案 3 进程同步与通信

操作系统课后习题答案 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 操作的次序无关紧要,不会出现死锁现象。

进程的同步与通信

进程的同步与通信

进程的同步与通信进程的同步与通信考试例题单项选择题1、当一个进程独占处理器顺序执行时,具有两个特性,即()。

A、封闭性和可再现性B、独立性和可再现性C、开放性和可再现性D、顺序性和独立性2、对于两个并发进程,设互斥信号量为A,若A=0,则()。

A、表示有一个进程进入临界区,另一个进程等待进入B、表示有两个进程进入临界区C、表示有一个进程进入临界区D、表示没有进程进入临界区3、造成进程结果不正确的因素与进程占用处理器的时间、执行的速度及外界的影响有关。

而这些因素都与时间有关,所以称为()。

A、时间因素B、与时间有关的错误C、时间错误D、时间问题4、P、V操作是对()进行操作。

A、信号量B、执行速度C、执行时间D、执行结果5、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的()。

A、调度B、执行C、同步D、互斥6、信号量被定义为一个整型变量,其初始值是()。

A、0B、无任何限制C、负整数D、非负数填空题1、并发进程间的关系是可以是()的,也可以是()的。

2、我们把并发进程中与共享变量有关的程序段称为()。

3、在用P、V操作实现同步时,一定要根据具体的问题来定义()和调用()。

4、每执行一次P原语操作,信号量S的数值减1,如果S>=0,该进程();若S<0,则()该进程,并把它插入该()对应的()队列中,重新进行进程调度。

简答题1、试写出P(S)操作的主要步骤。

2、试写出V(S)操作的主要步骤。

3、用P,V操作实现并发进程的互斥和同步,要注意什么问题?4、解释进程的顺序性和并发性。

综合应用题1、假定有三个进程R、W1、W2共享一个缓冲器B,而B中每次只能存放一个数。

当缓冲器中无数时,进程R可将M输入设备上读入的数存放到缓冲器B中;若存放到缓冲器中的是奇数,则允许进程W1将其取出打印;若存放到缓冲器中的是偶数,则允许进程W2将其取出打印。

操作系统原理-第三章进程管理习题(1)

操作系统原理-第三章进程管理习题(1)

第三章进程管理习题一. 单选题1. UNIX操作系统的进程控制块中常驻内存的是()。

A.proc结构B.proc结构和核心栈C.ppda区D.proc结构和user结构2. 当()时,进程从执行状态转变为就绪状态。

A.进程被调度程序选中B.时间片到C.等待某一事件D.等待的事件发生3.在进程状态转换时,下列()转换是不可能发生的。

A.就绪态→运行态B.运行态→就绪态C.运行态→阻塞态D.阻塞态→运行态4.下列各项工作步骤中,()不是创建进程所必需的步骤。

A.建立一个PCBB.作业调度程序为进程分配CPUC.为进程分配内存等资源D. 将PCB链入进程就绪队列5.下列关于进程的叙述中,正确的是()。

A.进程通过进程调度程序而获得CPU。

B.优先级是进行进程调度的重要依据,一旦确定不能改变。

C.在单CPU系统中,任一时刻都有1个进程处于运行状态。

D.进程申请CPU得不到满足时,其状态变为等待状态。

6.从资源管理的角度看,进程调度属于()。

A.I/O管理B.文件管理C.处理机管理D.存储器管理7.下列有可能导致一进程从运行变为就绪的事件是()。

A.一次I/O操作结束B.运行进程需作I/O操作C.运行进程结束D.出现了比现运行进程优先权更高的进程8.一个进程释放一种资源将有可能导致一个或几个进程()。

A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪9.一次I/O操作的结束,有可能导致()。

A.一个进程由睡眠变就绪B.几个进程由睡眠变就绪C.一个进程由睡眠变运行D.几个进程由睡眠变运行10.当一个进程从CPU上退下来时,它的状态应变为()。

A.静止就绪B. 活动就绪C. 静止睡眠D. 活动睡眠11.为使进程由活动就绪变为静止就绪,应利用()原语?** B. ACTIVE C. BLOCK D. WAKEUP12.在下面的叙述中,不正确的是()。

A.一个进程可创建一个或多个线程B.一个线程可创建一个或多个线程C.一个线程可创建一个或多个进程D.一个进程可创建一个或多个进程13. 若系统中只有用户级线程,则处理机调度单位是()。

第3章课后习题+进程同步与通信

第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章 进程同步与通信

第3章进程同步与通信6.有三个并发执行的进程A、B和C,A负责输入信息到缓冲区,B负责加工输入到缓冲区中的数据,C负责将加工后的数据打印输出。

在下列情况下:(1)单缓冲区。

(2)由N个缓冲区组成的缓冲池。

分别写出三个进程的并发关系。

答:(1)semaphore S1=1,S2=S3=0A: B: C:while(1) { while(1) { while(1) {P(S1); P(S2); P(S3);输入信息到缓冲区; 加工缓冲区中数据; 输出缓冲区中数据;V(S2); V(S3); V(S1);} } }(2)semaphore S1=N;semaphore S2=0,S3=0;semaphore mutex=1;int i.,j,k;ITEM buffer[N];ITEM data_i,data_o;A: B: C:while(1) { while(1) { while(1) {P(S1); P(S2); P(S3);P(mutex) ;P(mutex) ;P(mutex);输入数据data_i; data_o= buffer[k];buffer[i]=data_i; 处理中buffer[j]的数据k=(k+1)%N;i=(i+1)%N; j=(j+1)%N; 输出data_o;V(mutex); V(mutex); V(mutex) ;V(S2); V(S3); V(S1);} } }7.三个并发执行的进程A、B和C,A与B共享缓冲区M,B与C共享缓冲区N,如图所示:假如缓冲区的大小只能存放一个单位的数据,试写出A、B、C三个进程的同步关系。

答:semaphore S1=M;S3=N;semaphore S2=0,S4=0;semaphore mutex=1;int i.,j,k,l;ITEM buffer1[M];ITEM buffer2[N];ITEM data_i,data_o;A: B: C:while (1) { while (1) { while (1) {P(S1); P(S2); P(S4);P(mutex); P(mutex) ;P(mutex);输入数据data_i; data_o=buffer1[j]; data_o= buffer[l];buffer1[i]=data-i; j=(j+1)%M; l=(l+1)%N;i=(i+1)%M; V(mutex); 输出data_o;V(mutex); V(S1); V(mutex);V(S2); P(S3) V(S3);} P(mutex); }buffer2[k]=data_o;k=(k+1)%N;V(mutex);V(S4)}9.设有两个优先级相同的进程P1,P2如下,令信号量S1、S2的初值为0,已知z=2,试问P1、P2并发运行结束后x=?y=?z=?进程P1 进程P2y: =1;x:=1;y:=y+2 ;x:=x+1;V(S1);P(S1);z:=y+1;x:=x+y;P(S2);V(S2);y:=z+y;z:=x+z;解答:由题意可知执行顺序存在如下5种情况:z:=y+1----→ x:=x+y----→ y:=z+y----→ z:=x+z ……z:=y+1----→ x:=x+y----→ z:=x+z----→ y:=z+y ……x:=x+y----→ z:=y+1 ----→ z:=x+z----→ y:=z+y ……x:=x+y----→ z:=y+1 ----→ y:=z+y----→ z:=x+z ……x:=x+y----→ z:=x+z ----→ z:=y+1----→ y:=z+y ……和的结果为:x=5,y=7,z=9;和结果为:X=5,y=12,z=9;的结果为:x=5,y=7,z=4;*10.有一个隧道,由于很窄,只能容纳一个方向的车辆通过。

操作系统第3章(进程的同步与通信习题与解答)

操作系统第3章(进程的同步与通信习题与解答)

第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)可以分别出现在两个进程中。

最新3进程同步与通信习题

最新3进程同步与通信习题

解:设三个信号量, S:表示盘子是否为空,初值为1 So:表示盘中是否有桔子,初值为0 Sa:表示盘中是否有苹果,初值为0;
int s=1; int sa=0; int so=0; main() { Cobegin
father( ); son( ); daughter( ); Coend }
father( ) { While (1) { P(S); 将水果放入盘中; If (放入的是桔子) v(So); Else v(Sa); }}
son( ) { While (1) { P(So); 从盘中取出桔子; v(S); 吃桔子; } }
daughter( ) { While (1) { P(Sa); 从盘中取出苹果; v(S); 吃苹果; } }
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
解:设信号量S1:是否允许司机启动汽车,初值为0 信号量S2:是否允许售票员开门,初值为0
int s1=0; int s2=0; main( ) { Cobegin
Driver(); Busman(); Coend }
Driver( ) { While (1) {
P(s1); 启动汽车 正常行车; 到站停车; V(S2); }}
3进程同步与通信习题
PA( ) { While (1) { 从磁盘读一个记录;
P(empty1); 将记录存入缓冲区1; V(full1);}} PB( ) { While (1) { P(full1); 从缓冲区1中取出记录; v(empty1); P(empty2); 将记录存入缓冲区2; V(full2);}}
Busman( )
{ While (1) { 关车门; V(S1); 售票 P(S2); 开车门; 上下乘 客;}}

进程同步与通信课堂练习

进程同步与通信课堂练习

生产者—消费者问题演变。 情况1 一个buffer,一个生产者,一个消费者, 生产者只生产一个东西,消费者只进行一 次消费,即:生产者只进行一次putdata操 作,消费者只进行一次getdata操作。
解 这是一个同步问题,生产者和消费者分别是2个并发的进程。 (1)操作规则 如果buffer为空,则消费者只能等待。 (2)操作流程 <生产者> { putdata; 设置Buffer有数据标志 V(S) } <消费者> { 判断buffer是否有产品,没有则等待 设置1个信号量full,full表示buffer是否有数据,初值为0。 (4)P、V操作实现 var full:semaphore:=0; buffer: array [1] of item; begin parbegin producer: begin putdata; V(full); end consumer: begin P(full); getdata; end parend end
解法1 Main ( ) Public y, y1, y2,. P1, P2 Semaphore S1,S2 { S1=0; S2=0; P1=Creat(N-F1, F1,x,……); P2=Creat(N-F2, F2, x,……); P(S1); P(S2); y=y1+y2; } Procedure F1(x) { y1= 计算1; V(S1); } Procedure F2(x) { y2=计算2; V(S2) }
解法2 Main ( ) Public y, y1, y2,. P1,x Semaphore S1 { input(x); S1=0; P1=Creat(N-F1, F1,x,……); Y2=F2(x); P(S1); y=y1+y2; }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章进程同步与通信练习题
(一)单项选择题
1.临界区是指( )。

A.并发进程中用于实现进程互斥的程序段 B.并发进程中用于实现进程同步的程序段
C.并发进程中用户实现进程通信的程序段 D.并发进程中与共享变量有关的程序段
2.相关临界区是指( )。

A.一个独占资源 B.并发进程中与共享变量有关的程序段
c.一个共享资源 D.并发进程中涉及相同变量的那些程序段
3.管理若干进程共享某一资源的相关临界区应满足三个要求,其中( )不考虑。

A一个进程可以抢占己分配给另一进程的资源 B.任何进程不应该无限地逗留在它的临界区中
c.一次最多让一个进程在临界区执行 D.不能强迫一个进程无限地等待进入它的临界区4、( )是只能由P和v操作所改变的整型变量。

A共享变量 B.锁 c整型信号量 D.记录型信号量
5.对于整型信号量,在执行一次P操作时,信号量的值应( )。

A.不变 B.加1 C减1 D.减指定数值
6.在执行v操作时,当信号量的值( )时,应释放一个等待该信号量的进程。

A>0 B.<0 c.>=0 D.<=0
7.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。

A初始化程序 B.原语 c.子程序 D控制模块
8.进程间的互斥与同步分别表示了各进程间的( )。

A.竞争与协作 B.相互独立与相互制约 c.不同状态 D.动态性与并发性
9并发进程在访问共享资源时的基本关系为( )。

A.相互独立与有交往的 B.互斥与同步 c并行执行与资源共享 D信息传递与信息缓冲
10.在进程通信中,( )常用信件交换信息。

A.低级通信 B.高级通信 c.消息通信 D.管道通信
11.在间接通信时,用send(N,M)原语发送信件,其中N表示( )。

A.发送信件的进程名 B.接收信件的进程名 C信箱名 D.信件内容
12.下列对线程的描述中,( )是错误的。

A不同的线程可执行相同的程序 B.线程是资源分配单位 c.线程是调度和执行单位 D.同一
进程中的线程可共享该进程的主存空间
13.实现进程互斥时,用( )对应,对同一个信号量调用Pv操作实现互斥。

A.一个信号量与一个临界区 B.一个信号量与—个相关临界区 c.一个信号量与一组相关临界
区 D一个信号量与一个消息
14.实现进程同步时,每一个消息与一个信号量对应,进程( )可把不同的消息发送出去。

A.在同一信号量上调用P操作 B在不同信号量上调用P操作 c.在同一信号量上调用v操作D.在不同信号量上调用v操作
(二)填空题
1.目前使用的计算机的基本特点是处理器______执行指令。

2进程的______是指进程在顺序处理器上的执行是按顺序进行的。

3.当一个进程独占处理器顺序执行时,具有______和______两个特性。

4.进程的封闭性是指进程的执行结果只取决于______,不受外界影响。

5 进程的可再现性是指当进程再次重复执行时,必定获得______的结果。

6.一个进程的工作在没有全部完成之前,另一个进程就可以开始工作,则称这些进程为______.
7若系统中存在一组可同时执行的进程,则就说该组进程具有______。

8.如果—个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,则说这些并发进程相互之间是______的。

9 如果一个进程的执行依赖其他进程的进展情况,则说这些并发进程相互之间是______ 10.有交往的并发进程一定______某些资源。

11.有交往的进程执行时可能产生与时间有关的错误,造成不正确的因素与进程______ 、______和外界的影响有关。

12.对______的使用不受限制,这是使有交往的并发进程执行时出现与时间有关的错误的根本原因。

13.临界区是指并发进程中与______有关的程序段。

14.______是指并发进程中涉及到相同变量的那些程序段。

15.只要涉及相同变量的若干进程的相关临界区______,就不会造成与时间有关的错误。

16.进程的______是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用。

17.Pv操作是在一个信号量上进行的______的过程,这种过程也称为______
18.利用Pv操作管理相关临界区时,必须成对出现,在进入临界区之前要调用______,在完成临界区操作后要调用______。

l9.若信号量的初值为1,用Pv操作能限制一次______进程进入临界区操作。

20.进程的______是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息。

21 ______能把它进程需要的消息发送出去,也能测试自己需要的消息是否到达。

22.Pv操作不仅是实现______的有效工具,而且也是一种简单而方便的______工具。

23.用Pv操作实现进程同步时,调用______ 测试消息是否到达,调用______发送消息。

24.用Pv操作实现生产者消费者之间的同步时,在访问共享缓冲区的______和______分别调动P 操作和v操作。

25.进程的互斥实际上是进程______的一种持殊情况。

26.进程的互斥是进程间______共享资源的使用权,其结果没有______,而进程的同步则在共享资源的并发进程之间有一种______依赖关系。

27.Pv操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为______ 28.通过专门的通信机制实现进程间交换大量信息的通信方式称为______。

29.采用高级通信方式时,进程间用______来交换信息。

30.最基本的通信原语有两条,它们是______原语和______原语。

31.进程通信方式有两种:______和______。

32.直接通信是固定在______进程之间通信,而间接通信以信箱为媒体实现通信。

33.一个信息可以由______和______两部分组成。

34.进程间通过信件交换信息,可实现______。

35______是进程中可以独立执行的子任务。

36.线程是处理器的独立______单位,多个线程可以______执行。

37.线程与进程有许多相似之处,所以线程又称为______。

38.线程在生命周期内会经历______、______和______之间各种状态变化。

39.采用多线程技术可把生产者消费者两个进程作为一个进程和进程中的两个线程来处理,这两个线程仍具有______,但不在需要额外的______。

40.在使Pv操作实现进程互斥时,调用______相当于申请一个共享资源,调用______相当于归还共享资源的使用权。

41.在多线程操作系统中,线程与进程的根本区别在于进程作为______单位,而线程是______
单位。

(二)简答题
1.什么是进程的顺序性和并发性?
2. 为什么并发进程执行时可能会产生与时间有关的错误?如何避免?
3.简述临界区的相关临界区的概念。

4.管理相关临界区有些什么要求?
5.假设PV操作用信号量s管理某个共享资源,请问当s>0,S=0和S<0时,它们的物理意义是什么?
6.请给出Pv操作的定义。

7.用Pv操作实现进程间同步与互斥应注意些什么?
8.何谓进程通信?最基本的通信原语有哪些?
9. 直接通信与间接通信有何区别?
10.线程与进程的根本区别是什么?
(四)应用题
1.有一南北向的单行车道,在车道A、B两端以外一段距离处有减速标志和自动计数系统,A、B 两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,A、B两端红绿灯同时变换,一方红变绿时另一方绿变红。

绿灯保持到同一方向进入的车辆全部驶入AB段,当AB之间无车辆行驶时,允许到达A端(或B端)的车辆驶入AB段,但只准某一方的车辆进入;一方最后一辆车进入AB段后,双向亮红灯让车辆全部通过(假设2分钟),然后让已在等待的任何一方车辆驶入。

试用Pv操作管理AB路段车辆的行驶。

2.在测温系统中要完成采样、转换和显示等任务。

采样过程把从传感器上得到的整型微电压值存入一个缓冲区,转换过程把微电压值从缓冲区中取出,计算转换成温度值再存入该缓冲区,显示过程把缓冲区中的温度值取出并显示。

试用Pv操作实现三个过程共享缓冲区的同步问题。

3,现有三个进程,Reader进程把键盘输入的一个整数读入缓冲区B1,Executor进程把B1中的数据取出进行处理,处理完后存到输出缓冲区B2中,最后由Pinter进程将B2中的数据打印出来。

假设B1和n2都只能存放一个整数,请用Pv操作管理这三个并发进程的执行.
4.用进程通信的方法解决生产者消费者问题。

要求生产者能告诉消费者产品的说明、规格、价格等。

而消费者能反馈对物品的评价和处理情况。

相关文档
最新文档