操作系统 进程间通信 例题 习题
(完整版)第三章进程同步与通信作业习题与答案
第三章一.选择题(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__。
进程间通信例题
// 进程P6 Void P6() { down(s26); down(s36); }
// 进程P8 Void P4() { down(s38); down(s78); }
例3. 有一个仓库,可以存放A和B两种产品,仓库的容量如走大。但要
求: (1) 每次只能放入一种产品(A或B) (2) –N<A产品数量-B产品数量<M 其中,N和M是正整数。试用信号量描述“存放A”,“存放B”两种入 库过程。 分析: 1. 从条件(1)得知,入库过程为互斥过程,定义信号量mutex来控制; 2. 通过条件(2)得知,仓库中A和B两种产品的入库量应该符合如下 两个条件的“与”关系: -N<A产品数量-B产品数量 存放的A产品不能比B产品少N个,即: B产品数量- A产品数量 > N B产品数量-A产品数量>= N-1 同理: A产品数量-B产品数量<=M-1. 以上约束条件可理解为:A产品数量不能比B产品少N个,且不能比 B产品多M个。 3. 因此设置两个信号量:Sa和Sb,初始值分别为:Sa=M-1, Sb=N-1。
typedef int Semaphore; Semaphore Sa, Sb; Sa=M-1; Sb=N-1; void store() { while(true){ produce x; If( x is type of A) then { down(Sa); down(mutex); 存放A; up(Sb); up(mutex); } } } If( x is type of B) then { down(Sb); down(mutex); 存放B; up(Sa); up(mutex); }
例1. 有4个进程A、B、C、D, 进程A通过一个缓冲区不断向进程B、C、
进程同步与通信作业习题与答案
第三章一.选择题(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__资源。
操作系统习题第四章
第四章互斥、同步与通讯一、单项选择题1.一个正在访问临界资源的进程由于申请等待I/O操作而被中断时,__________. A.可以允许其他进程进入与该进程相关的临界区B.不允许其他进程进入任何临界区C. 可以允许其他就绪进程抢占处理器,继续运行D.不允许任何进程抢占处理器2.两个并发进程之间______ A 一定存在互斥关系B 一定存在同步关系C 一定彼此独立无关D 可能存在同步或互斥关系3.为了使两个进程能同步运行,最少需要_______个信号量。
A 一B 二C 三D 四4.共享变量是指__________访问的变量。
A. 只能被系统进程B. 只能被多个进程互斥C. 只能被用户进程D. 可被多个进程5.临界区是指并发进程中访问共享变量的__________. A.管理信息 B.数据 C.信息存储 D.程序段6.设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是___________ A.1,0,-1,-2 B.2,0,-1,-2 C.1,0,-1 D.3,2,1,0 7.进程的并发执行是指若干个进程__________. A. 同时执行B. 在执行的时间上是重叠的C. 在执行的时间上是不可重叠的D. 共享系统资源8.在进程通信中,__________常用信件交换信息。
A.低级通信 B.高级通信 C.消息通信 D.管道通信9.实现进程同步时,每一个消息与一个信号量对应,进程_________可把不同的消息发送出去。
A.在同一信号量上调用P操作B.在不同信号量上调用P操作C.在同一信号量上调用V操作D.在不同信号量上调用V操作10._________是只能有P和V操作所改变的整形变量。
A.共享变量B.锁C.整型信号量D.记录型信号量11.在执行V操作时,当信号量的值_________时,应释放一个等待该信号量的进程。
A.大于0 B.小于0 C.大于等于0 D.小于等于0 12.进程和程序的主要区别是__________. A.占用处理器和不占用处理器B.占用主存和不占用主存C.动态和静态D.连续执行和非连续执行13.有三个进程P1,P2,P3共享同一个程序段,而每次最多允许两个进程进入该程序段,则信号量S的初值为___________. A. 0 B. 1 C. 2 D. 3 14.若P、V操作的信号量S初值为2,当前值为-1,则表示有_________等待进程。
计算机操作系统习题及答案(4)
第4章进程同步与通信1)选择题(1)在操作系统中,P、V操作是一种_D__。
A. 机器指令B. 系统调用命令C. 作业控制命令D. 低级进程通信原语(2)若信号量S的初值为2,当前值为-1,则表示有_B__等待进程。
A. 0个B. l个C. 2个D. 3个(3)在直接通信方式中,系统提供两条通信原语进行发送和接收,其中Send原语中参数应是_C_。
A. sender,messageB. sender,mailboxC. receiver,messageD. receiver,mailbox(4)下述那个选项不是管程的组成部分_A__。
A. 管程外过程调用管程内数据结构的说明B. 管程内对数据结构进行操作的一组过程C. 局部于管程的共享数据说明D. 对局部于管程的数据结构设置初值的语句(5)某通信方式通过共享存储区来实现,其属于_D__。
A. 消息通信B. 低级通信C. 管道通信D. 高级通信(6)用P、V操作管理临界区时,信号量的初值应定义为__C__。
A. -1B. 0C. 1D. 任意值(7)临界区是_B__。
A. 一个缓冲区B. 一段程序C. 一段共享数据区D. 一个互斥资源(8)信箱通信是一种_D__通信方式。
A. 直接通信B. 信号量C. 低级通信D. 间接通信(9)对于两个并发进程,设互斥信号量为mutex,若mutex=0则__A_。
A. 表示有一个进程进入临界区B. 表示没有进程进入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区(10)对信号量S执行V操作后,下述选项正确的是_C__。
A. 当S小于等于0时唤醒一个阻塞进程B. 当S小于0时唤醒一个阻塞进程C. 当S小于等于0时唤醒一个就绪进程D. 当S小于0时唤醒一个就绪进程(11)在消息缓冲通信中,消息队列属于_A__资源。
A. 临界B. 共享C. 永久D. 可剥夺(12)在消息缓冲通信机制中,使用的临界资源是_D__。
操作系统进程练习题答案
第二章进程管理1.操作系统重要是对计算机系统所有 (1) 进行管理,以以便顾客、提高计算机使用效率旳一种系统软件。
它旳重要功能有:解决机管理、存储管理、文献管理、 (2) 管理和设备管理等。
Windows和Unix是最常用旳两类操作系统。
前者是一种具有图形界面旳窗口式旳 (3) 系统软件,后者是一种基本上采用 (4) 语言编制而成旳旳系统软件。
在 (5) 操作系统控制下,计算机能及时解决由过程控制反馈旳信息并作出响应。
供选答案:(1): A. 应用软件 B. 系统软硬件C. 资源D. 设备(2): A. 数据 B. 作业C. 中断D. I/O(3): A. 分时 B. 多任务C. 多顾客D. 实时(4): A. PASCAL B. 宏C. 汇编D. C(5): A. 网络 B. 分时C. 批解决D. 实时答案:CBBDD2.操作系统是对计算机资源进行旳 (1) 系统软件,是 (2) 旳接口。
在解决机管理中,进程是一种重要旳概念,它由程序块、 (3) 和数据块三部分构成,它有3种基本状态,不也许发生旳状态转换是 (4) 。
虚拟存储器旳作用是容许程序直接访问比内存更大旳地址空间,它一般使用 (5) 作为它旳一种重要构成部分。
供选答案:(1): A. 输入和输出 B. 键盘操作C. 管理和控制D. 汇编和执行(2): A. 软件和硬件 B. 主机和外设C. 高级语言和机器语言D. 顾客和计算机(3): A. 进程控制块 B. 作业控制块C. 文献控制块D. 设备控制块(4): A. 运营态转换为就绪态 B. 就绪态转换为运营态C. 运营态转换为等待态D. 等待态转换为运营态(5): A. 软盘 B. 硬盘C. CDROMD. 寄存器答案:CDADB3.在计算机系统中,容许多种程序同步进入内存并运营,这种措施称为 D。
A. Spodling技术B. 虚拟存储技术C. 缓冲技术D. 多道程序设计技术4.分时系统追求旳目旳是 C。
4.8 进程通信习题
【例】在UNIX系统中,当一个进程向另一个进程发 送信号后,接收信号的进程如何处理信号? 【解答】 当一个进程接收到某一个信号后,处理方式与硬中 断非常类似。即它立即暂停自己正在执行的程序, 转去执行事先规定的对该信号的处理程序FUNC, 完成后再返回原先正在执行的程序。所不同的知 识信号的设置检查都是由软件来实施的,所有又 称为软中断。
间接通信: 这种通信是以信箱为媒体来实现通信的, 只要接收信件的进程设立一个信箱,那么, 若干个进程都可向同一个进程发送信件。 利用信箱通信时,“send”,“receive”原语 中应给出信箱名,即: send(N,M) 把信件M送入信箱N中 receive(N,X) 从信箱N中取出一封信 存入X
【例】UNIX系统V中,系统向用户提供的用 于建立无名管道的系统调用是();用于 建立有名管道的系统调用是() 【答案】PIPE MKNOD
【例】UNIX系统中,()管道只能用于同族 进程之间的通信,而()管道则可以用于 ()所有进程间的通信 【答案】无名 有名,知道该管道名字的
【例】通过专门的通信机制来实现进程间交 换大量信息的通信方式称为进程通信。进 程是用()来交换信息的,最基本的通信 原语包括()和()。 【解答】消息 Send发送消息原语 Receive接受消息原语
解答有名管道利用系统调用pipe建立一个无名临时文件只有调用pipe的进程及其子孙进程才能利用该管道进行通信有名管道利用系统调用mknod建立一个可以在文件系统中长期存在的具有路径名的文件凡是知道该路径名的进程都可以利用该路程名来访问管道文件实现彼此之间的通信
第4章 进程通信习题
【例】在消息缓冲通信中,系统应提供若干 ( ),用以存放信息。 A 队列缓冲区 B 消息缓冲区 C 容量的大缓冲区 D 容量小的缓冲区
计算机操作系统习题及答案4
计算机操作系统习题及答案4第4章进程同步与通信1 )选择题(1)在操作系统中,P、V操作是⼀种_D__。
A. 机器指令B. 系统调⽤命令C. 作业控制命令D. 低级进程通信原语(2)若信号量S的初值为2,当前值为-1,则表⽰有_B__等待进程。
A. 0个B. l个C. 2个D. 3个(3)在直接通信⽅式中,系统提供两条通信原语进⾏发送和接收,其中Send原语中参数应是_C_。
A. sender,messageB. sender,mailboxC. receiver,messageD. receiver,mailbox(4)下述那个选项不是管程的组成部分_A__。
A. 管程外过程调⽤管程内数据结构的说明B. 管程内对数据结构进⾏操作的⼀组过程C. 局部于管程的共享数据说明D. 对局部于管程的数据结构设置初值的语句(5)某通信⽅式通过共享存储区来实现,其属于_D__。
A. 消息通信B. 低级通信C. 管道通信D. ⾼级通信(6)⽤P、V操作管理临界区时,信号量的初值应定义为__C__。
A. -1B. 0C. 1D. 任意值(7)临界区是_B__。
A. ⼀个缓冲区B. ⼀段程序C. ⼀段共享数据区D. ⼀个互斥资源(8)信箱通信是⼀种_D__通信⽅式。
A. 直接通信B. 信号量C. 低级通信D. 间接通信(9)对于两个并发进程,设互斥信号量为mutex,若mutex=0则__A_。
A. 表⽰有⼀个进程进⼊临界区B. 表⽰没有进程进⼊临界区C. 表⽰有⼀个进程进⼊临界区,另⼀个进程等待进⼊D. 表⽰有两个进程进⼊临界区(10)对信号量S执⾏V操作后,下述选项正确的是_C__。
A. 当S⼩于等于0时唤醒⼀个阻塞进程B. 当S⼩于0时唤醒⼀个阻塞进程C. 当S⼩于等于0时唤醒⼀个就绪进程D. 当S⼩于0时唤醒⼀个就绪进程(11)在消息缓冲通信中,消息队列属于_A__资源。
A. 临界B. 共享C. 永久D. 可剥夺(12)在消息缓冲通信机制中,使⽤的临界资源是_D__。
操作系统第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)可以分别出现在两个进程中。
计算机操作系统练习题及答案
单项选择1. 两个进程合作完成一项任务。
在并发执行中,一个进程要等待其合作伙伴发来消息,或建立某个条件后再运行,这种制约性合作关系被称为进程的—A—。
A. 同步B. 执行C. 互斥D. 调度2. 为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式通常称为—C—。
A. 进程互斥B. 进程同步C. 进程通信D. 进程制约3.除了因为资源不足,进程竞争资源可能出现死锁外,不适当的一 C 一也可能产生死锁。
A. 进程优先权B. 资源线性分配C. 进程推进顺序D. 分配队列优先权4.除了可以采用资源剥夺法解除死锁外,还可以采用一 C 一方法解除死锁。
A. 修改信号量B. 拒绝分配新的资源C. 撤消进程D. 执行并行操作5 .资源的按序分配策略可以破坏一DH 条件。
A. 互斥B. 请求与保持C. 不剥夺D. 环路等待6 .在一C 一的情况下,系统出现死锁。
A. 计算机系统发生了重大故障B. 有多个阻塞的进程存在C. 若干个进程因竞争资源而无休止地相互等待他方释放已占有的资源D. 资源数远小于进程数或进程同时申请的资源数远超过资源总数7 . 某系统中有3 个进程,都需要同类资源 4 个,试问该系统不会发生死锁的最少资源数是—B—。
A.9B.10C.11D.128 .银行家算法是一种一B 一算法。
A. 解除死锁B. 避免死锁C. 预防死锁D. 检测死锁9. 在下列解决死锁的方法中,属于死锁预防策略的是—B—。
A. 银行家算法B. 资源有序分配C. 死锁检测法D. 资源分配图化简法10. 设有n 个进程共用一个相同的程序段(临界区),如果每次最多允许m 个进程(n)同时进入临界区,则信号量的初值应为一 B — oA.nB.mC.m-nD.-m11. 死锁定理是用于处理死锁的哪一种方法—C—。
A. 预防死锁B. 避免死锁C. 检测死锁D. 解除死锁12. AND 信号量集机制是为了—C—。
操作系统进程部分的习题
进程部分的习题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个缓冲区组成的缓冲池。
进程同步典型例题(操作系统)
进程同步练习题1.在公共汽车上,司机和售票员的工作流程如图所示。
为保证乘客的安全,司机和售票员应密切配合协调工作。
请用信号量来实现司机与售票员之间的同步。
司机售票员图司机和售票员工作流程图①约束:怎么密切配合协调工作才能保证安全呢?a)关车门之后再启动车辆;利用前驱图解释b)到站停车之后再开车门;②根据约束定义信号量;关车门和启动车辆需要一个信号量进行同步S1;到站停车和开车门之间需要一个信号量进行同步S2;③建立几个进程呢?a)为司机建立一个进程Driver;b)为售票员建立一个进程Conductor;Driver:Repeat启动车辆;正常行驶;到站停车;Until false;Conductor:Repeat关车门;售票;开车门;Until false;④加入同步关系:Driver:RepeatWait (s1);启动车辆;正常行驶;到站停车;Signal(s2)Until false;Conductor:Repeat关车门;Signal(s1);售票;Wait(s2)开车门;Until false;main(){Driver();Conductor ();}2.桌子上有一只盘子,盘子中只能放一只水果。
爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。
用PV操作实现他们之间的同步机制。
分析:①约束:a)爸爸和妈妈竞争盘子,往盘子放水果,爸爸在放时,妈妈等待,或者相反;b)爸爸和女儿要同步,即爸爸放完苹果之后通知女儿来吃;同时女儿吃完之后要通知盘子可用;c)妈妈和儿子要同步,即妈妈放完橘子之后通知儿子来吃;同时儿子吃完之后要通知盘子可用;②经上述分析可知:需要3个信号量:S1表示临界资源盘子,初值1;爸爸和女儿需要一个信号量进行同步S2=0 妈妈和儿子需要一个信号量进行同步S3=0;③建立进程?爸爸:妈妈:女儿:儿子:取一个苹果;取一个橘子;从盘子取一个苹果;从盘子取一个橘子;放入盘子;放入盘子吃苹果;吃橘子;Until false; Until false; Until false; Until false;④加入同步关系。
全国自考操作系统(进程通信)模拟试卷2(题后含答案及解析)
全国自考操作系统(进程通信)模拟试卷2(题后含答案及解析) 题型有:1. 单项选择题 3. 填空题 4. 简答题 5. 综合题 6. 判断题单项选择题1.一段不能由多个进程同时执行的代码称为_______。
A.临界区B.临界资源C.锁操作D.信号量操作正确答案:A 涉及知识点:进程通信2.进程间的互斥与同步表示了各进程间的_______。
A.竞争与协作B.相互独立与相互制约C.临界区调度原则D.动态性与并发性正确答案:A 涉及知识点:进程通信3.类似于电子邮件系统的进程问的通信方法是_______通信。
A.管道B.共享存储NC.信号量D.消息正确答案:D 涉及知识点:进程通信4.在UNIX卢,创建一个共享内存段的系统调用是_______。
A.seumgetB.creatsemC.msggetD.shmget正确答案:D 涉及知识点:进程通信5.在UNIX类操作系统中,_______可用于通知进程发生了异常的事件。
A.信号机构B.管道机构C.消息机构D.信号量正确答案:A 涉及知识点:进程通信6.系统出现死锁的根本原因是_______。
A.系统资源太少B.系统中进程太多C.资源的独占性D.资源管理和进程推进顺序都不得当正确答案:D 涉及知识点:进程通信7.防止死锁采取的措施是_______。
A.配置足够的系统资源B.使进程的推进顺序合理C.破坏产生死锁的4个必要条件之一D.避免系统进入不安全状态正确答案:C 涉及知识点:进程通信8.在下列死锁解决方案中,属于死锁预防的是_______。
A.银行家算法B.资源有序分配法C.状态图或状态表D.撤销死锁进程正确答案:B 涉及知识点:进程通信填空题9.进程访问临界资源的那段代码称为_______。
正确答案:临界区(互斥段) 涉及知识点:进程通信10.每执行一次semWait操作,信号量的数值S减1。
若_______,则该进程继续执行,否则进入_______状态。
操作系统第三讲进程通信习题课
❖ B.进程P1正在访问SA,同步进程P3访问SB
❖ C.进程P1正在访问SA,同步进程P4访问SB
❖ D.进程P1正在访问SA,同步进程P2访问SA
❖ 解:共享变量必须互斥使用,因P1和P2共享SA, 因此P1和P2不能同步访问SA。故本题答案为D。
❖ 【例3.18★】设有一种作业由四个进程构 成,这四个进程在运行时必须按下图旳次 序,试用P, V操作体现四个进程旳同步关 系。
T1
T2
T3
T4 四个进程的运行次序
❖ 解:图中阐明作业启动后进程T1先执行。当 进程T1结束后,进程T2, T3可以开始执行。 进程T2, T3完毕后,T4才能开始执行。为了 保证这一执行次序,设三个同步信号量b2, b3, b4分别表达进程T2, T3, T4与否可以开始 执行,其初值均为0。这四个进程旳同步描 述如下:
第三讲 进程通信与控制习题课
一、选择题
【例3.1】★在操作系统中,P, V操作是一种 ____________。
A.机器指令
B.系统调用命令
C.作业控制命令
D.低级进程通信原语
解:P, V操作互换旳信息量小,为低级进程通信 原语,故本题答案为D。
第三讲 习题课
❖ 【例3.2】进程从运行状态到阻塞状态也许 是由于( )。
❖ 三、综合题
❖ 【例3.17】己知一种求值公式(A2+3B)/(B+ 5A),若A. B已赋值,试画出该公式求值过程旳前 驱图。
❖ 解:在本题公式旳求值过程中,有些运算分量旳 计算是可以并发进行旳。为了描述以便起见,我 们设置了某些变量保留中间计算成果,并为每条 语句命名,如图2.6所示。其求值过程旳前驱图 如图2.7所示。
全国自考操作系统(进程通信)模拟试卷4(题后含答案及解析)
全国自考操作系统(进程通信)模拟试卷4(题后含答案及解析) 题型有:1. 单项选择题 3. 填空题 4. 简答题 5. 综合题 6. 判断题单项选择题1.不能利用_______实现父子进程间的互斥。
A.文件B.外部变量C.信号量D.锁正确答案:B解析:各个进程的外部变量,包括父子进程的同名外部变量都是独立存储的,不能作为公共的共享锁。
知识模块:进程通信2.若执行信号量S操作的进程数为3,信号量S初值为2,当前值为-1,表示有_______个等待相关临界资源的进程。
A.0B.1C.2D.3正确答案:B 涉及知识点:进程通信3.下列机构中不能用于进程间数据通信的是_______。
A.消息B.共享存储C.信号量D.管道正确答案:C 涉及知识点:进程通信4.在下面的Socket远程通信的系统调用中_______是客户端程序中要用到的系统调用。
A.bindB.1istenC.acceptD.connect正确答案:D 涉及知识点:进程通信5.在_______情况下,计算机系统一定出现了死锁。
A.系统中所有的进程都处于封锁状态B.进程申请的资源数大大超过资源总数C.计算机硬件或软件系统发生重大故障D.两个进程互相等待对方占有的资源正确答案:D 涉及知识点:进程通信6.在某一时刻,进程P1和P2执行或将执行各处于下列关于互斥资源的操作序列:进程P1申请到资源S1,申请资源S2,释放资源S1;进程P2已申请到资源S2,申请资源S1,释放资源S2,系统继续并发执行进程P1、P2,系统将_______。
A.必定产生死锁B.可能产生死锁C.不会产生死锁D.无法确定是否会产生死锁正确答案:B解析:但如两个进程没有申请到第二个资源时不能继续执行,就必定产生死锁。
知识模块:进程通信7.系统共有9个磁带机,如每个进程最多分配3台磁带机,系统要限制_______个进程使用,就没有死锁的危险。
A.1B.2C.3D.4正确答案:D 涉及知识点:进程通信8.相继地剥夺进程所占的资源,直至相关进程能继续运行是一种_______方法。
进程同步与通信作业习题与答案
第三章一.选择题(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__资源。
linux进程间通信试题
linux进程间通信试题Linux操作系统提供了多种进程间通信的方式,以便于不同的进程之间进行数据交换、共享资源等操作。
进程间通信是操作系统中非常重要的一部分,掌握进程间通信的技术对于理解和应用Linux系统具有重要意义。
本文将针对Linux进程间通信的试题进行论述。
一、Linux进程间通信的概述在Linux系统中,进程间通信可以通过多种方式实现,常用的方式包括管道、信号量、消息队列、共享内存、套接字等。
每种方式都适用于不同的场景,使用时需要根据实际需求选择合适的方式。
二、管道1. 管道是一个单向的通信管道,分为无名管道(pipe)和有名管道(FIFO)。
无名管道只能在具有共同祖先的进程之间通信,而有名管道则可以在任意进程之间通信。
2. 管道的操作包括创建、读取和写入。
创建管道时,需要使用pipe()系统调用。
读取和写入数据可以使用read()和write()系统调用进行。
三、信号量1. 信号量是一种用于实现进程间同步和互斥的机制,常用于控制对共享资源的访问。
Linux中提供了System V信号量和POSIX信号量两种类型。
2. 信号量的操作包括创建、初始化、增加和减少等。
创建信号量时,需要使用semget()系统调用。
增加和减少信号量的值可以使用semop()系统调用。
四、消息队列1. 消息队列提供了一种进程间通信的方式,适用于可以以消息为单位进行数据交换的场景。
Linux中的消息队列是一种有序的消息链表。
2. 消息队列的操作包括创建、发送和接收等。
创建消息队列时,需要使用msgget()系统调用。
发送和接收消息可以使用msgsnd()和msgrcv()系统调用。
五、共享内存1. 共享内存是一种进程间通信的高效方式,可以使得多个进程访问同一块物理内存。
通过共享内存,进程可以直接读取和写入内存区域中的数据。
2. 共享内存的操作包括创建、映射和解除映射等。
创建共享内存时,需要使用shmget()系统调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// 生产车间2 void workshop2() { while (true){ produce a B; down(S3); put B onto F2; up(S4); } }
// 装配车间 void assemb_shop() { while (true){ down(S2); fetch an A from F1; up(S1); down(S4); fetch a B from F2; up(S3); assemble A and B; } }系,适用信号量实现这些 Nhomakorabea程的同步。
P1 P5 P2 P3 P4
P6
P8
P7
分析: 1. 上图给出了若干个进程先后执行的顺序要求,例如:P6 进程必须在P2和P3进程执行完才能执行。 2. 对于进程执行的先后顺序,可定义信号量来约束进程的 阻塞等待与唤醒。信号量Sij表示进程Pj需要在进程Pi运 行完成后才能运行。 3. 定义信号量: S12, S13,S14, S26,S36, S38, S47, S57, S78.
例1. 有4个进程A、B、C、D, 进程A通过一个缓冲区不断向
进程B、C、D发送消息,A每次向缓冲区送入一个消息 之后,必须等待进程B、C、D都取走后才可以发送下一 个消息。B、C、D对进程A送入的每个消息各取一次。 适用信号量完成四个进程的并发通信。 缓冲区只能存放一个消息,该消息应该被B,C,D三个进 程取走且不能重复取。因此,设三个信号量Sb, Sc, Sd, 用于保证三个接收进程的同步; 设置一个信号量S,用于表示缓冲区当前是否可用,初 始S=1,用于制约发送消息的进程A。 由于三个接收进程必须都取到消息后,发送者进程才可 发送下一个消息。因此需要对接收进程每次的接收做计 数。因此,设一个计数器R。初始R=0,进程每取走一次 消息,R++; 由于R变量为三个取消息的进程所共同操作,为共享变 量,设mutex为二元信号量,用于保护R变量的互斥访 问。
typedef int Semaphore; Semaphore S1,S2,S3,S4; Semaphore mutex1, mutex2; S1=S3=10; S2=S4=0; mutex1=mutex2=1;
// 生产车间1 void workshop1() { while (true){ produce an A; down(S1); put A onto F1; up(S2); } }
// 进程P6 Void P6() { down(s26); down(s36); }
// 进程P8 Void P4() { down(s38); down(s78); }
例3. 有一个仓库,可以存放A和B两种产品,仓库的容量如走大。但要
求: (1) 每次只能放入一种产品(A或B) (2) –N<A产品数量-B产品数量<M 其中,N和M是正整数。试用信号量描述“存放A”,“存放B”两种 入库过程。 分析: 1. 从条件(1)得知,入库过程为互斥过程,定义信号量mutex来控制; 2. 通过条件(2)得知,仓库中A和B两种产品的入库量应该符合如下 两个条件的“与”关系: -N<A产品数量-B产品数量 存放的A产品不能比B产品少N个,即: B产品数量- A产品数量 > N B产品数量-A产品数量>= N-1 同理: A产品数量-B产品数量<=M-1. 以上约束条件可理解为:A产品数量不能比B产品少N个,且不能比 B产品多M个。 3. 因此设置两个信号量:Sa和Sb,初始值分别为:Sa=M-1, Sb=N-1。
typedef int Semaphore; Semaphore s12, s13,s14, s26,s36,s47,s57,s38,s78; S12= s13=s14=s26=s36=s47=s57=s38=s78=0;
// 进程P1 Void P1() { up(s12); up(s13); up(s14); } // 进程P5 Void P5() { up(s57); }
typedef int Semaphore; Semaphore Sa, Sb; Sa=M-1; Sb=N-1;
void store() { while(true){ produce x; If( x is type of A) then { down(Sa); down(mutex); 存放A; up(Sb); up(mutex); } } } If( x is type of B) then { down(Sb); down(mutex); 存放B; up(Sa); up(mutex); }
// 进程D void receiver3() { while(true) { down(Sd); receive_mess(); down(mutex); R = R+1; up(mutex); if( R==3) up(S); } }
例2. 设有8个进程P1,P2,…,P8,它们有如图所示的优先关
// 进程P2 Void P2() { down(s12); up(s26); }
// 进程P3 Void P3() { down(s13); up(s36); up(s38); } // 进程P7 Void P7() { down(s47); down(s57); up(s78); }
// 进程P4 Void P4() { down(s14); up(s47); }
1.
2.
3.
4.
typedef int Semaphore; Semaphore Sb, Sc, Sd; Semaphore mutex=1; Semphore S =1; Sb=Sc=Sd=0; int R=0;
// 进程A void sender() { while(true) { down(S); send_message(); up(Sb); up(Sc); up(Sd); } }
例4. 某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A、
B两种零件,装配车间的任务是把两种零件组装成产品。两个生产 车间每生产一个零件后都要分别把它们送到装配车间的货架F1、 F2上。F1存放零件A,F2存放零件B。F1和F2均可存放10个。装 配工人每次从货架上取一个A零件和一个B零件组装成产品。请描 述三个车间的过程。 分析: 1. 显然,这是一个生产者-消费者问题; 2. 不同的是,生产者是两个,分别是生产零件A的车间和生产零件B 的车间,消费者是一个,是装配车间。 3. 基于上述问题,可定义4个信号量: S1:表示F1上可放零件A的空位置数,初始值为10; S2:表示F1上已有零件A的数量,初始值为0; S3:表示F2上可放零件B的空位置数,初始值为10; S4:表示F2上已有零件B的数量,初始值为0; 另外,为保证零件A和零件B的存取,分别设置一个二元信号量: mutex1表示对零件A的存取的约束; mutex2表示对零件B的存取的约束;
// 进程B void receiver1() { while(true) { down(Sb); receive_mess(); down(mutex); R = R+1; up(mutex); if( R==3) up(S); } }
// 进程C void receiver2() { while(true) { down(Sc); receive_mess(); down(mutex); R = R+1; up(mutex); if( R==3) up(S); } }