操作系统复习大纲和复习题 下载本文

1.若一程序运行时独占系统全部资源,资源的状态只受该程序而改变,程序执行结果不受外界因素的影响,这是指( )。

A.序顺序执行的顺序性 B.程序顺序执行的封闭性 C.程序顺序执行的可再现性 D.并发程序失去封闭性 [答案]:B

2.不属于进程3种基本状态的是( )。

A.运行态 B.就绪态 C.后备态 D.阻塞态 [答案]:C

3.下面关于并行性和并发性说法正确的是( )。

A.并行性是指2个或2个以上的事件在同一时间段内发生 B.并发性是指2个或2个以上的事件同一时刻发生 C.在单处理机系统中2个或2个以上的进程可并行执行 D.在单处理机系统中2个或2个以上的进程可并发执行 [答案]:D

4.已经获得了除处理器以外的所有必要资源的进程处于( )。

A.执行状态 B.完成状态 C.就绪状态 D.阻塞状态 [答案]:C

5.多个进程同时存在于一个系统内,能在同一时间段内运行,被称为进程的( )。

A.动态性 B.异步性 C.封闭性 D.并发性 [答案]:D

6.进程一旦被建立,它的( )就进入内存,直到进程被撤消。

A.进程控制块PCB B.程序段 C.数据集 D.上下文 [答案]:A

7.处理器设计成两种执行状态:系统态和用户态,是为了( )。

A.加快系统的运行速度 B.实现系统程序的共享

C.实现用户程序的保密 D.防止用户程序对操作系统的破坏 [答案]:D 二、填空题

1.进程同步机制应遵循的4条准则是,空闲让进、忙则等待、___________和让权等待。 [答案]:有限等待

2.消息传递系统实现方式有2种,一种是直接通信方式,另一种是___________。 [答案]:间接通信方式

3.程序并发执行所产生的特征是间断性、失去封闭性和___________。 [答案]:不可再现性 4.执行一次信号量S的P(S)操作,使信号s.value的值减1后,若s.value 的值___________

时,调用进程阻塞等待。 [答案]:<0 5.一进程因请求某事件发生而无法再执行时,__________调用阻塞原语使其进入阻塞状态。 [答案]:该进程

6.信号量是代表资源物理实体的数据结构,当它为一组并发进程而设置,代表共享的临界

资源时,每个进程都可以对它施加P、V操作,我们称它为___________信号量。 [答案]:互斥

7.原语是一种特殊的广义指令,又称原子操作,它应该在___________的状态下执行。 [答案]:不可中断

6

三、判断改错题

判断下列各题正误,正者打“√”,误者打“×”,并将具体修改内容写在该题的下面,但有下划线部分不能改。

1.多个进程使用临界资源时可以并发使用。 [答案]:×,将“可以并发使用”改成“应该互斥使用”。

2.像打印机这类一次只允许一个进程使用的资源称为临界资源。 [答案]:√。 四、简答题

1.简述进程的5个特征。 [答案]:进程具有5个特征:

(1)动态性:进程是程序的执行过程,它由创建而产生,由调度而执行,因得不到资源而暂停,并由撤销而死亡。

(2)并发性:多个进程实体同存于内存中,能在一段时间内同时运行。 (3)独立性:进程是一个独立获得资源和独立调度的单位。 (4)异步性:进程按各自独立的不可预知的速度向前推进。

(5)结构特征:从结构上看,进程实体由程序段、数据段和进程控制块3部分组成。 2.什么叫进程同步机制?请叙述进程同步机制的4条准则。 [答案]:

用于保证多个进程在执行次序上的协调关系的相应机制,称为进程同步机制。 进程同步机制的4条准则:

(1)空闲让进。当无进程在临界区时,允许一个请求进入临界区的进程立即进入自己的临界区。

(2)忙则等待。当已有进程进入其临界区时,其他试图进入临界区的进程必须等待。

(3)有限等待。对要求访问临界资源的进程,应保证它在有限时间内进入临界区。 (4)让权等待。当进程不能进入其临界区时,应立即释放处理器。 五、应用题

1.假设有一个计算进程CP和一个打印进程PP,进程CP将计算结果送入由5个缓冲区组

成的缓冲池,进程PP从该缓冲区中取出数据并打印。为实现进程同步,设置信号量SC、SP,送数指针in、 取数指针out。同步算法如下: struct semaphore SC,SP=5,0; message buffers[5]; int in,out=0,0; message x,y; cobegin

void CP( )

{ while (TRUE){

计算下一个数据到x; ① ; buffers[in]=x; ② ; ③ ; } }

void PP( )

7

{ while (TRUE){ ④ ; y=buffers[out]; ⑤ ; ⑥ ; 打印y中的数据; } } coend 问:(1)指出信号量SC、SP初值的物理意义?

(2)要求打印进程打印的数据与计算进程计算的数据个数、次序完全一致,在括号内填入有关的语句,完善程序。 [答案]:

(1) 信号量SC的初值为5,意味着系统开始时计算进程CP可向缓冲池送5个数据;

而信号量SP的初值为0,意味着系统开始时打印进程PP在缓冲池中没有可以取的数据。

(2)①处填 P(SC)

②处填 in=(in+1) % 5 ③处填 V(SP) ④处填 P(SP) ⑤处填 out=(out+1) % 5 ⑥处填 V(SC)

2.下面是用信号量机制解决生产者——消费者问题需要完善的程序:

struct semaphore mutex,SP,SC=1,n,0; message buffers[n]; int in,out:=0,0; message x,y; cobegin

void P( )

{ while (TRUE){

生产一个消息送x; P (SP); ① ; buffers[in]=x; in=(in+1) mod n;

V(mutex);

② ; } } void C( )

{ while (TRUE) { p(SC); p(mutex);

y=buffers[out]; out=(out+1) % n;

8

③ ; ④ ; 消费y 中的消息; } } coend 问:(1)指出信号mutex、SP、SC初值的意义? (2)在括号内填入有关的语句完善上述程序。 [答案]:

(1)mutex是互斥信号量,初值为1,表示开始时无进程在临界区,对in,out互斥。

SP是同步信号量,初值为N,表示开始时生产者可向缓冲区送n个数据。 SC是同步信号量,初值为0,表示开始时缓冲区中没有消费者取的数据。 (2)①处填 P(mutex)

②处填 V(SC) ③处填 V(mutex) ④处填 V(SP)

第4章自测题

一、单项选择题,在四个备选答案中选一个合适的答案

1.银行家算法是一种( )的方法,它能使系统不发生死锁。

A.死锁预防 B.死锁检测 C.死锁避免 D.死锁解除 [答案]:C

2.为进程一次性分配其所需的资源是一种( )的方法,它能使系统不发生死锁。

A.死锁预防 B.死锁检测 C.死锁避免 D.死锁解除 [答案]:A

3.在( )的情况下不可能产生死锁的。

A. 多道程序环境中系统资源有限 B.使用同类临界资源的并发进程随机交替运

C.就绪队列中已无等待的进程 D.规定进程一旦得到了需要的所有资源才投入运行 [答案]:D

4.下面不属于研究死锁问题的是( )。

A.死锁的显示 B.死锁的预防 C.死锁的避免 D.死锁的检测 [答案]:A 二、填空题

1.产生死锁的原因,一是竞争资源,二是进程的___________不当。 [答案]:推进顺序

2.死锁是系统中两个或两个以上的进程由于竞争系统资源而出现的一种 现象。 [答案]:相互等待 三、判断改错题

判断下列各题正误,正者打“√”,误者打“×”,并将具体修改内容写在该题的下面,但有下划线部分不能改。

1.利用系统的安全状态可避免死锁,因此每次为进程正式分配资源后要执行一次银行家算法。

[答案]:×,将“分配资源后”改成“分配资源时”。

9

2.当系统中的进程均处于阻塞状态时,此时系统一定发生了死锁。 [答案]:×,将“一定发生了死锁”改成“可能发生了死锁”。

四、简答题

1.假定由5个进程{PA、PB、PC、PD、PE}和三种资源A、B、C的数量分别为7、5、10。在T0时刻若有以下分配情况:

最大需求 已分配 A B C A B C

PA 2 1 3 0 1 2 PB 3 4 7 0 3 0 PC 3 1 4 2 1 0 PD 2 5 9 2 0 3 PE 2 2 2 1 0 2

请判断系统当时是否是安全的?此算法用在何处?起什么作用? [答案]:

当时系统是安全状态的,因为找到了一条安全分配序列PA、PC、PB、PD、PE。

该算法被银行家算法调用。银行家算法中试分配资源后调用该算法分析试分配后的系统是否仍处于安全状态,若安全的则正式分配,否则作废试分配,以防止系统进入不安全状态,从而避免发生死锁。

2.什么是资源分配图?资源分配图如何化简? [答案]:

资源分配图是一种描述系统当前状态的图,图中有进程结点、资源结点以及两种不同结点之间的有向边。

资源分配图化简方法:从资源分配图中找既非孤立又非阻塞的进程结点,将该结点直接有关的有向边全删去,重复上述过程直到图中找不到既非孤立又非阻塞的进程结点为止。 五、应用题

1.假设有如下资源分配状态如下:

进程名 Allocation Need Available ABCD ABCD ABCD

P0 2 0 1 1 2 1 0 0 1 0 2 0 P1 2 1 0 0 1 1 1 2 P2 1 1 1 0 3 1 0 0 P3 1 1 0 1 0 0 2 0 P4 1 0 0 0 2 1 1 0 问:(1)请检测此时系统是否安全?写出检测过程。 (2)如果此时P1提出资源请求(1,0,1,0),系统能否马上给予分配?为什么? [答案]:

(1)试找安全分配序列如下:

Available (1,0,2,0)→(2,1,2,1)→(4,1,3,2)→(6,2,3,2)→(7,3,4,2)→(8,3,4,2)

10