操作系统第二章复习题
一、选择最合适的答案
1. 用P、V 操作管理临界区时,信号量的初值一般应定义为( C )。
A.–1 B.0 C.1 D.任意值
2. 有m 个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是( A )。
A.1 至–(m-1) B.1 至m-1 C.1 至–m D.1 至m
3. 在下面的叙述中,正确的是( C )。
A.临界资源是非共享资源 B.临界资源是任意共享资源
C.临界资源是互斥共享资源 D.临界资源是同时共享资源
4. 对进程间互斥地使用临界资源,进程可以( D )
A.互斥地进入临界区 B.互斥地进入各自的临界区
C.互斥地进入同一临界区 D.互斥地进入各自的同类资源的临界区
5. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1 时表示( B )。
A.一个进程进入了临界区,另一个进程等待
B.没有一个进程进入临界区
C.两个进程都进入了临界区
D.两个进程都在等待
6. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=-1 时表示( A )。
A.一个进程进入了临界区,另一个进程等待
B.没有一个进程进入临界区
C.两个进程都进入了临界区
D.两个进程都在等待
7.当一进程因在记录型信号量S 上执行P(S)操作而被阻塞后,S 的值为( B )。
A.>0 B.<0 C.≥0 D.≤0
8.当一进程因在记录型信号量S 上执行V(S)操作而导致唤醒另一进程后,S 的值为( D )。
A.>0 B.<0 C.≥0 D.≤0
9.如果信号量的当前值为-4,则表示系统中在该信号量上有( A )个进程等待。
A.4 B.3 C.5 D.0
10.若有4 个进程共享同一程序段,而且每次最多允许3 个进程进入该程序段,则信号量的变化范围是( B )。
A. 3,2,1,0 B. 3,2,1,0,-1
C. 4,3,2,1,0 D. 2,1,0,-1,-2
11.若信号S 的初值为2,当前值为-1,则表示有( B )个等待进程?
A.0 B.1 C.2 D.3
12.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为( C )。
A. 3 B. 1 C. 2 D. 0
13.并发进程之间( D )
A.彼此无关 B.必须同步
C.必须互斥 D.可能需要同步或互斥
14.在操作系统中,有一组进程,进程之间具有直接相互制约性。这组并发进程之间( B )。
A.必定无关 B.必定相关
C.可能相关 D.相关程度相同
15. ( A )操作不是P 操作可完成的。
A.为进程分配处理机 B.使信号量的值变小
C.可用于进程的同步 D.使进程进入阻塞状态
16.下列步骤中,( C )不是创建进程所必须的。
A 建立一个进程控制块 B 为进程分配内存
C 为进程分配CPU D 将其控制块放入就绪队列
17.在进程管理中,当( B )时,进程从运行状态变为就绪状态。
A 进程被调度程序选中 B 时间片用完
C 等待某一个事件发生 D 等待的事件发生
18. 进程和程序的最根本区别在于( B )。
A 对资源的占有类型和数量。
B 进程是动态的,而程序是静态的。
C 看它们是否能够并发地在处理机上运行
D 进程规模较小,程序规模较大
19. 一个进程被唤醒意味着( C )。
A 该进程的优先数变大
B 该进程获得了CPU
C 该进程从阻塞状态变为就绪状态
D 该进程排在了就绪队列的队首
20. 进程的3 种状态之间,下列( C )转换是不能进行的。
A 就绪状态到运行状态 B 运行状态到阻塞状态
C 阻塞状态到运行状态 D 阻塞状态到就绪状态
21. 下列情况下,在( A )时,进程从阻塞状态转换到就绪状态。
A 等待的某事件已经发生了。
B 时间片用完了
C 分配到必要的资源并获得了处理机
D 等待某事件
22.多道程序执行方式的特点是 ( )。A
A. 宏观上并行,微观上串行 B. 宏观上串行,微观上并行
C. 宏观上并行,微观上并行 D. 宏观上串行,微观上串行
23. 某进程所申请一次打印事件结束,则该进程的状态可能发生改变是( D )
A 运行状态转变到就绪状态
B 阻塞状态转变到运行状态
C 就绪状态转变到运行状态
D 阻塞状态转变到就绪状态
24. 下列哪一个体现了原语的主要特点?( D )
A 并发性 B 异步性 C 共享性 D 不可分割性
25. 在具有挂起状态的系统中,若当前内存空间高度吃紧,系统将使请求I/O 的一个执行状态的进程进入( D )状态。
A 活动就绪 B 静止就绪 C 活动阻塞 D 静止阻塞
26. 如果单CPU 系统中有n 个进程,则就绪队列中进程的个数最多可达到( C )个。
A n+1 B n C n-1 D 1
28. 信箱通信是一种( B )通信方式。
A 直接 B 间接 C 低级 D 信号量
29. 操作系统通过( B )对进程进行管理。
A JCB B PCB C DCT D CHCT
30. 临界区是( C )。
A 一个缓冲区 B 一段共享数据区 C 一段程序 D 一个互斥资源
- 在操作系统中,进程的最基本的特征是( )。A
A.动态性和并发性 B.顺序性和可再现性
C.与程序的对应性 D.执行过程的封闭性
- 当前进程因时间片用完而让出处理机时,该进程应转变为( )状态。B
A. 等待 B.就绪 C. 运行 D. 完成
- 设与某资源相关联的信号量初值为8,当前值为2,若M表示该资源的可用个数,N表示等待资源的进程数,则M,N分别是:()D
A.0,1 B.1,0 C.1,2 D.2,0
- 以下操作不是P 操作可完成的是:()A
A.为进程分配处理机 B.使信号量的值变小
C.可用于进程的同步 D.使进程进入阻塞状态
- 操作系统为( )分配内存空间。C
A.线程 B.高速缓冲存储器(Cache) C.进程 D.块表
- 下面哪个不是操作系统为用户提供的接口( )D
A.命令行 B.图形 C.系统调用 D.中断
二、选择所有正确的答案
1. 有关进程的描述中,( AC )是正确的。
A.进程执行的相对速度不能由进程自己来控制
B.利用信号量的P. V 操作可以交换大量信息
C.同步是指并发进程之间存在的一种制约关系
D.并发进程在访问共享资源时,不可能出现与时间有关的错误
2. 下列资源中,( ACD ) 是临界资源。
A.打印机B.非共享的资源
C.共享变量D.共享缓冲区
3. 进程从执行状态转换到阻塞状态的可能原因是( BD ).
A.时间片完B.需要等待其它进程的执行结果
C.执行了V 操作D.执行了P 操作
4. 进程从阻塞状态转换到就绪状态的可能原因是( BC ).
A. 时间片完B. 其它进程执行了唤醒原语
C. 执行了V 操作D. 执行了P 操作
5.在单处理机系统中,设系统中有n 个进程(n>2),且当前处理机没有执行进程调度程序,下述情况哪些可能发生( BCD )。
A.没有运行的进程,有2 个进程处于就绪状态,n 个进程处于等待状态。
B.一个进程处于运行状态,n-1 个进程处于等待状态。
C. 一个进程处于运行状态,1 个进程处于就绪状态,n-2 个进程处于等待状态。
D. 一个进程处于运行状态,n-1 个进程处于就绪状态,没有进程处于等待状态
- 程序并发执行时的特征:()ABC
A.间断(异步)性 B.失去封闭性 C.不可再现性 D.顺序性
- 在下列的进程状态变换中,可能发生的是:()ABD
A. 执行->阻塞 B. 执行->就绪
C. 阻塞->执行 D. 阻塞->就绪
- 进程同步机制遵循的规则包括:()ABCD
A.空闲让进 B.忙则等待 C.有限等待 D.让权等待:
- 操作系统的基本特征包括:()ABCD
A.并发 B.共享 C.虚拟 D.异步
- 下面哪些属于操作系统为用户提供的接口( )ABC
A.联机用户接口 B.图形用户接口 C.程序接口 D.中断接口
11. 下面对父进程和子进程的叙述中,正确的是( BD )。
A 父进程创建子进程,因此父进程执行完了,子进程才能运行。
B 父进程和子进程之间可以并发执行
C 撤消子进程时,应同时撤消其父进程
D 撤消父进程时,应同时撤消其子进程
三、判断正误,错误的简要说明理由
1.一个临界资源可以对应多个临界区。(√)
2.互斥地使用临界资源是通过互斥地进入临界区实现的。(X)
表达不确切,应该是互斥的进入同类临界区。
3.同步信号量的初值一般为1。(X)
互斥信号量的初值一般为1;而同步信号量的初值应视具体情况而定。
4.生产者-消费者问题是一个既有同步又有互斥的问题。(√)
5.进程A、B 共享变量x,需要互斥执行;进程B、C 共享变量y,B、C 也需要互斥执行,因此,进程A、C 必须互斥执行。(X)不具有传递性。
6.单道程序系统中程序的执行也需要同步和互斥。(X)
单道程序系统不具有并发性,因此不需要同步和互斥。
7. P、V 操作都是原语操作。( √ )
8. 进程执行的相对速度不能由进程自己来控制。( √ )
9. 利用信号量的P、V 操作可以交换大量信息。( X )
10.同步是指并发进程之间存在的一种制约关系。( √ )
11.一般来说,用户进程的PCB 存放在用户区,系统进程的PCB 存放在操作系统系统区。( X )
12.进程可以由程序、数据和进程控制块描述。( √ )
13.进程是程序在一个数据集合上的过程,它是系统进行资源分配和调度的一个独立单位。( √ )。
四、填空题
1、在操作系统中引入线程概念的主要目的是(缩短系统切换的时空开销,提高程序执行并发度)。
2、引入了线程的操作系统中,资源分配的基本单位是( 进程),CPU 分配的基本单位是(线程)。
3、进程的基本状态由执行、(就绪)、(阻塞)。
4、进程的基本特征是( 动态性)、(并发性)、(独立性)、(异步性)、(结构特征)。
5、信号量的物理意义是当信号量值大于0 时表示(系统当前可用资源数目);当信号量值小于0 时,其绝对值为(因请求该资源而被阻塞的进程数目)。
6、进程由(程序段)、(数据段)、(PCB)三部分组成。
7、进程是一个程序对某个数据集的(一次执行过程)。
8、若一个进程已进入临界区,其他欲进入临界区的进程必须(等待)。
9、程序并发执行与顺序执行时相比产生了一些新特征,分别是(间断性)、(失去封闭性)、(不可再性)。
10、采用用户级线程的系统中,处理器调度的对象是(进程);采用内核支持的线程系统中,处理器调度的对象是(线程)。
11、高级通信方式分为三大类:(共享存储器系统)、(消息传递系统)、(管道通信系统)。
12、在一个多道程序系统中,进程之间存在着不同关系可以划分为两大类:其中(同步)指进程间存在一定的逻辑关系,需要在执行次序上协调;(互斥)指进程间在使用共享资源方面的约束关系。解决上述两个问题的一种常用的方法是(信号量机制)。
五、简答题
1、在操作系统中为什么要引入进程概念?P37
答:因为在多道程序环境下,程序的执行属于并发执行。可是与此同时,他们将失去其封闭性,并具有间断性及不可再现性的特征。这决定了通常的程序是不能参与并发执行。为了使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了”进程”的概念。
2、试说明PCB 的作用。P41
答: OS 调度进程的主要数据,依据记录进程的有关信息,供系统对进程进行控制,标志进程的存在
3、试从调度性、并发性、拥有资源及系统开销4 个方面对进程和线程进行比较。P73
答:A.在引进线程的OS 中,把线程作为独立跳读和分派的基本单位,而把进程作为资源拥有的基本单位。
B.在引进线程的OS 中,不仅进程间可并发执行,而且同一进程的多个线程亦可并发执行,因而使OS 具有更好的并发性。
C.进程始终是资源的一个独立单位,而线程自己不拥有系统资源,但是它可以访问其隶属进程的资源。
D.在创建、撤销和切换进程方面,进程开销远大于线程。
4、同步机构应遵循哪些基本准则?P50
答:A.空闲让进B.忙着等待C.有限等待D.让权等待
5、线程具有哪些属性?P73-74
答:A.轻型实体B.独立调度和分派的基本单位C 可并发执行D 共享进程资源
六、解答题
1.某车站售票厅,任何时刻最多可容纳20 名购票者进入,当售票厅中少于20 购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1) 用P、V 操作管理这些并发进程时,应怎样定义信号量?写出信号量的初值以及信号量各种取值的含义。
(2) 根据所定义的信号量,把应执行的P、V 操作填入下述程序中,以保证进程能够正确地并发执行。
COBEGIN PROCESS Pi(i=1,2,…)
Begin
;
进入售票厅;
购票;
;
退出;
End;
COEND
(3)若欲购票者最多为n 个人,写出信号量可能的变化范围(最大值和最小值)。
解:售票厅问题:
(1)定义一信号量S,初始值为20。
S>0 S的值表示可继续进入售票厅的人数
S=0 表示售票厅中已有20名顾客
S<0 |S|的值为等待进入售票厅中的人数
(2)上线为P(S) 下线为V(S)
(3)S的最大值为20,S的最小值为20-N,N为某一时刻需要进入售票厅的最大人数。
2. 进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?
(1)若干同学去图书馆借书;
(2)两队举行篮球比赛;
(3)流水线生产的各道工序;
(4)商品生产和社会消费。
解:进程间存在着2种相互制约的关系:直接制约关系(即同步问题)和间接制约关系(即互斥问题)。同步问题是存在逻辑关系的进程之间相互等待所产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同资源所发生的制约关系。
(1)属于互斥关系,因为书的个数是有限的,一本书只能借给一个同学;
(2)属于互斥关系,篮球只有一个,两队都要争夺;
(3)属于同步关系,各道工序的开始都依赖前道工序的完成;
(4)属于同步关系,商品没生产出来,消费无法进行,商品未消费完,生产也无须进行。
3.设有两个优先级相同的进程P1 和P2 如下。信号量S1 和S2 的初值均为0,试问P1、P2并发执行结束后,x=?,y=?,z=?
〈进程P1〉 y:=1; y:=y+2; V(S1); z:=y+1; P(S2); y:=z+y; | 〈进程P2〉 x:=1; x:=x+1; P(S1); x:=x+y; V(S2); z:=x+z; |
解:因为P1和P2是两个并发进程,所以进程调度程序调度P1和P2的顺序是不确定的。
这里不妨假设P1先执行。进程P1执行到语句P(S2)时,S2=-1,进程P1阻塞。此时,y=3,z=4。当进程调度程序调度到进程P2时,由于进程P1已执行了V(S1),进程P2在执行P(S1)时并未阻塞而继续执行,当执行到V(S2)时,将P1唤醒,分成两种情况:
(1)然后执行P2最后一个语句z:=x+z,此时x=5,z=9。当进程P1再次被调度时,继续执行P1的最后一个语句,此时y=12,最终结果是:x=5,y=12,z=9。
(2)如果当P2进程执行到V(S2)时,将P1唤醒,然后P2进程被中断,此时x=5,y=3,z=4。P1进程开始执行然后执行最后一个语句y:=z+y,此时x=5,y=7,z=4。然后P2进程被调度,执行z:=x+z,此时x=5,y=7,z=9。
如果P2先执行,则执行结果与上面相同。
4.桌上有一空盘,只允许存放一个水果。爸爸可向盘中放苹果,也可向盘中放桔子。儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘中空时一次只能放一只水果供吃者取用,请用P、V 原语实现爸爸、儿子、女儿三个并发进程的同步。
分析在本题中,爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果。当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是苹果,则允许女儿吃,儿子必须等待;若放入果盘中的是桔子,则允许儿子吃,女儿必须等待。本题实际上是生产者-消费者问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。
解在本题中,应设置三个信号量S、So、Sa,信号量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); 吃苹果; } } |
5.(2009考研)三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
解答
定义资源信号量empty、even、odd,用于控制生产者与消费者之间的同步,其中,empty表示空缓冲区的数目,even表示缓冲区中偶数的个数,odd表示缓冲区中奇数的个数; 定义互斥信号量mutex,用于实现进程对缓冲区的互斥访问。伪代码描述如下:
semahpore empty=N,even=0,odd=0,mutex=1;
6. (2011考研)某银行提供1个服务窗口和10个顾客等待座位。顾客到达银行时,若有空座位,则到取号机领取一个号,等待叫号。取号机每次仅允许一个顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:
cobegin { process 顾客i { 从取号机获得一个号码; 等待叫号; 获得服务; } process 营业员 { while(true) { 叫号; 为顾客服务; } } } coend |
请添加必要的信号量和P、V(或wait()、signal())操作实现上述过程的互斥和同步。要求写出完整的过程,说明信号量的含义并赋初值。
解答.
semaphore seets=10; //表示空余座位数量的资源信号量,初值为10 semaphore mutex=1; //互斥信号量,初值为1,用于实现对取号机的互斥访问 semaphore custom=0; //表示顾客数量的资源信号量,初值为0 cobegin { process 顾客i { P(seets); P(mutex); 从取号机获得一个号码; V(mutex); V(custom); 等待叫号; V(seets); 获得服务; } process 营业员 { while(TRUE) { P(custom); 叫号; 为顾客服务; } } } coend |
7. (2013考研)某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许一个人通过。参观者的活动描述如下:
cobegin 参观者进程i: { … 进门; … 参观; … 出门; … } coend |
请添加必要的信号量和P、V(或wait()、signal( ))操作,以实现上述操作过程中的互斥与同步。要求写出完整的过程,说明信号量含义并赋初值。
解答.
semaphore empty=500; //博物馆可以容纳的最多人数 semaphore mutex=1; //用于控制参观者互斥地访问出入口 cobegin 参观者进程i: { P(empty); P(mutex); 进门; V(mutex); 参观; P(mutex); 出门; V(mutex); V(empty); } coend |
8.(2014考研)系统中有多个生产者进程和消费者进程,共享用一个可以存1000个产品的缓冲区(初始为空),当缓冲区为未满时,生产者进程可以放入一件其生产的产品,否则等待;当缓冲区为未空时,消费者进程可以取走一件产品,否则等待。要求一个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才可以取产品,请用信号量P,V(wait,signed)操作实现进程间的互斥和同步,要求写出完整的过程;并指出所用信号量的含义和初值
解答:
这是典型的生产者和消费者问题,只对典型问题加了一个条件,只需在标准模型上新加一个信号量,即可完成指定要求。 设置四个变量mutex1、mutex2、empty和full,mutex1,用于一个控制一个消费者进程一个周期(10次)内对于缓冲区的控制,初值为1,mutex2用于进程单次互斥的访问缓冲区,初值为1,empty代表缓冲区的空位数,初值为0,full代表缓冲区的产品数,初值为1000,具体进程的描述如下:
图片丢失了
9.(2015考研)有A、B 两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问
题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中,设A 的信箱
最多放M 个邮件,B 的信箱最多放N 个邮件。初始时A 的信箱中有x 个邮件
(0<x<y<n)。辩论者每取出一个邮件,邮件数减1.<=””></x
A、B 两人操作过程:
Code Begin A { While(TRUE) {从A 的信箱中取出一个邮件;回答问题并提出一个新问题;将新邮件放入B 的信箱; } } B { While(TRUE) {从B 的信箱中取出一个邮件;回答问题并提出一个新问题;将新邮件放入A 的信箱; } } Code End |
当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。
当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。
请添加必要的信号量和P、V(或wait, signed)操作,以实现上述过程的
同步,要求写出完整过程,并说明信号量的含义和初值。
【参考答案】
Semaphore mutexA=1; Semaphore mutexB=1; Semaphore emptyA=M; Semaphore emptyB=N; Semaphore fullA=0; Semaphore fullB=0; Code Begin A{ While(TRUE) { P(fullA); P(mutexA) Get a mail from A_mailbox; V(mutexA); V(fullA); Answer the question and raise a question; P(emptyB); P(mutexB) send the mail to B; V(mutexB); V(emptyB); } } B{ While(TRUE) { P(fullB); P(mutexB) Get a mail from B_mailbox; V(mutexB); V(fullB); Answer the question and raise a question; P(emptyA); P(mutexA) send the mail to A; V(mutexA); V(emptyA); } } Code End |
评论前必须登录!
注册