第二章 进程管理
一、单项选择题
1、在单一处理机上执行程序,多道程序的执行是在(B)进行的。
A.同一时刻 B. 同一时间间隔内 C.某一固定时刻 D. 某一固定时间间隔内 2、引入多道程序技术后,处理机的利用率( C)。
A.降低了 B. 有所改善 C.大大提高 D. 没有变化,只是程序的执行方便了 3、顺序程序和并发程序的执行相比,( C)。
A.基本相同 C.并发程序执行总体上执行时间快 B. 有点不同 D.顺序程序执行总体上执行时间快
4、单一处理机上,将执行时间有重叠的几个程序称为(C )。 A.顺序程序 B. 多道程序 C.并发程序 D. 并行程序 5、进程和程序的本质区别是(D )。
A.存储在内存和外存 B.顺序和非顺序执行机器指令
C.分时使用和独占使用计算机资源 D.动态和静态特征
6、进程就是程序在并发环境中的执行过程,它是系统进行资源分配和调度的一个基本单位。进程具有[1A]、[2D]、调度性、异步性和结构性等基本特征。进程是一次执行过程,具有生命期体现了进程的[1]特征。进程由程序段、[3B]、[4C]组成,其中[4]是进程在系统中存在的唯一标识。
供选择的答案:
[1][2] :A、动态性 B、静态性 C、共行性 D、并发性 E、可执行性 F、易用性 [3] :A、过程 B、数据 C、进程标识符 D、函数 [4] :A、FCB B、FIFO C、PCB D、JCB
7、进程执行时的间断性,决定了进程可能具有多种状态。进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由[1D]进入[2A]。如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一进程,并将处理机分配给它,此时该进程进入[3D],这个过程是由[4C]来完成。供选择的答案:
[1][2][3] :A、就绪状态 B、静止状态 C、阻塞状态 D、运行状态
[4] :A、进程控制程序 B、资源分配程序 C、进程调度程序 D、处理机分配程序 8、为描述进程的动态变化过程,采用了一个与进程相联系的(C ),根据它而感知进程的存在。 A.进程状态字 B. 进程优先数 C.进程控制块 D. 进程起始地址 9、下列进程状态的转换中,哪一个是不正确的( C)。
A. 就绪->运行 B. 运行->就绪 C. 就绪->阻塞 D. 阻塞->就绪 10、下列各项步骤中,哪一个不是创建进程所必须的步骤( B)。 A. 建立一个进程控制块PCB B. 由CPU调度程序为进程调度CPU C. 为进程分配内存等必要的资源 D. 将PCB链入进程就绪队列 11、在下列特性中,哪一个不是进程的特性( C)。 A. 异步性 B. 并发性 C. 静态性 D. 动态性
12、在单处理机系统中,处于运行状态的进程(A )。
A.只有一个 B. 可以有多个 C.不能被挂起 D. 必须在执行完后才能被撤下 13、如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进入( C) A.自由状态 B. 停止状态 C.阻塞状态 D. 静止状态
14、已经获得除( C)以外的所有运行所需资源的进程处于就绪状态。 A.存储器 B. 打印机 C. CPU D. 磁盘空间
1 / 13
15、一个进程被唤醒意味着(B )。
A.该进程重新占有了CPU B.进程状态变为就绪 C.它的优先权变为最大 D.其PCB移至就绪队列的队首 16、进程从运行状态变为阻塞状态的原因是(A)。
A.输入或输出事件发生 B.时间片到 C.输入或输出事件完成 D.某个进程被唤醒 17、在操作系统中同时存在多个进程,它们( C)。 A. 不能共享系统资源 B. 不能调用同一段程序代码
C. 可以共享允许共享的系统资源 D. 可以共享所有的系统资源 18、操作系统中有一组常称为特殊系统调用的程序,它不能被系统中断,在操作系统中称为( B)。 A.初始化程序 B. 原语 C.子程序 D. 控制模块 19. 作业调度的关键在于( B)。
A.选择恰当的进程管理程序 B.选择恰当的作业调度算法 C.用户作业准备充分 D.有一个较好的操作环境
20、进程间的同步与互斥,分别表示了各进程间的( B)。
A.相互独立与相互制约 B.协调与竞争 C.不同状态 D. 动态性与独立性
21、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的(A )关系。 A.同步 B. 互斥 C.竞争 D. 合作
22、在一段时间内,只允许一个进程访问的资源称为(C )。 A. 共享资源 B. 临界区 C. 临界资源 D. 共享区 23、操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是(C )。 A. S>0 B. S=0 C. S<0 D. S≤0
24.设有n个进程共享一程序段,而每次至多允许m 个进程进入该程序段(n>m),则所采用的互斥信号量的取值范围可能是(D )
(A)-n到m间的所有整数 (B)0到n-m间的所有整数 (C)m-n到n-m间的所有整数( D)m-n到m间的所有整数
25.设有5个进程共享一互斥段,如果至多允许两个进程同时进入,则所采用的互斥信号量初值是(B )(西安理工大学 2000) (A)5 (B)2 (C)1 (D) 0
26.如果系统中有n个进程,则就绪队列中进程个数最多有(C) (A)n+1 (B)n (C) n-1 (d)1 27.在操作系统中,( B)是竞争和分配计算机系统资源的基本单位。 A程序 B进程 C作业 D用户
28.10个进程共享3台打印机,则与打印机对应的互斥信号量的初值应是( A) A3 B10 C7 D1
29.P、V操作是(A )
A两条低级通信原语 B两条高级通信原语 C两组不同的机器指令 D两条系统调用命令 30.消息缓冲队列中的临界资源是( C) A信箱 B队列中的某个消息缓冲区 C整个消息缓冲队列 D无临界资源存在 31.分时系统中,一运行进程用完了分给它的时间片后,还未完成计算任务,它的状态将变为(A ) A就绪 B阻塞 C运行 D挂起
32.分时系统经常采用的调度算法是( C)
A先来先服务 B优先数算法 C时间片轮转算法 D随机算法
2 / 13
33. 进程是程序的执行过程,可以处于不同的状态,这种性质称作进程的(A ) A、动态性 B、并发性 C、调度性 D、异步性
34、进程的动态、并发等特征是利用( D)表现出来的 A、程序 B、数据 C、程序和数据 D、进程控制块 35. 时间片轮转法进行进程调度是为了( A )。 A. 多个终端都能得到系统的及时响应 B. 先来先服务
C. 优先级较高的进程得到及时响应 D.需要cpu最短的进程先做
36. 某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将(D )。 A.从就绪变为运行 B.从运行变为就绪 C.从等待变为就绪 D.从运行变为等待
37. 在采用微内核结构的操作系统中,处理机调度的基本单位是(B ) A、微指令 B、进程 C、作业 D、线程 38. 用户在一次计算过程中,或一次事物处理中,要求计算机完成所做工作的集合,这是指( C)。 A.进程 B.程序 C.作业 D.系统调用 二、多项选择题
1.下述进程状态转换中,不可能的是(be )
A执行态到就绪态B阻塞态到执行态C阻塞态到就绪态D执行态到阻塞态E就绪态到阻塞态 2.下面列出的是系统选择进程调度算法的准则,其中面向用户的有( cd) A吞吐量高B公平性原则C响应时间快D周转时间短E各类资源的均衡利用 3.产生死锁的原因是(cd )
A系统处于不安全状态B并发执行的进程数太多C系统资源不足D进程推进顺序不当 三、应用题
1.在一个只允许单向行驶的十字路口,分别有若干由东向西,由南向北的车辆在等待通过十字路口。为了安全,每次只允许一辆车通过(东向西或南向北)。当有车辆通过时其它车辆等待,当无车辆在路口行驶时则允许一辆车进入。请用PV操作实现能安全行驶的自动管理系统。(西安电子科技大学2001) var s:semaphore; s=1; begin parbegin
EastToWest:begin
P(s);
通过十字路口; V(s); End
SouthToWest: begin
P(s);
通过十字路口; V(s); End
Parend
End(本题属于简单的两进程同步问题)
2.有一材料保管员,负责管理纸和笔。另有A、B两组学生,A组学生每人都备有纸,B组学生都备有笔任一学生只要能得到其它任一种材料就可以写信。有一个可以放一张纸或一支笔的
3 / 13
小盒,当小盒中无物品时,保管员就可以任意放一张纸或一支笔供学生取用。当盒中有学生所需材料时,每次允许一个学生从中取出自己所需的材料,当一个学生从盒中取走材料后,允许保管员再存放一件材料。请用管程写出他们并发执行时能正确工作的程序(哈尔滨工业大学1999)
条件变量s表示保管员放材料的条件;条件变量paper表示学生取纸的条件;条件变量pencil表示学生取笔的条件。empty=1表示小盒为空,empty=0表示小盒非空。管程描述如下: 3.理发师问题(西安电子科技大学2000) var customers,barber,s:semaphore; barber=0; customers:=0; s:=1;
waiting,chairs:interger; waiting:=0; chaires:=n; begin parbegin barber:begin
p(customers); p(s);
V(barber);{空出理发师椅子} 等待的顾客坐到理发椅子上;
waiting:=waiting-1;{等待的顾客减少一个,空椅子增加一个} v(s); 理发。。。; end
customers:begin p(s);
if(waiting>=chairs) then v(s);{没有空椅子,顾客就离开} else begin
waiting:= waiting+1;{等待的顾客增加一个,空椅子减少一个} v(customers); v(s);
坐在空椅子上等待; p(barber);{申请理发椅子} end
end parend end
分析:本题属于生产者消费者问题。其特点是多个生产者(顾客),并且生产者数目受限(n把空椅子),消费者只有一个(理发师)。消费者缓冲区和生产者缓冲区不共用,且数目不一样。值得注意的是waiting的改变必须在p(s)和v(s)中进行,并且由于消费者缓冲区小于生产者缓冲区,因此消费者缓冲区状态应时刻被关注,本题中即p(barber)的作用。
4.一批数据n个,每个数据经计算进程计算后存入缓冲区,缓冲区有数据时,打印进程从缓冲
4 / 13
区中取出数据进行打印,用pv操作描述计算和打印进程的同步算法。 分析:本题是典型的生产者-消费者问题。
5.某火车订票系统,提供给多个用户同时共享一个订票数据库。规定多个用户允许同时查询该数据库,有查询者时,用户不能订票;有用户订票而需要更新数据库时,不可以有其它用户使用数据库。请用PV操作描述查询和订票者的同步执行程序。 分析:本题是典型的读者-写者问题。
下面改一下要求:规定多个用户允许同时查询该数据库,当有定票者到达时,不允许后来者查询数据库,且多个订票者可以互斥使用数据库。 Var rmutex,wmutex,r,w:=semaphore:=1,1,1,1; Readcount:integer:=0; Writecount;integer:=0; Begin
Parbegin
Inquirer:begin Repeat P(r);
P(rmutex);
If readcount:=0 then p(w); Readcount:=readcount+1;
V(rmutex);
V(r);
查询数据库; p(rmutex);
readcount:=readcount-1; if readcount=0 then v(w); v(rmutex); until false; end
booker:begin Repeat
P(wmutex);
If writecount:=0 then p(r); writecount:=writecount+1;
V(wmutex);
p(w);
使用数据库,订票; v(w);
p(wmutex);
if writecount =0 then v(r); writecount:=writecount-1; v(wmutex); until false; end parend
5 / 13
end
6.试从多个方面比较线程和进程 从四个方面:
(1) 调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进
程。而在引入线程的os中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位。使传统进程的两个属性分开,线程便能轻装运行,从而可显著地提高系统的并发程度。在同一进程中,线程的切换不会引起进程切换,在由一个进程中的线程切换到另一进程中的线程时,将会引起进程切换。(2)并发性:在引入线程的os中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。(3)拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位。一般地说,线程不拥有系统资源,但它可以访问期隶属进程的资源。(4)系统开销:创建或撤销进程时,系统都要为之分配或回收资源。而线程切换只需保存和设置少量寄存器的内容。因此,进程切换的开销远大于线程切换的开销。
7.汽车司机与售票员之间必须协同工作。假定某辆公共汽车上有一名司机与两名售票员,汽车当前正在始发站停车上客,写出它们的同步过程(用管程或信号量机制均可)(哈尔滨工业大学2000)
var run1 run2,stop1,stop2:semaphore:=0,0,0,0; begin parbegin
driver:begin repeat
p(run1); p(run2); 开车; 停车; v(stop1); v(stop2); until false end
seller1:begin repeat 上乘客;
关车门; v(run1); 售车票; p(stop1); 开车门; 下乘客;
until false end
seller2:begin
repeat
上乘客;
6 / 13
关车门; v(run2); 售车票; p(stop2); 开车门; 下乘客;
until false end parend end
分析:司机必须等到两个售票员都完成关车门后(两次p操作)才能开车,同样到站后应让两个售票员都知道(两次v操作)
8.今有三个并发进程R、M、P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有N个单元。进程R负责从输入设备读信息,每读一个字符后,把它存入到缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格,则把它改成“,”;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。请用PV操作为同步机制写出它们能正确并发执行的程序。
设置四个信号量:
mutex:用于实现对缓冲区的互斥访问,初值为1; empty:表示缓冲区中可用单元数目,初值为N; full1:表示已读入字符个数,初值为0; full2:表示已处理字符个数,初值为0。 相应地设置in,out1,out2. Semaphore mutex=1; Semaphore empty=N; Semaphore full1=0; Semaphore full2=0; Char bhffer[N];
Int in=0,out1=out2=0; Main() {
cobegin R(); M(); P(); Coend } R() {
while(true) {
char x;
读入一个字符到x; p(empty);
7 / 13
p(mutex); buffer[in]=x; in=(in+1)%N; v(mutex); v(full1); } } M() {
char x; while(true) { p(full1); p(mutex);
x=buffer[out1]; if(x==” “) {
x=”,”;
buffer[out1]=x; }
out1=(out1+1) % N; v(mutex); v(full2); } } P() {
char x; while(true) {
p(full2) p(mutex); x=buffer[out2]
out2=(out2+1) % N; v(mutex); v(empty); 输出字符x; } }
9.一个数据采集系统,有数据采样进程和数据处理进程及数据输出进程。采样进程把采到的数据送到buf1中,由数据处理进程取出处理并存入buf2中,然后由数据输出进程将其从buf2中输出,试给出实现三个进程同步的算法。
empty1=empty2=1; full1=full2=0;
8 / 13
A() {
while(true) {
采集一个数据; p(empty1);
将数据存入buf1; v(full1); } } B() {
while(true) {
p(full1);
从buf1中取出数据; v(empty1); 处理数据; p(empty2);
将处理结果存入buf2; v(full2); } } C() {
while(true) {
p(full2);
从buf2中取出结果; v(empty2); 打印输出; } }
10.超市可容纳50人同时购物,入口处有篮子,每个顾客可拿一只篮子入内购物,出口处结账,并归还篮子(出入口禁止多人同时通过)
分析:(1)购物者进超市需要互斥,超市是临界资源(设信号量S=50)
(2) 入口拿篮子以及结账互斥。设mutex=1
购物者i进程: P(S); P(mutex); 从入口拿篮子 V(mutex); 选购商品; P(mutex);
9 / 13
出口结账 V(mutex); 离开超市 V(S);
以上为出入口合一的情况。若出入口分开,如何实现? 设两个互斥信号量:mutex1=1; mutex2=1
若设置一个信号量会怎样?(如果一个结账的话其他顾客无法进入超市)
11.桌上有一个只能盛得下一个水果的空盘子,爸爸放水果,儿子专吃桔子,女儿专吃苹果。 分析:
(1)设互斥信号量empty=1 (2)设同步信号量orange=0 (3) 设同步信号量apple=0 爸爸:(生产者) P(empty);
将水果放入盘中;
若放入的是桔子,则V(orange) 否则V(apple);
儿子(消费者1) P(orange); 取桔子 V(empty); 吃桔子
女儿(消费者2)类似于进程 12.和尚吃水问题
寺庙里住着一群老和尚和一群小和尚,小和尚负责挑水喝。庙里有5个水桶和一个大缸,大缸可盛8桶水。大缸每次只允许一个人使用。请写出他们之间的同步问题。 资源信号量:s1=5;表示水桶的数量 s2=8;表示缸空的数量(水桶) s3=0;表示缸满的数量(水桶)
互斥信号量:mutex=1;用于互斥的使用大缸 小和尚: P(s1); 取水桶; 挑水; P(s2); P(mutex); 往水缸倒水; V(mutex); V(s3); V(s1); 老和尚: P(s3); P(mutex); 吃水;
10 / 13
V(mutex); V(s2);
13.试用信号量机制描述两人下象棋的过程
类似于一个生产者和一个消费者利用单缓冲(棋盘)通信的例子
14.设AB两点之间是一段东西向的单行车道,现在要设计一个AB路段自动管理系统,规则如下:当AB间有车辆在行驶时同方向的车可以驶入,另一方向的车必须在AB段外等待;当AB段之间无车辆行驶时,任一方向到达的车都可驶入,但不能从两个方向同时驶入;当某方向在AB段行驶的车辆驶出了AB段且暂无车辆进入AB段时,应让另一方向等待的车辆进入AB段行驶。试用信号量和P、V操作管理AB路段车辆的行驶
分析:这是读者—写者问题的变形,相当于两组读者(即两个方向的车辆)访问同一个共享文件(即AB路段)的互斥问题。 (1)信号量及其设置
S1、S2初值均为0,分别用于对从A、B点驶入AB的车辆计数
互斥信号量mutex,初值为1,用于实现不同方向的第一辆车互斥驶入AB路段。 互斥信号量ma、mb,初值均为1,分别用于两个方向的车互斥的访问计数器变量。 向西行驶的车辆: P(ma);
If S1=0 then P(mutex); S1++; V(ma);
车辆从A点通过AB路段到达B点 P(ma); S1--;
If S1=0 then V(mutex); V(ma);
向东行驶的车辆: P(mb);
IfS2=0 then P(mutex); S2++; V(mb);
车辆从B点通过AB路段到达A点 P(mb); S2--;
If S2=0 then V(mutex); V(mb);
15.在4×100接力赛中,四个运动员之间存在如下关系:1号传给2号,2号传给3号,3号传给4号,4号跑完全程。试用信号量机制进行描述。 用前驱图描述:
运动员1——运动员2——运动员3——运动员4
信号量 S12 S23 S34 初值均为0 运动员1:
11 / 13
持棒跑100米; 交棒给运动员2; V(S12);
运动员2: P(S12);
持棒跑100米; 交棒给运动员3; V(S23);
运动员3同运动员2
运动员4: P(S34);
持棒跑100米;
16.今有一文件F供A、B两组进程共享,规定同组的进程可以同时读文件F;但当有A组(或B组)的进程在读文件F时就不允许B组(或A组)的进程读文件。
定义整形计数器变量C1和C2,分别记录A组和B组中读文件F的进程数,初值均为0.设置3个初值均为1的信号量S1、S2和SAB。 进程Ai:
_______________; 将C1加1;
若C1=1 则_________________;
_________________; 读文件F;
__________________; 将C1减1;
若C1=0 则________________;
_________________;
进程Bi:
_______________; 将C2加1;
若C2=1 则_________________;
_________________; 读文件F;
__________________;
12 / 13
将C2减1;
若C2=0 则________________;
_________________; 要求:(1)说明信号量S1、S2、SAB的作用;
S1是用于A组进程互斥使用计数器C1的互斥信号量;S2是用于B组进程互斥使用计数器C2的互斥信号量;SAB是用于A、B两组进程互斥访问文件F的互斥信号量 (2)填上合适的P、V操作
P(S1),P(SAB),V(S1),P(S1),V(SAB),V(S1);P(S2),P(SAB),V(S2),P(S2),V(SAB),V(S2) 17. 设有两个进程P、Q;Q的优先级高于P,同时进入就绪队列;各自运行的程序段如下: 进程P: P1 Y=8; P2 Y=A-Y; P3 V(S1); P4 Y=A+X; P5 P(S2); P6 X=Y+A; 进程Q: Q1 X=10; Q2 A=X+A; Q3 P(S1); Q4 X=A+Y; Q5 V(S2); Q6 A=X+Y; 其中S1、S2为信号量,初值为0,已知X、Y、A为共享变量,X、Y的初值为0,A的初值为20,若调度程序执行的策略为抢占方式优先权原则,试问:
(1) 执行序列(用Pi,Qi表示,i=1,。。。6)
变量X、Y、A的运行结果是什么? 解:(1)Q1Q2Q3(Q阻塞)P1P2P3(唤醒Q,P到就绪队列)Q4Q5Q6P4P5P6 (2)X=200;Y=126;A=74 四、填空题
1.并发执行的程序具有下列特征:___,____,_____。(间断性,失去封闭性,不可再现性) 2.一个进程是由__________,__________,__________构成,其中__________是进程存在的唯一标志,系统根据它而感知进程的存在。(程序段,数据段,PCB或进程控制块,PCB) 3.进程具有5个特征,分别是:__________,__________,__________,__________和__________,其中__________是进程最基本的特征。(结构特征,动态性,并发性,独立性,异步性,动态性) 4.进程是进程实体的__________过程,是系统进行__________和__________的一个独立单位。(运行,资源分配,调度)
5.进程的三种基本状态是:__________,__________和__________。(就绪态,执行态,阻塞态) 6.进程同步的主要任务是对多个相关进程在__________上进行协调,以使并发执行的诸进程之间能有效地__________和__________,从而使程序的执行具有__________。(执行次序,共享资源和相互合作,可在现性)
7.并发执行的程序存在着两种形式的制约关系:____和_____。(间接相互制约,直接相互制约) 8.在一段时间内只允许一个进程访问的资源称为__________。(临界资源) 9.每个进程中访问临界资源的那段代码称为__________。(临界区)
10.高级进程通信机制的类型包括:__________,__________和__________。(共享存储器系统,消息传递系统,管道通信) 11.所谓__________,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。(管道)
13 / 13