当前位置:文档之家› 3章(操作系统信号量典型题)

3章(操作系统信号量典型题)

3章(操作系统信号量典型题)
3章(操作系统信号量典型题)

第三章 进程的同步与通信

1.3 临界资源(critical resource ) 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。如磁带机,打印机等。 1.4 临界区(critical section) 一个程序片段的集合,我们把在每个进程中访问临界资源的那段代码称为临界区。 1.5进程的同步(直接作用) 指系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。

1.6 进程的互斥(间接作用) 由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。

2.进程的互斥

2.1临界区的使用原则

1)空闲让进:当无进程在临界区时,任何有权使用临界区的进程可进入。

2)忙则等待:不允许两个以上的进程同时进入临界区。

3)有限等待:任何进入互斥区的要求应在有限的时间内得到满足,以免陷入“死等”。

4)让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进入“忙等”。

2.2解决互斥问题的方法

?有两个进程Pi, Pj ,其中的Pi

软件方法:

算法1:单标志while (turn != i);critical section turn = j;

remainder section

?设立一个公用整型变量turn :描述允许进入临界区的进程标识

–在进入区循环检查是否允许本进程进入:turn 为i 时,进程Pi 可进入;

–在退出区修改允许进入进程标识:进程Pi 退出时,改turn 为进程Pj 的标识j ;

进程的实际需要。容易造成资源利用不充分:在Pi 出让临界区之后,Pj 使用临界区之前,Pi 不可能再次使用临界区;

算法2:双标志、先检查

?设立一个标志数组flag[]:描述进程是否在临界区,初值均为FALSE 。

–先检查,后修改:在进入区检查另一个进程是否在临界区,不在时修改本进程在临界区的标志;–在退出区修改本进程在临界区的标志;

while (flag[j]);flag[i] = TRUE;

critical section flag[i] = FALSE;remainder section

Pi:

? 缺点:Pi 和 Pj 可能同时进入临界区。在

Pi 和 Pj 都不在临界区时,假设按下面序列执行时,会同时进入:“Pi; Pj ; Pi; Pj”。即在检查对方flag 之后和切换自己 flag 之前有一段时间,结果都检查通过。这里的问题出在检查和修算法3:双标志、后检查

?类似于算法2,与互斥算法2的区别在于先修改后检查。可防止两个进程同时进入临界区。

flag[i] = TRUE;while (flag[j]);

critical section flag[i] = FALSE;remainder section

在Pi 和Pj 都不在临界区时,假设按下面序列执行时,会都进不了临界区:"Pi Pj Pi Pj"。即在切换自己flag 之后和检查对方flag 之前有一段时间,算法4 (Peterson ’s Algorithm):先修改、后检查、后修改者等待

?结合算法1和算法3,是正确的算法

?turn=j;描述可进入的进程(同时修改标志时)?在进入区先修改后检查,并检查并发修改的先后:

–检查对方flag ,如果不在临界区则自己进入--空闲则入–否则再检查turn :保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入--先到先入,后到等待

flag[i] = TRUE; turn = j;while (flag[j] && turn == j);critical section flag[i] = FALSE;remainder section

??分析算法4,能否出现算法3和算法2中的问题

硬件方法

?完全利用软件方法,有很大局限性(如不适于多进程),现在已很少采用。

?可以利用某些硬件指令--其读写操作由一条指令完成,因而保证读操作与写操作不被打断;

Test-and-Set 指令

该指令读出标志后设置为TRUE :

boolean TS(boolean *lock) {boolean old;

old = *lock; *lock = TRUE;return old;}

lock 表示资源的两种状态:TRUE 表示正被占用,FALSE 表示空闲

Test-and-Set 指令, 可保证在一个指令周期内对一个存储单元的读和写,其功能如右:

互斥算法(TS 指令)

?利用TS 实现进程互斥:每个临界资源设置一个公共布尔变量lock ,初值为FALSE

?在进入区利用TS 进行检查:有进程在临界区时,重复检查;直到其它进程退出时,检查通过;

while TS(&lock);lock = FALSE;critical section remainder section

相当于测试并加锁

相当于解锁

测试并加锁:lock (int *lock) {

while TS(&lock);}

解锁:

unlock (int *lock) {

* lock = FALSE;}

Swap 指令(或Exchange 指令)

交换两个字(字节)的内容

void SWAP(int *a, int *b) {int temp;

temp = *a; *a = *b; *b = temp;}

Swap 指令(或Exchange 指令), 可保证在一个指令周期内交换一个寄存器和一个存储单元内容,其工作原理如下:

互斥算法(Swap 指令)

?利用Swap 实现进程互斥:每个临界资源设置一个公共布尔变量lock ,初值为FALSE 。每个进程设置一个私有布尔变量key

key = TRUE;do {

SWAP(&lock, &key);} while (key);lock = FALSE;

critical section remainder section

?

进入临界区前执行:

执行“关中断”指令离开临界区后执行:

执行“开中断”指令

互斥算法(开关中断”指令)

特点:

?代价高,CPU 只能交替执行

?不能用于多处理机结构,因为关中断只能屏蔽本机的中断

硬件方法的优点[WS]

– 适用于任意数目的进程,在单处

理器或多处理器上(除中断方法)

– 简单,容易验证其正确性

– 可以支持进程内存在多个临界

区,只需为每个临界区设立一个布尔变量

硬件方法的缺点[WS]

– 等待要耗费CPU 时间,不能实现

"让权等待" – 可能“饥饿”(不公平):从等待进

程中随机选择一个进入临界区,有的进程可能一直选不上

– 可能死锁:进程P1执行TS 或

Exchange 指令并进入临界区,然后P1被P2中断并把CPU 给具有更高优先级的P2, 若P2试图使用与P1相同的资源,由于互斥机制,它被拒绝访问,因此进入忙等待循环,又因P2先级高于P1,所以P1总得不到调度执行。

3.信号量机制 3.1信号量简介

1965年,由荷兰学者Dijkstra 提出(所以P 、V 分别是荷兰语的test(proberen)和increment(verhogen)),是一种卓有成效的进程同步机制。

P 原语--P(s) 或wait(s)

{

--s.count;//表示申请一个资源;if (s.count <0)//表示没有空闲资源;{

调用进程进入等待队列s.queue;阻塞调用进程;}}

P(Semaphore s)

在互斥问题中,申请使用临界资源时调用它

V 原语—V(s) 或signal(s)

{

++s.count;//表示释放一个资源;if (s.count <= 0) //表示有进程处于阻塞状态;{

从等待队列s.queue 中取出一个进程P;进程P 进入就绪队列;

}

}

V 原语通常唤醒进程等待队列中的头一个进程V(Semaphore s )

功能:释放资源,或唤醒进程

使用时机:进程退出临界区之后

P.V 操作讨论

1) 信号量的物理含义: S>0表示有S 个资源可用 S=0表示无资源可用

S<0则| S |表示S 等待队列中的进程个数 P(S):表示申请一个资源

V(S)表示释放一个资源。信号量的初值应该大于 3.2利用信号量实现互斥

?为临界资源设置一个互斥信号量mutex(MUTual Exclusion),其初值为1;在每个进程中将临界区代码置于P(mutex)和V(mutex)原语之间

?必须成对使用P 和V 原语:遗漏P 原语则不能保证互斥访问,遗漏V 原语则不能在使用临界资源之后将其释放(给其他等待的进程);P 、V 原语不能次序错误、重复或遗漏

V(mutex);

critical section remainder section

P(mutex);

4. 进程的同步机制──管程 4.1管程的提出

采用PV 同步机制来编写并发程序,对于共享变量及信号量变量的操作将被分散于各个进程中 缺点:

(1)易读性差,因为要了解对于一组共享变量及信号量的操作是否正确,则必须通读整个系统或者并发程序 2)不利于修改和维护,因为程序的局部性很差,所以任一组变量或一段代码的修改都可能影响全局

(3)正确性难以保证,因为操作系统或并发程序通常很大,要保证这样一个复杂的系统没有逻辑错误是很难的 管程:一种同步机制 (管程-类程-进程) 4.2 管程定义:

指关于共享资源的数据及在其上操作的一组过程或共享数据结构及其规定的所有操作

系统按资源管理的观点分解成若干模块,用数据表示抽象系统资源,同时分析了共享资源和专用

资源在管理上的差别,按不同的管理方式定义模块的类型和结构,使同步操作相对集中,从而增加了模块的相对独立性

管程:集中式同步机制,它的基本思想是将共享变量以及对共享变量能够进行的所有操作集中在一个模块中,一个操作系统或并发程序由若干个这样的模块所构成,由于一个模块通常较短,模块之间关系清晰,提高了可读性,便于修改和维护,正确性易于保证 管程的形式

TYPE monitor_name = MONITOR; 共享变量说明

define 本管程内所定义、本管程外可调用的过程(函数)名字表

use 本管程外所定义、本管程内将调用的过程(函数)名字表

PROCEDURE 过程名(形参表); 过程局部变量说明; BEGIN 语句序列; END; ......

FUNCTION 函数名(形参表):值类型; 函数局部变量说明; BEGIN 语句序列; END; ...... BEGIN 共享变量初始化语句序列; END;

? 5. 高级通信方式

一、共享存储器系统(Shared-memory system ) 相互通信的进程共享某些数据结构或共享存储区。一组进程向该公共区中写,另一组进程从公共区中读,通过这种方式实现两组进程间的信息交换。因此又分为:

1基于共享数据结构的通信方式:进程之间能够通过某种类型的数据结构(如有界缓冲区)交换信息,如生产者和消费者问题。操作系统只负责提供共享存储区,而共享数据结构和对进程间的同步处理都是程序员的事。因而,通信效率低,只适合于传递少量信息。

一、共享存储器系统(续)

2.基于共享存储区的通信方式:

–系统在存储中划出一块共享存储区,各进程间可通

过对共享存储区中的数据进行读或写来实现通信。

–进程在通信之前应向系统申请共享存储区中的一个

分区,并指定该分区的关键字,若系统已经给其他

进程分配了这样的分区,则将该分区的描述符返回

给申请者.

–接着,申请者把获得的共享存储区连接到本进程

上,此后就像读写普通存储器一样。

–主要用于UNIX System V中。

?二、消息系统(Message System)

进程间的信息交换以消息或报文为单位,程序员利用系统提供的一组通信命令(原语)实现通信。操作系统隐藏了通信的实现细节,简化了编程的复杂性。分为两种:

?直接通信方式:发送进程发消息时要指定接收进程的名字,反过来,接收时要

指明发送进程的名字。系统提纲两条原

语:

Send(receiver,message)

Receiver(sender,message

二、消息系统(Message

System)

间接通信方式:

?收发双方进程通过某种中间实体,作为通信进程间的

媒介,即信箱(MailBox)。

?发送进程发消息时不指定接收进程的名字,而是指定

一个中间媒介。

?通常收方和发方的数目可以是任意的。这种方式广泛

应用于多机系统和计算机网络中

发送原语:send(MB,Message)

接收原语:receive(MB,Message)

信箱头

信箱体

发送进程

接收进程

三、利用共享文件的通信方式

?基于原有的文件系统形成的一种通信方式,即利用

共享文件实现进程间通信。如UNIX中的管道

(PIPE)。

写进程读进程

PIPE

1同步相关概念的理解

2信号量机制和P、V操作,并能解决实际问

题。

?三、典型例题分析

?解决互斥同步问题的主要步骤:1)分析清楚题目涉及的进程间制约关系。

2)设置信号量(包括信号量的个数和初值,

对同步问题还要写出信号量物理含义)

3)给出进程相应程序的算法描述或流程控制,并把P、V操作加到程序适当之处。

1.经典的生产者─消费者问题

消费者

生产者

缓冲区

2.读者写者问题

有两组并发进程:

读者和写者,共享一组数据区

要求:

允许多个读者同时执行读操作

不允许读者、写者同时操作

不允许多个写者同时操作

3.哲学家就餐问题

4.超市购物问题

5.理发师睡觉问题

6.售票员和司机同步

四、课堂练习

设阅览室有100 个座位,最多可以同时容纳

100 个读者,当读者进入或离开阅览室时都

必须在登记表上登记,试用

P ,V 操作编

写读者进程的同步算法。(同济大学1998

年硕士研究生入学考试试题)

例题1(北京大学1999年)

有一个仓库,可以存放A和B两种产品,仓库的存

储空间足够大,但要求:

(1)一次只能存人一种产品((A或B);

(2)一N< A产品数量一B产品数量<M

其中,N和M是正整数。

试用“存放A’和‘存放B’以及P操作和V操作

描述产品A和产品B的人库过程。

解答:

应先将表达式转换成制约条件,不可在程序中直接

使用该表达式

将表达式分解为:

B产品数量—A产品数量

A产品数量—B产品数量<M

可这样理解:

(1)若只放人A产品,而不放入B产品,则A产品最

多可放M—1次便被阻塞,即A进程每操作一次就

应当将计数器减1(计数器初值为M —1),当计数器值为0时,进程程A 被阻塞;每当放入一个B 产品,则可令A 产品的计数器增加1,表明A 产品可以多一次放入产品的机会;同理,

(2) 若只放人B 产品,而不放入A 产品,则B 产品最

多可;放N 一1次便被阻塞,即A 进程每操作一次就应当将计数器减1(计数器初值为N —1)。当计数器值为0时,进程B 被阻塞;每当放人一个A 产品,则可令B 产品的计数器增加1,表明B 产品可以多一次放入产品的机会。

由此可见,该问题是一个同步控制问题。又因为一次仅允许一种产品人库,设置信号量mutex 控制粮进程互斥访问临界资源(仓库)。过程如下: begin

mutex:=1; Sa := M-1; Sb := N-1; Parbegin A 产品 begin repeat P (Sa); P (mutex); A 人库; V (mutex); V (Sb); Until false; End;

B 产品 begin repeat

P (Sb); P (mutex); B 人库; V (mutex); V (Sa); Until false; End; rend;

例题2(华中理工大学1999年试题)

设公共汽车上,司机和售票员的活动分别是: 司机: 售票员: 启动车辆 上乘客 正常行车 关车门

到站停车 售票 开车门 下乘客

在汽车不断地到站,停车,行驶过程中,这两个活动有什么同步关系?并用信号灯的P, V 操作实现它们的同步。 解答:

该题没有给出具体的控制关系,可根据常识自己定。如(1)售票员关车门后司机才可以启动车辆。(2)司机到站停车后,票员方可开车门。由此可见本题的控制关系较为简单。过程如 下:

定义信号量run, stop ; Stop := 0 ; run :=0; Purbegin 司机:begin

L1:P (run); 启动车辆; 正常行车; 到站停车;

V (stop);

Goto Ll ; End; 售票员:begin

L2:上乘客; 关车门; V (run); 售票; P (stop); 开车门; 下乘客; gotoL2 ; end; parend.

例题3(南开大学1997年试题)

在南开大学和天津大学之间有一条弯曲的小路,其中从S 到T 一段路每次只允许一辆自行车通过,但中间有一个小的“安全岛”M (同时允许两辆自行车停留),可供两辆自行车已从两端进人小路情况下错车使用,如图4.3所示。试设计一个算法使来往的自行车均可顺利通过。

解答:

本题临界资源较多,需仔细考虑。首先中间的安全岛M 仅允许两辆自行车通过,应作为临界资源设置信号量。但仔细分析发现,在任何时刻进人小路的自行车最多不会超过两辆(南开和天大方向各一辆),因此不需为安全岛M 设置信号量。在路口S 处,南开出发的若干辆自行车应进行路口资源的争夺,以决定谁先进人小路SK 段,为此设置信号量S ,用以控制路口资源的争夺;同理,

T 的争夺。又小路SK 段仅允许一辆车通过,设置信号量SK 初值为1,同理设置小路LT 段信号量LT 初值为1。

程序如下:

S := l; T :=1; SK :=1; LT :=1; Parbegin

进程P:(南开方向自行车)

begin

天大

P(S) ; {与其它同方向的自行车争夺路口S}

P(SK); {同对面自行车争夺路段SK}

通过SK;

进人M;**

V (SK);{一旦进人M,便可释放路段SK}

P (LT) ; {同对面的自行车争夺路段LT}

通过LT;

V (LT);{将路段LT释放}

V(S); {将路口S释放给同方向的正在路口S 处等待的自行车}

end,

进程Q:(天大方向自行车‘)

begin

P(T);

P(LT);

通过LT;

进人M;

V(LT);

P(SK);

通过SK;

V(SK);

V(T);

End;

Parend。

说明**:

P进程进人安全岛M后,释放了路段SK,但没有释放路口S,原因在于它是向对面的4进程释放路段资源SK,而在P进程离开小路LT后,才会将路口S释放给其他P进程,如不这样,就会死锁。请考虑如下情况:两个方向各有一辆车前进,若在P进程到达安全岛M后,执行V (S)及V (SK)操作,则有可能使得同方向的其它P 进程得到路段SK的使用权,而进人小路;同理,Q进程到达安全岛后执行V (LT)及V (T)操作,有可能使得同方向的其它Q进程得到路段LT而进人小路。此时共有四辆车在整个路径中,最终出现死锁状态。

例题4(北京理工大学1996年试题)

进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种

制约关系?

(1)若干同学去图书馆借书;

(2)两队举行篮球比赛;

(3)流水线生产的各道工序;

(4)商品生产和社会消费。

解答:

有直接制约关系(即同步问题)和间接制约关系(即互斥问题);同步问题是存在逻辑关系的进程之间相互等待所产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用资源所发生的制约关系。

(1)约属于互斥关系,因为书的个数是有限

的,一本书只能借给一个同学;

(2)属于互斥关系,篮球只有一个,两队都要

争夺;

(3)属于同步关系,各道工序的开始都依赖前

道工序的完成;

(4)属于同步关系,商品没生产出来,消费无

法进行,商品未消费完,生产也无须

进行。

例题5。(北京邮电大学1999年试题)

某招待所有100个床位,住宿者住人要先登记(在登记表上填写姓名及床位号),离去时要撤消登记(在登记表上删去姓名和床位号)。请给出住宿登记及撤消登记(退宿)过程的算法描述。

解答:

该题同有限缓冲区的生产者/消费者问题一致,缓冲单元为100个,顾客人住时执行生产者操作,登记过程对应于放产品过程,故对登记表的修改须互斥执行,当床位客满时便不可人住(即放产品). 顾客离开时执行消费者操作, 退宿过程对应于取产品过程,包括修改登记表,删去姓名(即取产品),并将床位归还(空出一个单元)。

过程: 略

例题6。(南京大学2000年试题)

桌子上有一只盘子,最多可容纳两个水果,每次只能放人或取出一个水果。爸爸专向盘子中放苹果(apple),妈妈专向盘子中放橘子(orange),两个儿子专等吃盘子中的橘子,两个女儿专等吃盘子中的苹果。请用P, V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。

解答:

盘子为互斥资源,因可以放两个水果,empty初值为2; father放苹果前先看看有无空间,若有则抢盘子,放人apple。后向女儿发信号(V (apple)); mother放橘子前先看看有无空间,若有则抢盘子,放人橘子后向儿子发信号(V (orange));女儿先看有无苹果,若有则抢盘子,取走苹果后将盘子置空(V (empty));儿子先看有无橘子,若有则抢盘子,取走橘子后将盘子置空。

该题是生产者/消费者问题的变形,有两对生产者和消费者。生产者需指明是给哪个消费者的产品,但消费者取走产品后无须特别通知某个生产者,因为空出的缓冲区(盘子)可由两个生产者随意争夺。

设信号量mutex初值为1,控制对盘子的互斥访问;apple表示盘中苹果个数,orange表示盘中橘子个数,初值均为0.

parbegin

father:

begin

Ll:P( empty);

P(mmex );

放苹果;。

V (mutex);

V(apple);

Goto Ll ;

End;

mother:

begin

L2: P(empty) ;

P(mutex);

放橘子;

V (murex );

V(orange);

Coto L2;

End;

daughter:

begin

L3: P(apple);

P(mutex);

取苹果

V (murex);

V(empty);

Goto L3 ;

End;

son:

begin

L4: P(orange);

P(mutex);

取橘子

V (mutex);

V (empty) ;

GotoM;

End;

Parend

例题7。

某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A, B两种零件,装配车间的任务是把A, B 两种零件组装成产品。两个生产车间每生产一个零件后都要分别把它们送到装配车向的货架F1, F2上,Fl存放零件A, F2存放零件B, Fl和F2的容量均为可以存放10个零件。装配工人每次从货架上取一个A零件和一个B 零件然后组装成产品。请用PV操作进行正确管理。

解答:

该题是生产者/消费者问题的变形,可认为一个消费者(装配工人)同两个生产者(A, B车间)互斥使用两个缓冲区(Fl, F2),可设mutexl,mutex2(初值为1)控制进程对Fl, F2的互斥操作,另设一emptyl, empty2(初值均为10), fulll, full2(初值均为0)。

过程如下:

parbegin

A车间:begin

Ll:生产一个产品;

P (emptyl);

P (mutexl);

放人Fl;

V (mutexl);

V (full));

Goto Ll;

End;

B车间:begin

L2:生产一个产品;

P (empty2);

P (mutex2);

放人F2;

V (mutex2);

V (full2);

Goto L2;

装配工人:begin

L3:P(full 1);

P (full2);

P (mutexl);

P (mutex2);

取A和B;

V (mutex1);

V (mutex2);

V (emptyl);

V (empty2);

Goto L3;

End;

Parend. 例题8(北京邮电大学1998年试题)

某寺庙,有小、老和尚若干,有一水缸,由小和尚提水人缸(向缸中倒水)供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个捅取水。水桶总数为3个。每次人、取缸水仅为1桶,且不可同时进行。试给出有关从缸中取水和向缸中倒水的算法描述。

解答:

应首先考虑清楚本题需要几个进程。从井中取水后向缸中倒水为连续动作,可算同一进程,从缸中取水为另一进程。

再考虑信号量.有关互斥的资源有水井(一次仅一个水桶进出)和水缸(一次入、取水为一桶),分别为之设信号量mutexl , mutex2控制互斥;

另有同步问题存在:三个水桶无论从井中取水还是人出水缸都是一次一个,应为之设信号量count,抢不到水桶的进程只好等待;还有水缸满时,不可人水,设信号量empty控制人水量.水缸空时不可出水,设信号量full,控制出水量。

mutexl:=1;mutex2:=1; empty:=10; full:=0 ; count:=3;

parbegin

入水: begin

Ll: P(empty);

P( count) ;

P (mutexl) ;

从井中取水;

V(mutext1);

P(mutex2);

送人水缸;

V(mutex2);

V(count);

V(full);

GotoLl;

End;

取水:begin

L2: P(full);

P(count);

P(mutex2) ;

从缸中取水;

V (mutex2) ;

V(empty);

V(count);

Goto L2;

End;

Parend.

例题9(北方交通大学1999年试题)

有一阅览室,读者进人阅览室必须先在一张登记表((TB)上登记,该表为每一座位设一个表目,读者离开时要消掉其登记信息,阅览室共有100个座位,为了描述读者的动作,请用类Pascal语言和P, V操作写出进程间的同步算法。

约定:

1) flag的值:0座位空闲,1座位被占用。

2)用语句I=getflag (0)可搜索到一个空座位i,用语句

i.flag =0或1,可给标志位赋值。

3)用i = getname (readername)可搜索到某读者所登记的座位号i;

用https://www.doczj.com/doc/c34947911.html,=0 或https://www.doczj.com/doc/c34947911.html, = readrname。可给姓名字段

赋值,0表示清除读者姓名。

4)计数信号量用count,互斥信号量用mutex .

解答:

该题所提供的已知条件和语句过多,容易给考生造成混乱,因此看到此题应先理清思路,先不要考虑约定中提供的各种语句。首先,按照惯常的同步互斥问题思路来思考。

读者进程:

讲入阅览室首先应检杳是否有空位子。若没有则等待,若有则登记,可设信号量count,控制各进程对座位的争夺;读者离去时,便可释放该座位。登记时要对表中各量进行修改,该过程相对于各进程而言为互斥操作,因此设信号量mutex,控制读者进人和离去时对表的互斥修改,题目所提供的各种语句只是用在修改登记表时所进行的具体操作,对本题的同步互斥问题无任何影响,照抄即可。

count:=100; mutex : = 1;

读者进程:begin

进人阅览室;

P(count);

P(mutex) ;

i=getflag(0);

i.flag=1;

i. name=readername;

V (mutex );

P(mutex) ;

i = getname(readername);

i. name=0; i.flag=0;

V (mutex);

V (count);

离开;

end.

例题10。用信号量描述4乘100米接力过程

解答:

P1: P2: P(Sl); P3: P(S2); P4: P(S3);

起跑,前进l00m; 起跑,前进l00m; 起跑,前进l00m; 起跑,前进l00m;

V(S1); V(S2); V(S3);到达终点。

例题11(北京大学1992年试题)

有桥如图4.15所示。车流如箭头所示。桥上不允许两车交会,但允许同方向多辆车依次通行(即桥上可以有多个同方向的车)。用P, V操作实现交通管理以防桥上堵塞。

解答:

设置: 信号量mutex 1, murex 2,初值为1; bridge初值为1; 计数器count 1, count 2,初值为0。

北方: 南方:

P(mutex 1);P(mutex 2) ;

count 1: =count 1 + 1; count2: = count 2+1;

if count 1=1 then P(bridge) ; if count 2=1 then P(bridge) ;

V(mutexl); V(mutex2);

过桥;过桥;

P(mutexl); P(mutex2);

count 1: = count 1一1; count 2: = count 2一1; if count 1=0 then V(bridge) ; if count 2=0 then V(bridge) ;

V(mutex1); V(mutex2);

例题12。“吸烟者”问题:假设一个系统有三个吸烟者(Smoker)进程和一个供货商((Agent)进程。每个吸烟者连续不断地制造香烟并吸掉它。但是,制造一支香烟需要三种材料;烟丝、纸、火柴。第一个吸烟者进程有纸,第二个有烟丝,第三个有火柴。供货商进程可以无限地提供这三种材料。供货商将两种材料一起放在桌上,持有另一种材料的吸烟者即可以制造一支香烟并吸掉它。供货商一次只能处理一个吸烟者的请求。当此吸烟者抽香烟时,它发出一个信号通知供货商进程,供货商进程马上给出另外两种材料,如此循环往复。试编写一个程序使供货商与吸烟者同步执行。

解答:

var smoker1, smoker2, smoker3 : Boolean; /*表明smoker i 是否需要抽烟*/

semaphore t, w, m; /* t —烟丝信号量,w—纸信号量,m—火柴信号量*/

binary semaphore mutex1, mutex2, mutex3,

/*控制agent每次只能为一个吸烟者按顺序服务*/

binary semaphore smoker_mutex;

/*控制三个吸烟者每次只能有一

个提出申请并从桌子上取材料

*/

begin

smoker1:= false ; smoker2:= false; smoker3:= false;

t:=0; w:=0; m:=0;

mutex1 :=1; mutex2 :=1; mutex3 :=1; smoker_mutex :=1;

Agent:

Loop

P(mutex1);

If somker1 =true /*第一个拥有纸的吸烟者想吸烟*/

then V(t); /*提供烟丝*/

V(m); /*提供火柴*/

somker1 =false;

V(mutex1);

P(mutex2);

If somker2 =true /*第二个拥有烟丝的吸烟者想吸烟*/

then V(w); /*提供纸*/

V(m); /*提供火柴*/

Somker2 =false;

V(mutex2);

P(mutex3);

If somker3 =true /*第三个拥有火柴的吸烟者想吸烟*/

then V(w); /*提供纸*/

V(t); /*提供烟丝*/

Somker3 =false;

V(mutex3);

Endloop

Smoker1:

Loop P(smoker_mutex) /*判断是否有其它吸烟者正在向供货商提出申请*/

P(mutex1) /*判断所需的烟丝和火柴是否已经放在桌子上*/

Smoker1 := true;

V(mutex1);

P(m);

P(t);

V(smoker_mutex)

Endloop

Smoker2 和Smoker3 与Smoker1类似。

【09真题】

三个进程P1、P2、P3 互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd ()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。

1.定义信号量 S1 控制 P1 与 P2 之间的同步;S2 控制P1 与 P3 之间的同步;empty 控制生产者与消费者之间的同步;mutex 控制进程间互斥使用缓冲区。程序如下:Var s1=0,s2=0,empty=N,mutex=1;

Parbegin

P1:begin

X=produce(); /*生成一个数*/

P(empty); /*判断缓冲区是否有空单元*/

P(mutex); /*缓冲区是否被占用*/

Put();

If x%2==0

V(s2); /*如果是偶数,向 P3 发出信号*/

else

V(s1); /*如果是奇数,向 P2 发出信号*/

V(mutex); /*使用完缓冲区,释放*/

end.

P2:begin

P(s1); /*收到 P1 发来的信号,已产生一个奇数*/ P(mutex); /*缓冲区是否被占用*/

Getodd(); Countodd():=countodd()+1;

V(mutex); /*释放缓冲区*/

V(empty); /*向 P1 发信号,多出一个空单元*/ end.

P3:begin

P(s2) /*收到 P1 发来的信号,已产生一个偶数*/

P(mutex); /*缓冲区是否被占用*/

Geteven(); Counteven():=counteven()+1;

V(mutex); /*释放缓冲区*/

V(empty); /*向 P1 发信号,多出一个空单元*/ end.

Parend.

【11真题】

计算机操作系统习题及答案(4)

第4章进程同步与通信 2,当前值为-1,则表示有 B 等待进程。 / / —■ A. 0个 C. 2个 D. 3个 (3) 在直接通信方式中,系统提供两条通信原语进行发送和接收,其中 参数应是_C_O A. sender , message B. sender , mailbox C. receiver , message D. receiver , mailbox (4) 下述那个选项不是管程的组成部分 A O A. 管程外过程调用管程内数据结构的说明 B. 管程内对数据结构进行操作的一组过程 C. 局部于管程的共享数据说明 D. 对局部于管程的数据结构设置初值的语句 (5) 某通信方式通过共享存储区来实现,其属于 D ° A.消息通信 B.低级通信 C.管道通信 D.高级通信 (6) 用P 、V 操作管理临界区时,信号量的初值应定义为 C ° A. -1 B. 0 C. 1 D.任意值 (7 )临界区是 B ° A. 一个缓冲区 B. 一段程序 C. 一段共享数据区 D. 一个互斥资源 (8 )信箱通信是一种_D_J !信方式。 A.直接通信 B.信号量 C.低级通信 D.间接通信 (9) 对于两个并发进程,设互斥信号量为 mutex , 若mutex=0则 A A. 表示有一个进程进入临界区 1)选择题 (1 )在操作系统中, A.机器指令 p 、V 操作是一种_D _。 B.系统调用命令 C.作业控制命令 D ?低级进程通信原语 (2 )若信号量S 的初值为 B. l 个 Send 原语中

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__。 A?信箱 B.消息队列中的某个缓冲区 C.管道 D.整个消息队列 2)填空题 (1)信号量的物理意义是:当信号量值大于0时表示可用资源的个数;当信号 量值小于0时,其绝对值为等待该信号量的进程数。 (2)如果信号量的当前值为-4,则表示系统中在该信号量上有_4_个等待进程。 (3)对于信号量可以做P—操作和V_ 操作,P 操作用于阻塞进程,V 操作用于释放进程。程序中的_P—和V_ 操作应谨慎使用,以保证其使用的正确性,否则执行时可能发生死锁。 (4)有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问, 则信号量值的变化范围是_[-(m-1),1]_ 。 (5)管程由局部于管程(资源对象)的共享变量的说明、对管程(资源对象) 数据进行操作的一组过程和对局部于管程的数据设置初始值的语句三部分组成。 (6)访问临界资源的进程应该遵循的条件有:空闲让进、忙则等待、有限等待和让权等待。 (7)每个信箱可以包含信箱头和信箱体两部分。 (8)为了实现消息缓冲通信,在PCB中应增加的数据项有消息队列中消息资源的信 号量、对消息队列互斥操作的信号量和指向消息队列的指针。 3)解答题 (1)什么是临界资源?什么是临界区?对临界资源的访问有哪些原则? 答:一次仅允许一个进程使用的共享资源被称为临界资源。 每个进程中访问临界资源的那段程序称为临界区。 对临界资源的访问原则是: ①空闲让进,如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。 ②忙则等待,任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。

操作系统习题及答案一

习题一操作系统概论 选择题 1. 计算机的操作系统是一种() ■ A. 应用软件 B.系统软件 C.工其软件D 字表处理软件 2. 批处理系统的主要缺点是( ). A. CPU 的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 3. 计算机操作系统的功能是( ). A. 把源程序代码转换为标准代码 B. 实现计算机用户之间的相互交流 C. 完成计算机硬件与软件之间的转换 D. 控制、管理计算机系统的资源和程序的执行 4. 在分时系统中,时间片一定时, (),响应时间越长. A. 内存越多 B.用户数越多 C.内存越少 D 用户数 越少 5. 操作系统的( )管理部分负责对进程进行调度 . A?主存储器 B.控制器 C.运算器 D 处理机 6. 从用户的观点看,操作系统是( ). A. 用户与计算机之间的接口 B. 控制和管理计算机资源的软件 C. 合理地组织计算机工作流程的软件 D. 由若干层次的程序按一定的结构组成的有机体 7. 操作系统的功能是进行处理机管理、 ()管理、设备管理及信息管理 9. 操作系统是现代计算机系统不可缺少的组成部分,是 为了提咼计算机的( 户使用计算机而配备的一种系统软件 . 10. 所谓()是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处 和外围设备等其他资源. A.多重处理 B.多道程序设计 C.实时处理 D?并行执行 11. ()操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同 A. CPU 的利用率不高 C.不具备并行性 B.资源利用率 D.以上都不是 A.进程 B.存储器 C.硬件 D.软件 8.操作系统中采用多道程序设计技术提高 CPU 和外部设备的() A.利用率 B.效率 C.稳定性 D.兼容性 )和方便用 理机的时间

操作系统试卷题库(含部分答案)

题( 1 ) 一、单选题。每小题1分,共16分(将正确答案的序号写在题目的括号中) 1、关于静态分页存储管理的页表,下列说法错误的是(C )。P115 A、内存中每个作业都对应着一个页表 B、页表属于操作系统的内核数据结构 C、如果在不同时间运行同一作业,那么每次运行时页表都是相同的 D、页表存放在内存中 2、批处理操作系统的主要缺点是(C )。P7 A、资源利用率不高 B、作业吞吐量小 C、无人机交互能力 D、作业周转时间短 3、在下列调度算法中,(A )不属于进程调度算法。 A 电梯调度法 B 优先级调度法 C 时间片轮转法 D FIFO法 4、如果文件采用直接存取方式且文件大小不固定,则宜选择(D )文件结构。P189 A 任意 B 顺序 C 随机 D 索引 5、CPU输出数据的速度远远高于打印机的打印速度,为了解决这一矛盾,可采用(C )。 A 交换技术 B 覆盖技术 C 缓冲技术 D DMA技术 6、操作系统是一种(A ) A、系统软件 B、应用软件 C、UNIX D、Window NT 7、在请求页式中,因置换算法选择不当造成页面调度非常频繁,这种情况被称为(A ) A、抖动现象 B、交换现象 C、碎片 D、虚拟 8、多个进程实体能存在于同一内存中,在一段时间内都得到运行。这种性质称作进程的(B )。P30 A 动态性 B 并发性 C 调度性 D 异步性 9、使用户所编制的程序与实际使用的物理设备无关,这是由设备管理的(A)功能实现的。P163 A 设备独立性 B 设备分配 C 缓冲管理D虚拟设备 10、操作系统中,进程之间交换数据的过程称为(C ) A、进程共享 B、进程同步 C、进程通信 D、进程协调 11、关于进程的运行、就绪和阻塞三个状态,下列观点正确的是(D ) A、每个进程从创建到撤消都要经历这三个状态 B、每个进程从创建到撤消,各个状态只能经历一次 C、某些进程可以从阻塞状态转化为运行状态 D、某些进程可以从运行状态转化为就绪状态 12、在一段时间内,只允许一个进程访问的资源称为(C ) A、共享资源 B、临界区 C、临界资源 D、共享区 13、段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即(B) A、用分段方法来分配和管理物理存储空间,用分页方法来管理用户地址空间 B、用分段方法来分配和管理用户地址空间,用分页方法来管理物理存储空间。 C、用分段方法来分配和管理主存空间,用分页方法来管理辅存空间 D、用分段方法来分配和管理辅存空间,用分页方法来管理主存空间 14、下面的论述中,正确的是(A ) A、一个进程是由一个伪处理机执行的一个程序 B、程序的并发执行将导致最终结果失去封闭性 C、不同的进程所执行的程序段代码也不同 D、以优先级为基础的低级调度算法,可以保证任何时候当前正在运行的进程总是非等待状态下 诸进程中优先级最高的进程。 15、避免死锁的一个著名的算法是(B) A、先入先出法 B、银行家算法 C、优先级算法 D、资源按序分配法 16、资源的预先分配策略可以实现死锁的(A ) A、预防 B、避免 C、检测 D、恢复

计算机操作系统典型例题解析之四

计算机操作系统复习题之四【例1】可变分区存储管理系统中,若采用最佳适应分配算法,“空闲区表”中的空闲区可按(A)顺序排列。 A、长度递增 B、长度递减 C、地址递增 D、地址递减分析:最佳适应算法要求每次都分配给用户进程能够满足其要求的空闲区中最小的空闲区,所以为了提高算法效率,我们把所有的空闲区,按其大小以递增的顺序形成一空闲分区链。这样,第一个找到的满足要求的空闲区,必然是符合要求中最小的。所以本题的答案是A。 【例2】虚拟存储技术是(B)。 A、扩充主存物理空间技术 B、扩充主存逻辑地址空间技术 C、扩充外存空间的技术 D、扩充输入/输出缓冲区技术 分析:所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统。具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。实际上,用户所看到的大容量只是一种感觉,是虚的,故称之为虚拟存储器。虚拟存储技术是一种性能非常优越的存储器管理技术、故被广泛地应用于大、中、小型机器和微型机中。所以本题的答案是B。 【例3】很好地解决了“零头”问题的存储管理方法是(A)。A、分页存储管理方式B、分段存储管理方式C、多重分区管理D、可变式分区管理 分析:“零头”也就是内存碎片,是指内存中无法被利用的小空闲

区。在有些内存管理方式下,系统运行一段时间后,内存的碎片会占据相当的数量的空间。分段存储管理方式、多重分区管理、可变式分区管理都会因为内存分配回收产生“零头”,而分页存储管理方式,按事先划分好的内存块为单位分配回收内存,所以不会产生“零头”。所以本题的答案是A。 【例4】系统“抖动”现象的发生是由(B)引起的。 A、交换的信息量过大 B、置换算法选择不当 C、内存容量不足 D、请求分页管理方案 分析:“抖动”现象是指刚被换出的页很快又要被访问,为此,又要换出其他页,而该页又很快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上。交换的信息量过大,内存容量不足都不是引起系统“抖动”现象的原因,而选择的置换算法不当才是引起“抖动”现象的根本原因,例如,先进先出算法就可能产生“抖动”现象。所以本题的答案是B。 【例5】虚拟存储管理系统的基础是程序的(C)理论。 A、全局性 B、虚拟性 C、局部性 D、动态性 分析:虚拟存储技术是基于程序的局部性原理的,程序的局部性原理体现在两个方面:时间局部性和空间局部性。时间局部性是指一条指令被执行后,那么它可能很快会再次被执行,空间局部性是指若某一存储单元被访问,那么与该存储单元相邻的单元可能也会很快被访问。所以本题的答案是C。

操作系统14章期末考试练习题

习题 第一章习题 一、单选题 (1)当CPU执行操作系统代码时,称处理机处于( )。 A.执行态 B.目态 C.管态 D.就绪态 (2)在下列性质中,( )不是分时系统的特征。 A.多路性 B.交互性 C.独立性 D.成批性 (3)下列仅一条指令( )只能在管态下执行。 A.读取时钟指令 B.访管指令 C.屏蔽中断指令 D.取数指令 二、填空题 (1) 在计算机系统中配置操作系统的主要目的是___________________,操作系统的主要功能是管理计算机系统中的_____,其中包括_______管理、_______管理,以及设备管理和文件管理,这里的_______管理主要是对进程进行管理。(2) 利用缓冲区能有效地缓和_____和________之间速度不匹配的矛盾,虚拟设备的功能是使_____________变成能被多个进程同时使用的_________。

第二章习题 一、填空题 (1)对于一个可执行程序文件,该程序与执行它的进程是__________的关系。 (2)在单CPU系统中实现并发技术后____________。 A.进程在一个时间段并行执行,CPU与外设并行工作。 B.进程在一个时刻并行执行,CPU与外设并行工作。 C.进程在一个时间段并行执行,CPU与外设串行工作。 D.进程在一个时刻并行执行,CPU与外设串行工作。 (3)从静态角度上看,进程是由______、_______、_______三部分组成。 (4)正在执行的进程由于用完其时间片而被暂停执行,此时进程应从执行状态变成为_________。 (5)引入进程,可带来________________和________________的好处,但却增加了系统的_____和_____开销。 (6)临界区是指进程中用于_____________的那段代码。 (7)________是一种只能由P和V操作所改变的整型变量,______可用于实现进程的________和________,_____是指排他性地访问临界资源。 ①:A.控制变量 B.锁 C.整型信号量 D.记录型信号量 ②,③:A.同步 B.通信 C.调度 D.互斥 (8)设有6个进程共享同一互斥段,若最多允许有3个进程进入互斥段,则所采用的互斥信号量的初值为____。 (9)有3个进程共享同一程序段,而每次最多允许两个进程进入该程序段,若用P、V操作作同步机制,则记录型信号量S的取值围为__________。 (10)为实现消息缓冲通信,在PCB中应增加_____________、__________________和__________________三个数据项。 (11)若记录型信号量S的初值为2,当前值为-1,则表示有___等待进程。 A.0个 B.1个 C.2个 D.3个 (12)当______时,进程从执行状态转变为就绪状态。 A.进程被调度程序选中 B.有高优先级进程到来

操作系统例题讲解

操作系统例题讲解 一、调度算法 对如下表所示的5个进程: 采用可剥夺的静态最高优先数算法进行调度(不考虑系统开销)。 问 题: ⑴ 画出对上述5个进程调度结果的Gantt 图; ⑵ 计算5个进程的平均周转时间、平均带权周转时间。 解: ⑴ 调度结果的Gantt 图如下: 0 2 4 5 7 9 10 12 14 (2) 时间计算: 二、存储管理 某系统采用虚拟页式存储管理方式,页面大小为2KB ,每个进程分配的页框数固定为4页。采用局部置换策略,置换算法采用改进的时钟算法,当有页面新装入内存时,页表的时钟指针指向新装入页面的下一个在内存的表项。设当前进程P 的页表如下(“时钟”指针指向逻辑页面3的表项): 逻辑页号 0 1 2 3 4 5 问 题: ⑴ 当进程P 依次对逻辑地址执行下述操作: ① 引用 4C7H ; ② 修改 19B4H ; ③ 修改 0C9AH ; 写出进程P 的页表内容; ⑵ 在 ⑴ 的基础上,当P 对逻辑地址27A8H 进行访问, 该逻辑地址对应的物理地址是多少?

解:页面大小为2KB,2KB=2×210=211, 即逻辑地址和物理地址的地址编码的低11位为页内偏移; ⑴①逻辑地址4C7H=0100 1100 0111B,高于11位为0,所以该地址访问逻辑页面0; 引用4C7H,页表表项0:r=1; ②逻辑地址19B4H=0001 1001 1011 0100B,高于11位为3,所以该地址访问逻辑页面3; 修改19B4H,页表表项3:r=1, m=1; ③逻辑地址0C9AH=0000 1100 1001 1010B,高于11位为1,所以该地址访问逻辑页面1; 逻辑页1不在内存,发生缺页中断; ①、②两操作后,P的页表如下: 逻辑页号 1 2 3 4 5 按改进的时钟算法,且时钟指针指向表项3,应淘汰0页面, 即把P的逻辑页面1读到内存页框101H,页表时钟指针指向表项2。 并执行操作:修改0C9AH。 经上述3个操作后,P的页表如下: 逻辑页号 1 2 3 4 5 ⑵逻辑地址27A8H=0010 0111 1010 1000B,高于11位为4,所以该地址访问逻辑页面4; 页面4不在内存,发生缺页中断;按改进的时钟算法,淘汰页面2,页面4读到110H页框, 所以,逻辑地址27A8H对应的物理地址为: 0001 0001 0000 111 1010 1000B=887A8H。 三、设备与I/O管理 设系统磁盘只有一个移动磁头,磁道由外向内编号为:0、1、2、……、199;磁头移动一个磁道所需时间为1毫秒;每个磁道有32 个扇区;磁盘转速R=7500r/min. 系统对磁盘设备的I/O请求采用N-Step Look (即N-Step Scan,但不必移动到磁道尽头),N=5。设当前磁头在60号磁道,向内移动;每个I/O请求访问磁道上的1个扇区。现系统依次接收到对磁道的I/O请求序列如下: 50, 20, 60, 30, 75, 30, 10, 65, 20, 80,15, 70 问题: ⑴写出对上述I/O请求序列的调度序列,并计算磁头引臂的移动量; ⑵计算:总寻道时间(启动时间忽略)、总旋转延迟时间、总传输时间和总访问处理时间。 解:⑴考虑序列中有重复磁道的I/O请求,调度序列为: 60→75→50→30→20→15→10→65→70→80 磁头移动量=(75-60)+(75-50)+(50-30)+(30-20)+ (20-15)+(15-10)+(65-10)+(70-65)+(80-70) =15+25+20+10+5+5+55+5+10=155(磁道)

操作系统试题库填空题及答案

操作系统试题库填空题及答案 1、分时系统必须为用户提供(操作控制命令)以实现(交互(或联机))控制方式。 2、Spooling系统中,作业执行时,从磁盘上的(输入井)中读取信息,并把作业的执行结 果暂时存放在磁盘上的(输出井)中。 3、中断分类后,中断是指(源自CUP以外事件的中断,通常与当前程序(进程)运行无关),异常 是指(源自CUP内部事件的中断,通常与当前程序(进程)运行有关)。 4、所谓脱机用户接口是指(作业控制语言)。 5、用户程序必须通过程序级接口方能获得操作系统的服务,程序级接口主要是由一组(系统调 用)组成。 6、操作系统的主要功能是(存储器管理)、(处理机管理)、(设备管理)、(文件管理)、 (作业管理)。 7、用户是通过(命令接口)或者程序接口向计算机发出请求的。 8、用户与操作系统的接口有(通讯语言)和(系统调用)。 9、交互式系统和多道程序系统相结合可构成(分时)系统。 10、SPOOLing是指(并发的外部设备联机操作),操作系统用它来实现(虚拟设备)的功

能。 11、分时系统追求的目标是(及时响应). 12、用户进程从目态(常态)转换为管态(特态)的唯一途径是(中断). 13、实时系统应具有两个基本特征:及时性和(可靠性). 14、实时系统应具有两个基本特征:(及时性)和可靠性. 15、用户程序通过(访管指令(或系统调用))向操作系统提出各种资源要求和服务请求. 16、SPOOLing(同时的外部设备联机操作)技术是关于慢速字符设备如何与计算机主机交换信息 的一种典型的(虚拟设备)技术. 17、计算机操作系统是方便用户、管理和控制计算机(软硬件资源)的系统软件。 18、面对一般用户,通过(操作命令)方式控制操作系统;面对编程人员,通过(系统调 用)控制。 19、一个完整的计算机系统是由(硬件)和(软件)两大部分组成的。 20、操作系统是(控制和管理)计算机系统内部(各种硬件和软件资源)、有效地组织 多道程序运行的(系统软件(或程序集合)),是用户和计算机的(接口)。

计算机操作系统典型例题解析之三

计算机操作系统典型例题解析之三 【例1】分配到必要的资源并获得处理机时的进程状态是(B )。A、就绪状态B、执行状态 C、阻塞状态D、新状态 分析:进程有三种基本状态:就绪状态、执行状态和阻塞状态。当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态;处于就绪状态的进程如果获得了处理机,其状态转换为执行状态;进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态;而新状态是指创建了进程但尚未把它插入到就绪队列前的状态。所以本题的答案是B。 【例2】挂起的进程被激活,应该使用(C)原语。 A、Create B、Suspend C、Active D、Wakeup 分析:在不少系统中,进程除了三种基本状态外,又增加了一些新的状态,其中最重要的是挂起状态。“挂起”的实质是使进程不能继续执行,即使挂起后的进程处于就绪状态,它也不能参加对CPU的竞争,进程的挂起调用Suspend()原语。因此,被挂起的进程处于静止状态,相反,没有挂起的进程则处于活动状态。而且,处于静止状态的进程,只有通过“激活”动作,调用Active()原语,才能转换成活动状态,调入内存。所以本题的答案是C。 【例3】任何时刻总是让具有最高优先数的进程占用处理器,此时采用的进程调度算法是(D)。A非抢占式的优先数调度算法B、时间片轮转调度算法C、先来先服务调度算法D、抢占式的优先

数调度算法 分析:“让具有最高优先数的进程占用处理器”,我们可以知道,采用的进程调度算法是优先数调度算法,但是我们还要进一步分析是抢占式的还是非抢占式的。“任何时刻总让”,通过这句话我们知道采用的是抢占式的,所以本题的答案是D。 【例4】若P、V操作的信号量S初值为2,当前值为-1,则表示有(B)等待进程。A、0个B、1个C、2个D、3个分析:信号量的初始值表示系统中资源的数目,每次的Wait操作意味着进程请求一个单位的资源,信号量进行减1的操作,当信号量小于0时,表示资源已分配完毕,进程自我阻塞。因此,如果信号量小于0,那么信号量的绝对值就代表当前阻塞进程的个数。所以本题的答案是B。 【例5】发生死锁的必要条件有四个,要预防死锁的发生,可以破坏这四个必要条件,但破坏(A)条件是不太实际的。 A、互斥 B、请求和保 C、不剥夺 D、环路等待 分析:预防死锁是指通过破坏死锁的某个必要条件来防止死锁的发生。四个必要条件中,后三个条件都可以被破坏,而第一个条件,即“互斥”条件,对某些像打印机这样的设备,可通过SPOOLing技术予以破坏,但其他资源,因受它们的固有特性的限制,该条件不仅不能被破坏,反而应加以保证。所以本题的答案是A。 【例6】有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是1 至1-m。

操作系统例题汇总

1.2例题精选 例如何理解虚拟机的概念? 解:一台仅靠由硬件组成的计算机一般被称为裸机,不易使用。操作系统为用户使用计算机提供了许多服务,从而把一台难于使用的裸机改造成了功能更强大、使用更方便的计算机系统,这种计算机系统称为虚拟机。所谓虚拟,是指把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,而后者是虚的,只是用户的一种感觉。在单CPU的计算机系统中能同时运行多道程序,好像每个程序都独享一个CPU,这就是虚拟。在构造操作系统时,把操作系统分成若干层,每层完成特定的功能,从而形成一个虚拟机。下层的虚拟机为上层的虚拟机提供服务,这样逐次扩充以完成操作系统的功能。 讨论“虚拟”的概念体现在操作系统的方方面面。例如,虚拟存储器,使一台只有4MB内存的计算机可以运行总容量远远超过4 MB的程序;虚拟外设,能够使多个用户同时访问该外设等。 例什么是多道程序设计,它的主要优点是什么? 解: 所谓多道程序设计是指把一个以上的程序存放在内存中,并且同时处于运行状态,这些程序共享CPU和其他计算机资源。其主要优点是: (1)CPU的利用率高:在单道程序环境下,程序独占计算机资源,当程序等待I/O操作时CPU空闲,造成CPU资源的浪费。在多道程序环境下,多个程序共享计算机资源,当某个程序等待 I/O操作时,CPU可以执行其他程序,这大大地提高了CPU的利用率。 (2)设备利用率高:在多道程序环境下,内存和外设也由多个程序共享,无疑也会提高内存和外设的利用率。 (3)系统吞吐量大:在多道程序环境下,资源的利用率大幅度提高,减少了程序的等待时间,提高了系统的吞吐量。 讨论多道程序在计算机中并发地运行是现代计算机系统的重要特征。早期的单道批处理系统与人工操作相比自动化程度大大提高,但系统中仍有较多的空闲资源,系统的性能较差。多遭批处理系统虽有很多优点,但这种系统交互能力差,作业的平均周转时间长。多道程序处理系统要解决的主要问题是,如何使多个程序合理、有序地共事处理机、内存、外设等资源。 例1.3 A, B两个程序,程序 A按顺序使用CPU 10 S,使用设备甲 5 S,使用 CPU 5 S,使用设备乙 10 S,最后使用 CPU 10 S。程序 B按顺序使用设备甲 10 S,使用 CPU 10 S,使用设备乙5S,使用CPU 5S,使用设备乙 10S。(忽略调度程序执行时间)试问: (1)在顺序环境下执行程序A和程序B,CPU的利用率是多少? (2)在多道程序环境下, CPU的利用率是多少? 解(1)程序A和程序B顺序执行时,程序A执行完毕,程序B才开始执行。两个程序共耗时80S,其中占用CPU时间为40S,顺序执行时CPU的利用率为50%。 (2)在多道程序环境下,两个程序并发执行,其执行情况如图所示。可以看出,两个程序共耗时45S,其中占用CPU时间为40S,故此时CPU的利用率为40/45=%。 讨论 (1)在单道程序环境下,程序顺序执行,CPU被一道程序独占,即使CPU空闲,其他程序也不能使用,所以 CPU的利用率低。 (2)在多道程序环境下,若干个程序宏观上同时执行,微观上交替执行。当其中一个程序由于某种原因(例如进行1/O操作)而不能占用CPU时,其他程序就可以占用CPU,提高了CPU的利用率。

计算机操作系统考试题题库及答案

计算机操作系统试题库与答案 一、选择题 1、热启动 DOS的方法是____C____键。 A、依次按下 CTRL+ALT+INS B、依次按下 CTRL+ALT+ESC C、同时按下 CTRL+ALT+DEL D、同时按下 CTRL+ALT+ESC 2、DOS 规定,主文件名由 1到_______个字符组成。 A、4 B、6 C、8 D、12 3、下列一个 DOS 的主文件名中,____C____是合法的。 A、&A.DBF B、@Z2 材 C、FILEL.WPS D、*.EZE1 4、DOS 中规定文件名是由____B____两部分组成的。 A、文件名+基本名 B、主文件名+ .扩展名 C、主文件名+扩展名 D、后缀+名称 5、MS-DOS 包括内部命令和外部命令, 外部命令以____A____存放在磁 A、文件方式 B、数据方式 C、系统方式 D、记录方式 6、当用户需使用某一文件时,在命令行中应指出文件的_____C____。 A、关键字 B、内容 C、盘符\路径\文件名 D、属性 7、DOS 的内部命令是在____D____时装入到内存的。 A、安装 B、执行用户程序 C、启动 D、执行系统程序 8、DOS 文件标识符一般格式为____D____。 A、[<路径>] <文件名> B、[<盘符>] <文件名> C、[<盘符>] <文件名> [<扩展名>] D、[<盘符>][<路径>]<文件名>[<.扩展名>] 9、DOS 命令中的"*"号可代替___A___个字符。 A、任意 B、1 C、3 D、8 10、设当前工作盘是 C 盘,存盘命令中没有指明盘符,则信息将存放于____B__。 A、内存 B、C 盘 C、A 盘 D、D 盘 11、在 DOS系统下,要编辑现有磁盘文件,则必须将文件读至____D____。 A、运算器 B、寄存器 C、控制器 D、内存储器 12、DOS 的含义是:____C___ A、数据库管理系统 B、实时操作系统 C、磁盘操作系统 D、汉字操作系统 13、可以对一张作了写保护的软盘进行操作的 DOS 命令是:___C____ A、DEL B、RD C、DIR D、REN 14、下列文件中,不是 DOS 可执行文件的是:____A___ A、TODAY.BAS B、TODAY.BAT C、https://www.doczj.com/doc/c34947911.html, D、WPS.EXE 15、在 DOS命令中可用的通配符是:___B____ A、*和/ B、*和? C、?和/ D、\和. 16、表示当前工作目录的父目录的符号是:_______ A、. B、..\.. C、\ D、.. 17、要分屏显示 C 盘当前目录下的文件目录的全部信息,正确的命令是:____C___ A、TYPE C: /P B、DIR C:\ /P C、DIR C: /P D、LIST C:/P 18、删除指定子目录的 DOS 命令是:___A__ A、RD B、ERASE C、DEL D、RM

计算机操作系统习题及答案

第一章操作系统引论 一、单项选择题 1.操作系统是一种__________。 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,操作系统中采用多道程序设计技术提高CPU和外部设备的_______。 A.利用率 B.可靠性 C.稳定性 D.兼容性 7.操作系统是现代计算机系统不可缺少的组成部分,是为了提高计算机的_______和方便用户使用计算机而配备的一种系统软件。 A. 速度B.利用率 C. 灵活性 D.兼容性 8.操作系统的基本类型主要有_______。 A.批处理系统、分时系统及多任务系统 B.实时操作系统、批处理操作系统及分时操作系统 C.单用户系统、多用户系统及批处理系统 D.实时系统、分时系统和多用户系统 9.所谓_______是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。 A. 多重处理 B.多道程序设计

C. 实时处理 D.并行执行 10. _______操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.网络 D.分布式 C.分时 D.实时 11.如果分时操作系统的时间片一定,那么_______,则响应时间越长。 A.用户数越少B.用户数越多 C.内存越少 D. 内存越多 12,分时操作系统通常采用_______策略为用户服务。 A.可靠性和灵活性 B.时间片轮转 C.时间片加权分配 D,短作业优先 13. _______操作系统允许用户把若干个作业提交给计算机系统。 A.单用户 B,分布式 C.批处理 D.监督 14.在_______操作系统控制下,计算机系统能及时处理由过程控制反馈的数据并作出响应。 A.实时B.分时 C. 分布式 D.单用户 15.设计实时操作系统时,首先应考虑系统的_______。 A. 可靠性和灵活性B.实时性和可靠性 C. 灵活性和可靠性D.优良性和分配性 16.若把操作系统看作计算机系统资源的管理者,下列的_______不属于操作系统所管理的资源。 A. 程序 B.内存 C. CPU D.中断 二、填空题 1.操作系统的基本功能包括__①__管理、__②__管理、__③__管理、__④__管理。除此之外还为用户使用操作系统提供了用户接口。 2.如果一个操作系统兼有批处理、分时处理和实时处理操作系统三者或其中两者的功能,这样的操作系统称为_________。 3.在分时和批处理系统结合的操作系统中引入了“前台”和“后台”作业的概念,其目的是_________。 4.分时操作系统的主要特征有三个,即__①__、__②__和__③__。 5.实时操作系统与分时操作系统的主要区别是_________。

计算机操作系统习题及答案()

第3章处理机调度1)选择题 (1)在分时操作系统中,进程调度经常采用_D_ 算法。 A. 先来先服务 B. 最高优先权 C. 随机 D. 时间片轮转 (2)_B__ 优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。 A. 作业 B. 静态 C. 动态 D. 资源 (3)__A___ 是作业存在的惟一标志。 A. 作业控制块 B. 作业名 C. 进程控制块 D. 进程名 (4)设有四个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理器上按单道方式运行,则平均周转时间为_ B_ 。 A. l小时 B. 5小时 C. 2.5小时 D. 8小时 (5)现有3个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。系统按单道方式运行且采用短作业优先算法,则平均周转时间是_C_ 。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. (3T1+2T2+T3)/3 D. (T1+2T2+3T3)/3 (6)__D__ 是指从作业提交给系统到作业完成的时间间隔。 A. 运行时间 B. 响应时间 C. 等待时间 D. 周转时间 (7)下述作业调度算法中,_ C_调度算法与作业的估计运行时间有关。 A. 先来先服务 B. 多级队列 C. 短作业优先 D. 时间片轮转 2)填空题 (1)进程的调度方式有两种,一种是抢占(剥夺)式,另一种是非抢占(非剥夺)式。 (2)在_FCFS_ 调度算法中,按照进程进入就绪队列的先后次序来分配处理机。 (3)采用时间片轮转法时,时间片过大,就会使轮转法转化为FCFS_ 调度算法。 (4)一个作业可以分成若干顺序处理的加工步骤,每个加工步骤称为一个_作业步_ 。 (5)作业生存期共经历四个状态,它们是提交、后备、运行和完成。 (6)既考虑作业等待时间,又考虑作业执行时间的调度算法是_高响应比优先____ 。 3)解答题 (1)单道批处理系统中有4个作业,其有关情况如表3-9所示。在采用响应比高者优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。(运行时间为小时,按十进制计算) 表3-9 作业的提交时间和运行时间

计算机操作系统期末考试题及答案

2016学年度计算机操作系统期末考试题及答案 一、单项选择题(每题1分,共20分) 1。操作系统得发展过程就是(C) A、原始操作系统,管理程序,操作系统 B、原始操作系统,操作系统,管理程序C、管理程序,原始操作系统,操作系统D、管理程序,操作系统,原始操作系统 2.用户程序中得输入、输出操作实际上就是由( B)完成。 A、程序设计语言 B、操作系统C、编译系统D、标准库程序 3.进程调度得对象与任务分别就是( C ). A、作业,从就绪队列中按一定得调度策略选择一个进程占用CPU B、进程,从后备作业队列中按调度策略选择一个作业占用CPU C、进程,从就绪队列中按一定得调度策略选择一个进程占用CPU D、作业,从后备作业队列中调度策略选择一个作业占用CPU 4.支持程序浮动得地址转换机制就是( A) A、动态重定位B、段式地址转换C、页式地址转换D、静态重定位 5。在可变分区存储管理中,最优适应分配算法要求对空闲区表项按( C )进行排列。A、地址从大到小B、地址从小到大C、尺寸从小到大D、尺寸从大到小 6.设计批处理多道系统时,首先要考虑得就是(B)。 A、灵活性与可适应性B、系统效率与吞吐量C、交互性与响应时间D、实时性与可靠性 7。当进程因时间片用完而让出处理机时,该进程应转变为(B)状态。 A、等待 B、就绪C、运行D、完成 8。文件得保密就是指防止文件被(C)。 A、篡改 B、破坏 C、窃取 D、删除 9.若系统中有五个并发进程涉及某个相同得变量A,则变量A得相关临界区就是由( D)临界区构成。 A、2个 B、3个 C、4个D、5个 10.按逻辑结构划分,文件主要有两类:(A)与流式文件。 A、记录式文件B、网状文件C、索引文件D、流式文件 11.UNIX中得文件系统采用(D)。 A、网状文件B、记录式文件C、索引文件D、流式文件 12.文件系统得主要目得就是(A )。 A、实现对文件得按名存取B、实现虚拟存贮器C、提高外围设备得输入输出速度D、用于存贮系统文档 13.文件系统中用(D )管理文件. A、堆栈结构B、指针C、页表D、目录 14。为了允许不同用户得文件具有相同得文件名,通常在文件系统中采用( B)。A、重名翻译B、多级目录C、约定D、文件名 15.在多进程得并发系统中,肯定不会因竞争(C)而产生死锁。 A、打印机 B、磁带机C、CPU D、磁盘 16.一种既有利于短小作业又兼顾到长作业得作业调度算法就是( C )。 A、先来先服务 B、轮转 C、最高响应比优先 D、均衡调度 17.两个进程合作完成一个任务.在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程得

操作系统习题与解析

第二章进程的描述与控制 【例1】判断题:并发是并行的不同表述,其原理相同。() 答案×。分析并发是指多道程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。但对单CPU系统而言,每一时刻只有一个程序在CPU上运行(有可能此时其他的程序在进行输入、输出)。也就是说,占有CPU的只能有一个程序。因此,并发实际上是“在宏观上并行执行,在微观上串行执行”。而并行是真正意义上的并行执行,因此两者的含义是不同的。 【例2】在操作系统中引入“进程”概念的主要目的是()。 A.改善用户编程环境B.提高程序的运行速度 B.C.描述程序动态执行过程的性质D.使程序与计算过程一一对应 答案C 分析操作系统中多道程序的引入,使得它们在并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各道程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。而程序本身是机器能够翻译或执行的一组动作或指令,它或者写在纸面上,或者存放在磁盘等介质上,是静止的。很显然,直接从程序的字面上无法看出它什么时候运行、什么时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。因此,用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入进程的概念来描述程序动态执行过程的性质,这是引入“进程”概念的主要目的。 【例3】下列进程状态的转换中,不正确的是()。 A.就绪 阻塞B.运行 就绪 C.就绪 运行D.阻塞 就绪 答案A 分析回答这道题要知道进程的3种基本状态,以及它们之间的转换关系。通过下图可以看到,凡是图中有箭头指向的转换都是可行的,而没有箭头指向的则不可能。因此A 是不正确的。 如果有的同学记不住这张图,那就从理解的角度进行思考。首先要理解3种状态的含义,然后再理解它们之间的转换。例如:运行的进程能变成就绪吗?可以,如果运行进程的时间片到了,就必修让出CPU,转换为就绪态。就绪的进程能变成阻塞吗?不可以,就绪态的进程已经具备了运行条件,只在等待CPU,怎么可能还退回到还不具备运行条件的阻塞态呢?因此,如果理解了,这张图就可以自己画出来,并不需要死记硬背。 【例4】进程控制块是描述进程状态和特性的数据结构,一个进程()。 A.可以有多个进程控制块B.可以和其他进程共用一个进程控制块

操作系统第二章练习 答案

1.P、V 操作是 A 。
A.两条低级进程通信原语
B.两组不同的机器指令
C.两条系统调用命令
D.两条高级进程通信原语
2.设系统中有 n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4
种情况,
不可能发生的情况是 A 。
A.没有运行进程,有2个就绪进程,n 个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
3.若 P、V 操作的信号量 S 初值为2,当前值为-1,则表示有 B 等待进程。
A. 0个
B. 1个
C. 2个
D. 3个
4.用 V 操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。
A.等待
B.就绪
C.运行
D.完成
5.用 P、V 操作可以解决 A 互斥问题。
A.一切
B.某些
C.正确
D.错误
6.多道程序环境下,操作系统分配资源以 C 为基本单位。
A.程序
B.指令
C.进程
D.作业
7.从下面对临界区的论述中,选出一条正确的论述。
(1)临界区是指进程中用于实现进程互斥的那段代码。
(2)临界区是指进程中用于实现进程同步的那段代码。
(3)临界区是指进程中用于实现进程通信的那段代码。
(4)临界区是指进程中用于访问共享资源的那段代码。
(5)临界区是指进程中访问临界资源的那段代码。
8.(A)是一种只能由 wait 和 signal 操作所改变的整型变量,(A)可用于实现
进程的(B)和(C),(B)是排他性访问临界资源。
A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。
B:(1)同步;(2)通信;(3)调度;(4)互斥。
C:(1)同步;(2)通信;(3)调度;(4)互斥。
9.对于记录型信号量,在执行一次 wait 操作时,信号量的值应当(A),当其值
为(B)时,进程阻塞。在执行 signal 操作时,信号量的值应当为(C),当其
值为(D)时,应唤醒阻塞队列中的进程。
A:(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。
B:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0.
C:(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。
D:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0.
10.用信号量 S 实现对系统中4台打印机的互斥使用,S.value 的初值应设置为
(A),若 S.value 的初值为-1,则表示 S.L 队列中有(B)个等待进程。
A:(1)1;(2)0;(3)-1;(4)4;(5)-4
B:(1)1;(2)2;(3)3;(4)4;(5)5;(6)6;(7)0。
11.试选择(A)~(D),以便能正确地描述图2.12所示的前趋关系。
最新范本,供参考!

文本预览