第八章 死锁习题及答案

第八章 死锁习题及答案
第八章 死锁习题及答案

第八章死锁习题及答案

一、填空题

1.进程的“同步”和“互斥”反映了进程间① 和② 的关系。

【答案】①直接制约、②间接制约

【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。 2.死锁产生的原因是① 和② 。

【答案】①系统资源不足、②进程推进路径非法

【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。

3.产生死锁的四个必要条件是① 、② 、③ 、

④ 。

【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件

【解析】

互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。

非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。

占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源,

循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。

4.在操作系统中,信号量是表示① 的物理实体,它是一个与② 有关的整型变量,其值仅能由③ 原语来改变。

【答案】①资源,②队列,③P-V

【解析】信号量的概念和 P-V原语是荷兰科学家 E.W.Dijkstra提出来的。信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。信号量的值只能由P-V原语来改变。

5.每执行一次P原语,信号量的数值S减1。如果S>=0,该进程① ;若S<0,则② 该进程,并把它插入该③ 对应的④ 队列中。

【答案】①继续执行,②阻塞(等待),③信号量,④阻塞(等待)

【解析】从物理概念上讲,S>0时的数值表示某类资源可用的数量。执行

一次P原语,意味着请求分配一个单位的资源,因此描述为S=S-1。当S<0时,表示已无资源,这时请求资源的进程将被阻塞,把它排在信号量S的等待队列中。此时,S的绝对值等于信号量队列上的阻塞的进程数目。

6.每执行一次V原语,信号量的数值S加1。如果① ,Q进程继续执行;如果S<=0,则从对应的② 队列中移出一个进程R,该进程状态变为③ 。

【答案】①S>0,②等待,③就绪

【解析】执行一次V原语,意味着释放一个单位的资源。因此,描述为S=S +1。当S<0时,表示信号量请求队列中仍然有因请求该资源而被阻塞的进程。因此,应将信号量对应的阻塞队列中的第一个进程唤醒,使之转至就绪队列。

7.利用信号量实现进程的① ,应为临界区设置一个信号量 mutex。其初值为② ,表示该资源尚未使用,临界区应置于③ 和④ 原语之间。

【答案】①互斥,②1,③P(mutex),④V(mutex)

【解析】一次仅允许一个进程使用的资源称为临界资源,对临界资源实施操作的那段程序称为临界区。对于具有临界区问题的并发进程,它们之间必须互斥,以保证不同时进入临界区。利用信号量和P-V原语能方便地解决临界区问题。mutex为互斥公用信号量,初值为1,临界区的代码被置于P(mutex)、V(mutex)原语之间时,任何欲进入临界区的进程,必须在公用信号量mutex上执行P原语,在完成对临界资源的访问后再执行V原语。由于mutex初值为1,当第一个进程执行P原语后减为0,表示临界资源空闲,可分配给该进程使之进入临界区,在第一个进程没有退出临界区之前,若此时第二个进程想进入临界区,也应先执行P原语。而结果是mutex变为负值,就意味着临界资源已被占用,因此,第二个进程被阻塞。直到第一个进程执行V原语,释放该临界资源mutex到0后,方可唤醒第二个进程,使之进入临界区,待它完成对临界资源的访问后,又执行V

原语,使mutex恢复到初始值。

8.在多道环境下,由于进程的并发执行,一段程序为多个进程① 时,要求在执行的过程中,该段程序的指令和数据不能被② ,这样的程序段称为③ 。

【答案】①共享,②修改,③纯过程(或共享程序段)

【解析】在多道环境下,常常有许多于程序和应用程序是被多个用户所共用的,为了充分提高内存的利用率,把这些共享的程序和数据在内存只保留一个副本,这就要求这些程序和数据不能被修改。

二、单项选择题

1.在非剥夺调度方式下,运行进程执行V原语之后,其状态。

(A)不变(B)要变

(C)可能要变(D)可能不变

【答案】(A)

【解析】进程的调度方式有两种;剥夺和非剥夺方式。在剥夺方式下,一旦有优先级高于当前执行进程优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式是即使在就绪队列中有优先级高于当前执行进程的进程存在,当前进程仍将继续占有处理机,直到由于该进程自己的原因而让出处理机。

2.两个进程争夺同一个资源。

(A)一定死锁(B)不一定死锁

(C)不死锁(D)以上说法都不对

【答案】(B)

【解析】这和它们申请资源的顺序有关。

3.① 是一种只能由P操作和V操作进行访问的特殊变量,可以用来实现异步并行进程间的② 以排它地访问共享数据,还可以用来实现③ ,实现进程间在逻辑上的相互制约关系。

(A)调度(B)类程(C)进程(D)互斥

(E)信号量(F)控制变量(G)同步(H)共享变量

(I)规程(J)分配

【答案】①(E)②(D)③(G)

4.可以被多个进程在任一时刻共享的代码必须是。

(A)不能自身修改的纯码(B)顺序代码

(C)无转移指令的代码(D)汇编语言编制的代码

【答案】(A)

【解析】规定共享代码必须是不自身修改的纯码,主要是为了保证程序执行的正确性。

5.当对信号量进行V原操作之后,。

(A)当S<0,进程继续执行

(B)当S>0,要唤醒一个就绪进程

(C)当S<=0,要唤醒一个等待进程

(D)当S<=0,要唤醒一个就绪进程

【答案】(C)

【解析】V操作的物理含义是回收释放的一个资源,即信号量的值加1。在这个过程中,如果信号量的值大于0,表明系统没有其他进程正在等待使用该资源,该进程继续执行或转进程调度,这取决于进程调度采用的方式。如果信号量的值小于或等于0,说明有进程曾经因申请该资源且为得到满足而处于该资源对应的等待队列中,现在释放一个资源就应从该资源的等待队列中唤醒一个进程,使之变为就绪状态。

6.在下列叙述中,错误的一条是。

(A)进程被撤消时,只需释放该进程的PCB就可以了,因为PCB是进程存在的唯一标志

(B)进程的互斥和同步都能用P/V原语实现

(C)用户程序中执行系统调用命令时,处理机的状态字将发生改变

(D)设备独立性是指用户在编程时,所使用的设备与实际设备无关

【答案】(A)

【解析】进程不仅要释放PCB结构,也要释放它所占有的所有资源;而且,当一个祖先进程撤消某个子进程时,还需要审查该子进程是否还有自己的子孙进程,若有的话,还需撤消某个子进程的PCB结构和释放它们所占有的资源。因此,叙述(A)是错误的。

把并发进程的同步和互斥问题一般化,可以得到一个抽象的一般模型,即生产者/消费者问题。叙述(B)正确。

处理机的状态将从目态转换到管态。叙述(C)正确。

用户编程所使用的设备称为逻辑设备,而逻辑设备与物理设备的对应由操作系统的设备管理程序完成。叙述(D)正确。

7.正在运行的进程在信号量S上作P操作之后,当S<0,进程将进入信号量的。

(A)等待队列(B)提交队列

(C)后备队列(D)就绪队列

【答案】(A)

【解析】执行一次P操作意味着申请一个资源,即信号量S—1。如果S<0,表明该资源已经没有了,该进程只能等待,所以,此时进程的状态从运行变为等待,并插入到该信号量的等待队列中。

8.如果发现系统有的进程队列就说明系统有可能发生死锁了。

(A)互斥(B)可剥夺

(C)循环等待(D)同步

【答案】(C)

9.某个信号量S初值为3,当前值为-2,则等待在该信号量上的进程数为个。

(A)1(B)2

(C)3(D)5

【答案】(B)

【解析】等待在该信号量上的进程数与信号量的初值无关。

S>0时,S表示可使用的资源数;或表示可使用资源的进程数。

S=0时,表示无资源可供使用;但也没有进程等待该类资源。

S<0时,|S|表示等待使用资源的进程个数;或表示等待进入临界区的进程个数。

10.预先静态分配法是通过破坏条件,来达到预防死锁目的的。(A)互斥使用资源/循环等待资源

(B)非抢占式分配/互斥使用资源

(C) 占有且等待资源/循环等待资源

(D)循环等待资源/互斥使用资源

【答案】(C)

【解析】预先静态分配法,这是针对“占有且等待资源”、“循环等待资源”这两个条件提出的的策略。要求每一个进程在开始执行前就申请它所需要的全部资源,仅当系统能满足进程的资源要求且把资源分配给进程后,该进程才能开始执行。

这个策略毫无疑问能够防止死锁的发生,因为这样做破坏了以上两个条件。 11.设系统中有N(N>2)个进程,则系统中最不可能的是有个进程处于死锁状态。

(A)0 (B)1

(C)2 (D)M(2<M<=N)

【答案】(B)

【解析】所谓死锁是指计算机系统和进程所处的一种状态,在系统中,两个或多个进程无限期地等待永远不会发生的条件,我们称此系统处于死锁状态。

三、多项选择题

1.造成死锁的原因是_________。

(A)内存容量太小(B)系统进程数量太多,系统资源分配不当

(C)CPU速度太慢(D)进程推进顺序不合适

(E)外存容量太小

【答案】BD

【解析】所谓死锁是指计算机系统和进程所处的一种状态,在系统中,两个或多个进程无限期地等待永远不会发生的条件,我们称此系统处于死锁状态。产生死锁的原因一是系统进程数量太多,系统资源分配不当;二是进程推进顺序不合适。死锁的发生与内存容量、外存容量、CPU速度无关。

所以,应该选择(B)、(D)。

2.下列叙述正确的是_________。

(A)对临界资源应采取互斥访问方式来实现共享

(B)进程的并发执行会破坏程序的“封闭性”

(C)进程的并发执行会破坏程序的“可再现性”

(D)进程的并发执行就是多个进程同时占有CPU

(E)系统死锁就是程序处于死循环

【答案】ABC

【解析】进程的顺序性是指进程在处理器上的执行是按照程序规定的顺序,只有在前一个操作结束后才能开始下一个操作。

当一个进程独占处理器顺序执行时,具有两个特性:

(1)封闭性——进程执行的结果与其执行速度无关,只取决于进程本身。

(2)可再现性——只要初始条件相同,无论进程在什么时间执行都产生相同的结果。

在多道程序设计系统中同时存在着许多进程,在单处理器的情况下,一个进程的工作没有全部完成之前,另一个进程就可开始工作,这些可同时(交替)执行的进程具有并发性,把可同时执行的进程称为“并发进程”。

并发进程相互之间可能是无关的、各自独立的,而有些并发进程相互之间是有交往的,这些进程并发执行时,执行结果与其执行的相对速度有关,因而,进程的并发执行会破坏“封闭性”和“可再现性”。

所以,本题应该选择(A)、(B)、(C)。

3.通常不采用_________方法来解除死锁。

(A)终止一个死锁进程(B)终止所有死锁进程

(C)从死锁进程处抢夺资源(D)从非死锁进程处抢夺资源

(E)终止系统所有进程

【答案】DE

【解析】系统死锁后可采用抢夺这些进程占用的资源,或强迫死锁进程结束等办法来解除死锁。一般不会采用“从非死锁进程处抢夺资源”和“终止系统所有进程”的办法。因此,应该选择(D)、(E)。

4.在多进程的并发系统中,有关进程间的关系的正确说法是_________。

(A)都是逻辑上无关的(B)有些可能逻辑上无关的

(C)都是逻辑上有关的(D)有些可能逻辑上有关的

(E)它们之间都直接或间接发生关系

【答案】BDE

【解析】在多进程的并发系统中,进程间有些可能逻辑上无关,而有些可能逻辑上相关,但由于,它们之间的并行运行,它们之间都直接或间接的发生关系。因此,应该选择(B)、(D)、(E)。

5.通常使用的死锁防止策略有_________。

(A)动态分配资源(B)静态分配资源

(C)按序分配资源(D)非剥夺式分配资源

(E)剥夺式分配资源

【答案】BCE

【解析】通常使用的死锁防止策略有:

(1)静态分配资源。静态分配资源是指进程必须在开始执行前就申请它所要的全部资源,仅当系统能满足进程的资源申请要求且把资源分配给进程后,该进程才开始执行。即使得四个必要条件中的“占有并等待资源”和“循环等待资源”两个条件不成立,从而防止死锁的发生。

静态分配资源的策略实现起来简单,但却降低了资源的利用率。

(2)按序分配资源。对系统中每一个资源给出一个编号,规定任何一个进程申请两个以上资源时,总是先申请编号小的资源,再申请编号大的资源。按这种策略分配资源可破坏“循环等待资源”的条件,达到防止死锁的目的。

(3)剥夺式分配资源。剥夺式分配策略是当一个进程申请资源得不到满足时则可从另一个进程那里去抢夺。但这种分配策略只适用于对处理器和主存资源的分配,显然这种分配策略是破坏了非抢占条件以防止死锁的发生。

因此,应该选择(B)、(C)、(E)。

四、是非判断题

1.消息缓冲机制中,发送进程和接收进程之间存在有用来存放被传送消息的缓冲区,所以,它们之间存在对临界资源的使用问题。()【答案】正确。

【解析】使用消息缓冲机制传送数据时,这两个通信进程必须满足如下条件: a.在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该缓冲区消息队列的访问。同理,当接收进程正从消息队列中取消息缓冲时,也应禁止其他进程对该队列的访问。

b当缓冲区中无消息时,接收进程不能接收到消息。

2.假设二个进程的同步算法如下:

设初值 s1=1, s2=n, s3=0

进程1 进程2

p(s2) p(s3)

p(sl) p(s1)

… …

v(s2) v(s3)

v(sl) v(sl)

在上述同步算法中,PV原语的顺序都可颠倒。()

【答案】错误。

【解析】V原语的顺序可以颠倒,而P原语的顺序不能随便颠倒,如果颠倒了,可能会引起进程发生死锁。例如,进程1中p(s2)和p(s1)的顺序颠倒了,当某个时刻s2=0时,此时两个进程就发生死锁。

3.信号量作为一种资源对其操作不当,可造成系统的死锁。()【答案】正确

【解析】下面的例子就说明了此问题:

假设二个进程的同步算法如下:

设初值 s1=1, s2=0, s3=1

进程1 进程2

p(s1) p(s3)

p(s2) p(s1)

… …

v(s2) v(s3)

v(sl) v(sl)

在该同步算法中,可能会引起进程发生死锁。例如,当某个时刻s2=0时,进程1首先执行p(s1)和p(s2),则进程1变为等待状态;进程2一旦执行p(s3),再执行p(s1),进程2也将变为等待状态,此时两个进程就发生死锁。

五、简答题

1.简述信号量S的物理含义:

【解析】

S>0时,S表示可使用的资源数;或表示可使用资源的进程数。

S=0时,表示无资源可供使用;或表示不允许进程再进入临界区。

S<0时,|S|表示等待使用资源的进程个数;或表示等待进入临界区的进程个数。

当S>0时,调用P(S)的进程不会等待;调用V(S)后使可用资源数加1或使可用资源的进程数加1。

当S<= 0时,调用P(S)的进程必须等待;调用V(S)后将释放一个等待使用资源者或释放一个等待进入临界区者。

2.PV操作本身的如何定义的?

【解析】

PV操作是对信号量的操作,而信号量可以简单地理解为只允许PV操作对其操作的整型变量。它们的定义如下,其中S是信号量。

P(S):将S信号量值减1,若结果小于0,则调用P(S)的进程被置成等待状态;否则该进程继续执行。

V(S):将信号量S值加 1,若结果不大干0,则释放一个等待信号量S的进程,使其变为就绪状态。

P操作和V操作可表示成如下两个过程:

Procedure P(Var S:Semaphore);

begin S:=S-1;

if S<0 then W(S)

end;{P}

Procedure V(Var S:Semaphore);

beam S:=S+1

if S<=0 then R(S)

end ;{V}

其中W(S)表示将调用过程的进程置成等待状态;R(S)表示释放一个等待信号量S的进程。信号量的值应在初始化时确定。

3.用PV操作如何解决N个进程的互斥问题。

【解析】

设信号量S的初值为1,则n个进程的互斥问题可以采用以下方法解决: P1进程 P2进程… Pn进程

P(S) P(S) P(S)

临界区临界区临界区

V(S) V(S) V(S)

4.如果一个生产者和一个消费者他们共享的缓冲器(B)容量为可以存放n

件物品,如何用PV操作来实现他们正确地同步。

【解析】

设信号量empty(表示缓冲器中可存放多少件物品)的初值为n, 信号量full (表示缓冲器中存有几件物品)的初值为0。当缓冲器中没有放满n件物品时,生产者调用P(empty)都不会成为等待状态而可把物品存入缓冲器。但当缓冲器中已经有n件物品,生产者想再存入一件物品将被拒绝。每存入一件物品后,由于调用V(full),故empty的值表示缓冲器中可用的物品数,只要full>0,消费者调用P(full)后总可去取物品。每取走一件物品后,由于调用V(empty),便增加了一个可用来存放物品的位置。用指针k和t分别指示生产者往缓冲器存物品和消费者从缓冲器中取物品的相对位置,它们的初值为0,那么,一个生产者和一个消费者共用容量为n的缓冲器时,可如下进行同步工作:设信号量empty,full,初值为empty=n,full=0;整型变量k,t,初值k=t=0。

生产者进程:

begin

L1:produce a product;

P(empty);

B[k]:=product;

k:=(k十1)mod n;

V(full);

go to L1

end;

消费者进程:

begin

L2:P(full);

take a product from B[t];

t:=(t+1)mod n;

V(empty);

consume;

go to L2

end

5.进程通信方式有两种即:直接通信、间接通信,给出各自使用的原语形式。

【解析】

直接通信:

这种通信是固定在一对进程之间。例如,进程A把信件只发送给进程B,而进程B也只接收进程A的信件。那么,“send”和“receive”两条原语的形式如下:

send(B,M)把信件M发送给进程B

receive(A,X) 接收来自进程 A的信件且存入 X中

进程A和进程B通过“send”和“receive”操作而自动建立了一种联结。

间接通信:

这种通信是以信箱为媒体来实现通信的,只要接收信件的进程设立一个信箱,那么,若干个进程都可向同一个进程发送信件。利用信箱通信时,“send”,“receive”原语中应给出信箱名,即:

send(N,M)把信件M送入信箱N中

receive(N,X) 从信箱N中取出一封信存入X

6.产生死锁的原因是什么?

【解析】

(1)系统资源不足;

(2)进程推进顺序不合适。

在早期的系统中,由于系统规模较小,结构简单,以及资源分配大多采用静态分配法,使得操作系统死销问题的严重性未能充分暴露出来。但今天由于多道程序系统,以至于数据库系统的出现,系统中的共享性和并行性的增加,软件系统变得日益庞大和复杂等原因,使得系统出现死锁现象的可能性大大增加。

7.死锁发生的必要条件有哪些?

【解析】

发生死锁的必要条件有四点:互斥条件、不可抢占条件、部分分配条件和循环等待条件。

(1)互斥条件:系统中存在一个资源一次只能被一个进程所使用;

(2)非抢占条件:系统中存在一个资源仅能被占有它的进程所释放,而不能被别的进程强行抢占;

(3)占有且等待条件:系统中存在一个进程已占有了分给它的资源,但仍然等待其它资源;

(4)循环等待条件:在系统中存在一个由若干进程形成的环形请求链,其中的每一个进程均占有若干种资源中的某一种,同时每一个进程还要求(链上)下一个进程所占有的资源。

8.阐述预先静态分配法是如何进行死锁预防的。

【解析】

Havender(1968)提出的第一个策略就是预先静态分配法,这是针对部分分配条件的策略。要求每一个进程在开始执行前就申请它所需要的全部资源,仅当系统能满足进程的资源要求且把资源分配给进程后,该进程才能开始执行。

这个策略毫无疑问能够防止死锁的发生,因为这样做破坏了部分分配条件,但是它导致了严重的资源浪费。例如一个进程可能在运行到最后时需要一台打印机打印结果数据,但必须在进程运行前就把打印机分配给它,而且在进程运行的过程中并不使用打印机。

9.阐述按序分配资源法是如何进行死锁预防的。

【解析】

Havender提出的第二个策略是有序资源使用法,这是针对循环等待条件的,即系统设计者把系统中所有资源类都分给一个唯一的序号,如输入机=1,打印机=2,穿孔输出机=3,磁带机=4,等等。并且要求每个过程均应严格按递增的次序请求资源。亦即,只要进程提出请求资源,那么以后它只能请求排列在其后面的那些资源,而不能再要求序号低的那些资源。不难看出,由于对资源的请求

作出了这种限制,在系统中就不可能形成几个进程对资源的环形请求链,破坏了循环等待条件。

这种方法由于不是采用预先静态分配方法,而是基本上基于动态分配方法,所以资源利用率较前一方法提高了,特别是小心地安排资源序号,把一些各作业经常用到的、比较普通的资源安排成低序号,把一些比较贵重或稀少的资源安排成高序号,便可能使最有价值的资源的利用率大为提高。因为高序号的资源往往等到进程真正需要时,才提出请求分配给进程。而低序号的资源,在进程即使暂不需要的情况下,但是进程需要使用高序号资源,所以在进程请求分配高序号资源时,不得不提前同时请求以后需要的低序号资源,从而造成资源空闲等待的浪费现象。

10.为什么说不能通过破坏“互斥条件”来预防死锁。

【解析】

破坏互斥条件,即允许多个进程同时访问资源。但这受到资源本身的使用方法所决定,有些资源必须互斥访问,不能同时访问。如对公用数据访问必须是互斥的。又如几个进程同时使用打印机,一个进程打印一行(或几行),这种使用方式也是不可思议的,因此也必须互斥使用。所以企图通过破坏互斥条件来防止死锁是不太实际的。

11.防止死锁的分配策略中,它们各自存在的缺点。

【解析】

在防止死锁的分配策略中,有的只适用于对某些资源的分配,有的则会影响资源的使用效率。例如,剥夺式分配目前只适合于对处理器和主存资源的分配。静态分配策略把资源预先分配给进程,而这些进程占有了资源但可能在一段时间里并不使用它,这时其它想使用这些资源的进程却又得不到而等待,降低了资源的利用率。采用按序分配时各进程要求使用资源的次序往往不能与系统安排的次序一致,但申请资源时必须按编号的次序来申请,可能出现先申请到的资源在很长一段时间里闲置不用,也降低了资源的利用率。

12.解决临界段问题的原则是什么?

【解析】

对若干并发进程共享某一变量的相关临界区的管理有三点要求:

(1)一次至多一个进程能够进入临界区,当有进程处于临界区时,其它要进入临界区的进程必须等待。

(2)处于临界区中的进程必须在有限时间内退出。

(3)当有进程退出临界区时,应选择一个等待进入临界区的进程使其进入临界区。

13.现有四个进程:R1,R2,W1和W2,它们共享可以存放一个数的缓冲区B。进程R1每次把从键盘上读入的一个数存到缓冲区B中,供进程W1打印输出;进程R2每次把从磁盘上读一个数存放到缓冲区B中,供进程W2打印输出。怎样用P、V操作协调四个并发进程的工作。

【解析】

设信号量e,f1,f2;

其初值分别为 e=1,f1=0,f2=0

R1: R2:

L:

P(e)

从键盘上读入的一个数存到缓冲区B中

V(f1)

Goto L L:

P(e)

从键盘上读入的一个数存到缓冲区B中

V(f2)

Goto L

W1: W2:

L:

P(f1)

将缓冲区B中的数据打印输出

V(e)

Goto L L:

P(f2)

将缓冲区B中的数据打印输出

V(e)

goto L

六、综合应用题

1.设有3个并发执行的进程:输入进程Pi、计算进程Pc和输出进程Po。其中进程Pi不断地从键盘读入整数,放入缓冲区Buf1,Pc按输入顺序从Buf1中取数据,每次取出2个整数,计算其和,将结果放入缓冲区Buf2。Po负责将Buf2中的数据按顺序输出。设缓冲区Buf1、Buf2可存放的整数个数分别为m、n(m、n>0)。要求利用信号量的P、V操作写出进程Pi、Pc、Po的算法。

【参考答案】

设信号量e1,f1,e2,f2,其初值分别为:e1=m,f1=0,e2=n,f2=0

3个并发进程分别为:

Cobegin

Pi:

begin

L1: P(e1);

向Buf1中输入1个数;

V(f1);

Goto L1;

end

Pc:

begin

L2:P(f1);

x=从Buf1中读1个数;

V(e1);

P(f1);

y=从Buf1中读1个数;

V(e1);

P(e2);

将z送入Buf2中;

V(f2);

Goto L2;

end Po:

begin

L3:P(f2);

W=从Buf2中读1个数;

打印W;

V(e2);

Goto L3;

End

Coend

读者还可以考虑,通过引入下标变量对缓冲区进行存取。

2.今有3个并发进程R、M、P,它们共享一个缓冲器B。进程R负责向B中输入数据;进程R每输入一数据,进程M对其进行加工;进程M加工完成后,进程P 负责打印输出。缓冲器B中每次只能存放一个数据,数据一旦被打印,进程R 又可存放下一个数据,……。

用PV操作机制进行控制,写出三个进程的工作流程。

【参考答案】

设信号量e,f1,f2:semaphore;

初值 e=1;f1=f2=0;

Cobegin

Process R

Begin

L1:P(e);

生产一数据,放入缓冲区B;

V(f1);

Goto L1;

End; Process M

Begin

L2:P(f1);

加工缓冲区B中数据;

V(f2);

Goto L2;

End;

Process P

Begin

L3:P(f2);

打印缓冲区B中数据;

V(e);

End; Coend

第3章死锁习题及答案

第三章死锁习题 一、填空题 1.进程的“同步”和“互斥”反映了进程间①和②的关系。 【答案】①直接制约、②间接制约 【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。 2.死锁产生的原因是①和②。 【答案】①系统资源不足、②进程推进路径非法 【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。 3.产生死锁的四个必要条件是①、②、③、④。 【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件 【解析】 互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。 非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。 占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源, 循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。 4.在操作系统中,信号量是表示①的物理实体,它是一个与②有关的整型变量,其值仅能由③原语来改变。 【答案】①资源,②队列,③P-V 【解析】信号量的概念和P-V原语是荷兰科学家E.W.Dijkstra提出来的。信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。信号量的值只能由P-V原语来改变。 5.每执行一次P原语,信号量的数值S减1。如果S>=0,该进程①;若S<0,则②该进程,并把它插入该③对应的④队列中。 【答案】①继续执行,②阻塞(等待),③信号量,④阻塞(等待) 【解析】从物理概念上讲,S>0时的数值表示某类资源可用的数量。执行一次P原语,意味着请求分配一个单位的资源,因此描述为S=S-1。当S<0时,表示已无资源,这时请求资源的进程将被阻塞,把它排在信号量S的等待队列中。此时,S的绝对值等于信号量队列上的阻塞的进程数目。 6.每执行一次V原语,信号量的数值S加1。如果①,Q进程继续执行;如果S<=0,则从对应的②队列中移出一个进程R,该进程状态变为③。 【答案】①S>0,②等待,③就绪 【解析】执行一次V原语,意味着释放一个单位的资源。因此,描述为S=S+1。当S<0时,表示信号量请求队列中仍然有因请求该资源而被阻塞的进程。因此,应将信号量对应的阻塞队列中的第一个进程唤醒,使之转至就绪队列。 7.利用信号量实现进程的①,应为临界区设置一个信号量mutex。其初值为②,表示该资源尚未使用,临界区应置于③和④原语之间。

大学物理第8章磁场题库2(含答案)

第八章磁场 填空题(简单) 1、将通有电流为I的无限长直导线折成1/4圆环形状,已知半圆环的半径为R,则圆心O点的磁 感应强度大小为0 I。 8R 2、磁场的咼斯疋理表明磁场是无源场。 3、只要有运动电荷,其周围就有磁场产生; 4、(如图)无限长直导线载有电流∣1,矩形回路载有电流I 2, 12回路的AB边与长直导线平行。电 -IIL -IIL 流I i产生的磁场作用在∣2回路上的合力F的大小为012一0 1 2,F的方向水平向左。(综 2na 2 兀(a+b) 合) X X X X X / X X I ×v ×x√X X X V-X 4题图 5题图 5、有一圆形线圈,通有电流I ,放在均匀磁场B中,线圈平面与B垂直,则线圈上P点将受到安培力的作 用,其方向为指向圆心,线圈所受合力大小为_0 ___________ 。(综合) - - n 6、[ B dl =%v Ij是磁场中的安培环路定理,它所反映的物理意义 i =0 是在真空的稳恒磁场中,磁感强度B沿任一闭合路径的积分等于%乘以该闭合路径所包围的各电流的代数和。 7、磁场的高斯定理表明通过任意闭合曲面的磁通量必等于_0 ________ 。 8、电荷在磁场中不一定(填一定或不一定)受磁场力的作用。 9、磁场最基本的性质是对运动电荷、载流导线有力的作用。 10、如图所示,在磁感强度为B的均匀磁场中,有一半径为R的半球面, B与半球面轴线的夹角为:?。求通过该半球面的磁通量为-或二R2COS>。(综合) 12、一电荷以速度V运动,它既产生_________ 电场,又产生磁场。(填“产生”或 10题图

“不产生”) 13、一电荷为+q ,质量为m ,初速度为'0的粒子垂直进入磁感应强度为B的均匀磁场中,粒子将作匀速圆周___ 运动,其回旋半径R= m°,回旋周期T= 2^m Bq Bq 14、把长直导线与半径为R的半圆形铁环与圆形铁环相 连接(如图a、b所示),若通以电流为I ,贝U a圆心O 的磁感应强度为—O=_____________ ; -I 图b圆心O的磁感应强度为J 。 4R I i 。这一重要结论称为磁场的环路定理,其 15、在磁场中磁感应强度B沿任意闭合路径的线积分总等于 数学表达式为「I Bdf=二o'? I。 16、磁场的高斯定理表明磁场具有的性质磁感应线是闭合的,磁场是无源场。 18、在磁场空间分别取两个闭合回路,若两个回路各自包围载流导线的根数不同,但电流的代数和相同,则磁 感应强度沿两闭合回路的线积分相同,两个回路的磁场分布不相同。(填“相同”或“不相同”) 判断题(简单) 1安培环路定理说明电场是保守力场。(×) 2、安培环路定理说明磁场是无源场。(×) 3、磁场的高斯定理是通过任意闭合曲面的磁通量必等于零。(√ ) 4、电荷在磁场中一定受磁场力的作用。(×) 5、一电子以速率V进入某区域,若该电子运动方向不改变,则该区域一定无磁场;(× ) 6、在B=2特的无限大均匀磁场中,有一个长为L仁2.0米,宽L2=0.50米的矩形线圈,设线圈平 面的法线方向与磁场方向相同,则线圈的磁通量为1Wb (×) 7、磁场力的大小正比于运动电荷的电量。如果电荷是负的,它所受力的方向与正电荷相反。(√) &运动电荷在磁场中所受的磁力随电荷的运动方向与磁场方向之间的夹角的改变而变化。当电荷的运动方向与磁场方向一致时,它不受磁力作用。而当电荷的运动方向与磁场方向垂直时,它所受的磁力为最大。

操作系统实验报告死锁的避免

操作系统实验(二)死锁的避免 1. 实验内容 使用C++实现模拟随机算法和银行家算法 2. 实验目的 (1)了解死锁的产生原因(随机算法) (2)理解死锁的解决办法(银行家算 法) 3?实验题目 使用随机算法和银行家算法设计程序

操作系统实验(二)死锁的避免4?程序流程图

银行家算法流程图 安全性算法流程图

5?程序代码和运行结果 #i nclude #i nclude typedef struct { int A; int B; int C; }RES; #defi ne false 0 #defi ne true 1

〃系统中所有进程数量 #defi ne PNUMBER 3 //最大需求矩阵 RES Max[PNUMBER]; //已分配资源数矩阵 RES Allocatio n[ PNUMBER]; //需求矩阵 RES Need[PNUMBER]; 〃可用资源向量 RES Available={0,0,0}; //安全序列 int safe[PNUMBER]; void setCo nfig() { int i=0,j=0; prin tf("================开始手动配置资源==================\n"); 〃可分配资源 printf("输入可分配资源\n"); sca nf("%d%d%d",&Available.A,&Available.B,&Available.C); //最大需求矩阵MAX printf("输入最大需求矩阵%dx%d\n",PNUMBER,PNUMBER ); for (i=0;i

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

第5章死锁 1)选择题 (1)为多道程序提供的可共享资源不足时,可能出现死锁。但是,不适当的_C__ 也可能产生死锁。 A. 进程优先权 B. 资源的线性分配 C. 进程推进顺序 D. 分配队列优先权 (2)采用资源剥夺法可以解除死锁,还可以采用_B___ 方法解除死锁。 A. 执行并行操作 B. 撤消进程 C. 拒绝分配新资源 D. 修改信号量 (3)发生死锁的必要条件有四个,要防止死锁的发生,可以通过破坏这四个必要条件之一来实现,但破坏_A__ 条件是不太实际的。 A. 互斥 B. 不可抢占 C. 部分分配 D. 循环等待 (4)为多道程序提供的资源分配不当时,可能会出现死锁。除此之外,采用不适当的_ D _ 也可能产生死锁。 A. 进程调度算法 B. 进程优先级 C. 资源分配方法 D. 进程推进次序 (5)资源的有序分配策略可以破坏__D___ 条件。 A. 互斥使用资源 B. 占有且等待资源 C. 非抢夺资源 D. 循环等待资源 (6)在__C_ 的情况下,系统出现死锁。 A. 计算机系统发生了重大故障 B. 有多个封锁的进程同时存在 C. 若干进程因竞争资源而无休止地相互等待他方释放已占有的资源 D. 资源数大大小于进程数或进程同时申请的资源数大大超过资源总数 (7)银行家算法在解决死锁问题中是用于_B__ 的。 A. 预防死锁 B. 避免死锁 C. 检测死锁 D. 解除死锁 (8)某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是_C__ 。 A. 12 B. 11 C. 10 D. 9 (9)死锁与安全状态的关系是_A__ 。 A. 死锁状态一定是不安全状态 B. 安全状态有可能成为死锁状态 C. 不安全状态就是死锁状态 D. 死锁状态有可能是安全状态

操作系统实验报告利用银行家算法避免死锁

计算机操作系统实验报告 题目利用银行家算法避免死锁 一、实验目的: 1、加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 2、要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、实验内容: 用银行家算法实现资源分配: 设计五个进程{p0,p1,p2,p3,p4}共享三类资源{A,B,C}的系统,例如,{A,B,C}的资源数量分别为10,5,7。进程可动态地申请资源和释放资源,系统按进程的申请动态地分配资源,要求程序具有显示和打印各进程的某一个时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。 三、问题分析与设计: 1、算法思路: 先对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。 2、银行家算法步骤: (1)如果Requesti<or =Need,则转向步骤(2);否则,认为出错,因

为它所需要的资源数已超过它所宣布的最大值。 (2)如果Request<or=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。 (3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值: Available=Available-Request[i]; Allocation=Allocation+Request; Need=Need-Request; (4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。 3、安全性算法步骤: (1)设置两个向量 ①工作向量Work。它表示系统可提供进程继续运行所需要的各类资源数目,执行安全算法开始时,Work=Allocation; ②布尔向量Finish。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]=false,当有足够资源分配给进程时,令Finish[i]=true。 (2)从进程集合中找到一个能满足下述条件的进程: ①Finish[i]=false ②Need

操作系统死锁练习及答案

死锁练习题 (一)单项选择题 l系统出现死锁的根本原因是( )。 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.用银行家算法避免死锁时,检测到( )时才分配资源。 A.进程首次申请资源时对资源的最大需求量超过系统现存的资源量 B.进程己占用的资源数与本次申请资源数之和超过对资源的最大需求量 c.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需的最大资源量 D进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需的最大资源量 7.实际的操作系统要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用 ( )策略。 A死锁的防止 B.死锁的避免 c.死锁的检测 D.死锁的防止、避免和检测的混合(一)单项选择题 1.D 2.C 3.B 4.D 5.A 6 C 7 D (二)填空题 l若系统中存在一种进程,它们中的每一个进程都占有了某种资源而又都在等待其中另一个进程所占用的资源。这种等待永远不能结束,则说明出现了______。 2.如果操作系统对 ______或没有顾及进程______可能出现的情况,则就可能形成死锁。3.系统出现死锁的四个必要条件是:互斥使用资源,______,不可抢夺资源和______。 4.如果进程申请一个某类资源时,可以把该类资源中的任意一个空闲资源分配给进程,则说该类资源中的所有资源是______。 5.如果资源分配图中无环路,则系统中______发生。 6.为了防止死锁的发生,只要采用分配策略使四个必要条件中的______。 7.使占有并等待资源的条件不成立而防止死锁常用两种方法:______和______. 8静态分配资源也称______,要求每—个进程在______就申请它需要的全部资源。 9.释放已占资源的分配策略是仅当进程______时才允许它去申请资源。 10抢夺式分配资源约定,如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时、系统可以______该进程已占有的资源。 11.目前抢夺式的分配策略只适用于______和______。 12.对资源采用______的策略可以使循环等待资源的条件不成立。 13.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于______。 14.只要能保持系统处于安全状态就可______的发生。 15.______是一种古典的安全状态测试方法。 16.要实现______,只要当进程提出资源申请时,系统动态测试资源分配情况,仅当能确保系统安全时才把资源分配给进程。 17.可以证明,M个同类资源被n个进程共享时,只要不等式______成立,则系统一定不会发生死锁,其中x为每个进程申请该类资源的最大量。 18.______对资源的分配不加限制,只要有剩余的资源,就可把资源分配给申请者。 19.死锁检测方法要解决两个问题,一是______是否出现了死锁,二是当有死锁发生时怎样去______。 20.对每个资源类中只有一个资源的死锁检测程序根据______和______两张表中记录的资源情况,把进程等待资源的关系在矩阵中表示出

大学物理第8章 磁场题库2(含答案)..

第八章 磁场 填空题 (简单) 1、将通有电流为I 的无限长直导线折成1/4圆环形状,已知半圆环的半径为R ,则圆心O 点的磁 感应强度大小为 08I R μ 。 2、磁场的高斯定理表明磁场是 无源场 。 3、只要有运动电荷,其周围就有 磁场 产生; 4、(如图)无限长直导线载有电流I 1,矩形回路载有电流I 2,I 2回路的AB 边与长直导线平行。电 流I 1产生的磁场作用在I 2回路上的合力F 的大小为01201222() I I L I I L a a b μμππ- +,F 的方向 水平向左 。 (综合) 5、有一圆形线圈,通有电流I ,放在均匀磁场B 中,线圈平面与B 垂直,则线圈上P 点将受到 安培 力的作用,其方向为 指向圆心 ,线圈所受合力大小为 0 。(综合) 6、∑?==?n i i l I l d B 0 0μ 是 磁场中的安培环路定理 ,它所反映的物理意义 是 在真空的稳恒磁场中,磁感强度B 沿任一闭合路径的积分等于0μ乘以该闭合路径所包围的各电流的代数 和。 7、磁场的高斯定理表明通过任意闭合曲面的磁通量必等于 0 。 8、电荷在磁场中 不一定 (填一定或不一定)受磁场力的作用。 9、磁场最基本的性质是对 运动电荷、载流导线 有力的作用。 10、如图所示,在磁感强度为B 的均匀磁场中,有一半径为R 的半球面, B 与半球面轴线的夹角为α。求通过该半球面的磁通量为2 cos B R πα-。(综合) 12、一电荷以速度v 运动,它既 产生 电场,又 产生 磁场。(填“产生”或 4题图 5题图

“不产生”) 13、一电荷为+q ,质量为m ,初速度为0υ的粒子垂直进入磁感应强度为B 的均匀磁场中,粒子将作 匀速圆 周 运动,其回旋半径R= 0m Bq υ,回旋周期T=2m Bq π 。 14、把长直导线与半径为R 的半圆形铁环与圆形铁环相连接(如图a 、b 所示),若通以电流为I ,则 a 圆心O 的磁感应强度为___0__________; 图b 圆心O 的磁感应强度为 04I R μ。 15、在磁场中磁感应强度B 沿任意闭合路径的线积分总等于0i I μ∑ 。这一重要结论称为磁场的环路定理,其 数学表达式为 l B dl I μ=∑?。 16、磁场的高斯定理表明磁场具有的性质 磁感应线是闭合的,磁场是无源场 。 18、在磁场空间分别取两个闭合回路,若两个回路各自包围载流导线的根数不同,但电流的代数和相同,则磁感应强度沿两闭合回路的线积分 相同 ,两个回路的磁场分布 不相同 。(填“相同”或“不相同” ) 判断题 (简单) 1、安培环路定理说明电场是保守力场。 ( × ) 2、安培环路定理说明磁场是无源场。 ( × ) 3、磁场的高斯定理是通过任意闭合曲面的磁通量必等于零。 ( √ ) 4、电荷在磁场中一定受磁场力的作用。 ( × ) 5、一电子以速率V 进入某区域,若该电子运动方向不改变,则该区域一定无磁场;( × ) 6、在B=2特的无限大均匀磁场中,有一个长为L1=2.0米,宽L2=0.50米的矩形线圈,设线圈平 面的法线方向与磁场方向相同,则线圈的磁通量为1Wb 。 ( × ) 7、磁场力的大小正比于运动电荷的电量。如果电荷是负的,它所受力的方向与正电荷相反。(√) 8、运动电荷在磁场中所受的磁力随电荷的运动方向与磁场方向之间的夹角的改变而变化。当电荷的运动方向与磁场方向一致时,它不受磁力作用。而当电荷的运动方向与磁场方向垂直时,它所受的磁力为最大。

操作系统实验报告-死锁的避免

操作系统实验报告-死锁的避免

操作系统实验(二)死锁的避免 1.实验内容 使用C++实现模拟随机算法和银行家算法 2.实验目的 (1)了解死锁的产生原因(随机算法) (2)理解死锁的解决办法(银行家算法) 3.实验题目 使用随机算法和银行家算法设计程序 4.程序流程图 主要过程流程图

银行家算法流程图

安全性算法流程图

5.程序代码和运行结果#include #include typedef struct { int A; int B; int C; }RES; #define false 0

#define true 1 //系统中所有进程数量 #define PNUMBER 3 //最大需求矩阵 RES Max[PNUMBER]; //已分配资源数矩阵 RES Allocation[PNUMBER]; //需求矩阵 RES Need[PNUMBER]; //可用资源向量 RES Available={0,0,0}; //安全序列 int safe[PNUMBER]; void setConfig() { int i=0,j=0; printf("================开始手动配置资源==================\n"); //可分配资源 printf("输入可分配资源\n"); scanf("%d%d%d",&Available.A,&Available.B,&Available.C); //最大需求矩阵MAX printf("输入最大需求矩阵%dx%d\n",PNUMBER,PNUMBER ); for (i=0;i

实验二死锁的检测与避免

实验二死锁的检测与避免—银行家算法 一、实验目的 1、了解进程产生死锁原因,了解为什么要避免死锁。 2、掌握银行家算法的数据结构,了解算法的执行过程,加深对银行家算法的理 解。 二、实验内容及步骤 采用银行家算法来实现一个n 个并发进程共享m 个系统资源的系统。进程可 以申请和释放资源,系统可以按照各进程的申请计算是否可以分配给其资源。 1、创建C语言工程项目,按照教材上的有关说明,定义相应的数据结构。 2、给各个数据结构设定合适的初始值。 注意:步骤1、2可同时进行,即利用C语言中的定义变量就可同时初始化的 方式进行数值初设。 3、依据银行家算法的描述依次进行资源的试探性分配,直至成功或失败,成功 则说明当前状态是安全的;失败后,还应该将资源回到初始状态,并进行另一 次试探;只有所有的试探都失败了,才能说明当前状态是不安全的。 通常,这种试探性算法采用递归的方法是很合适的,程序也是很简洁的。 三、实验原理 1、银行家算法的思路 先对用户提出的请求进行合法性检查,即检查请求的是不大于需要的,是否不大于可利用的。若请求合法,则进行试分配。最后对试分配后的状态调用安全性检查算法进行安全性检查。若安全,则分配,否则,不分配,恢复原来状态,拒绝申请。 2、银行家算法程序流程图(图2-1)

银行家算法(图2-1) 安全性算法(图2-2)

四、实验结果及分析 (一): 1、T0时刻安全性 2、P1发出请求向量Request 1(1,0,2) 3、P4发出请求向量Request 4(3,3,0) 4、P0发出请求向量Request 0(0,2,0) (二): 1、 该状态是否安全? 2、 P2发出请求向量Request (1,2,2 ,2)后,系统能否将资源分配给它? (三)、自行设计一组资源分配数据,要求资源数大于等于3,进程数大于等于3,有2次预分配。

操作系统实验报告利用银行家算法避免死锁完整版

操作系统实验报告利用 银行家算法避免死锁 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

计算机操作系统实验报告题目利用银行家算法避免死锁 一、实验目的: 1、加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 2、要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、实验内容: 用银行家算法实现资源分配: 设计五个进程{p0,p1,p2,p3,p4}共享三类资源{A,B,C}的系统,例如,{A,B,C}的资源数量分别为10,5,7。进程可动态地申请资源和释放资源,系统按进程的申请动态地分配资源,要求程序具有显示和打印各进程的某一个时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。 三、问题分析与设计: 1、算法思路: 先对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后

的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。 2、银行家算法步骤: (1)如果Requesti<or =Need,则转向步骤(2);否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。 (2)如果Request<or=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。 (3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值: Available=Available-Request[i]; Allocation=Allocation+Request; Need=Need-Request; (4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。 3、安全性算法步骤: (1)设置两个向量 ①工作向量Work。它表示系统可提供进程继续运行所需要的各类资源数目,执行安全算法开始时,Work=Allocation; ②布尔向量Finish。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]=false,当有足够资源分配给进程时,令Finish[i]=true。 (2)从进程集合中找到一个能满足下述条件的进程:

2017ITE第八章题目及答案

?Assessment Results ?Item Feedback Report IT Essentials (Version 6.00) - ITE 第8 章 Below is the feedback on items for which you did not receive full credit. Some interactive items may not display your response. Subscore: 1 用户注意到用户计算机中千兆位网卡的数据传输速率比预期要慢 的可能原因是什么? 正确响应您的响应 网卡双工设置不知何故已经设为半双工。 休眠模式导致网卡意外关闭。 网卡LAN 唤醒设置配置错误。 网卡配置为同时使用IPv4 和IPv6。 为了获得最佳的性能,千兆位网卡应该在全双工模式下运行。两台设备之间的双工模式不匹配可 全双工传输允许在每个方向上实现1000 Mb/s 的传输速率。 此试题参考以下领域的内容: IT Essentials ?8.1.1 网络卡 2 通常网卡上有两个LED。这些LED 的两个主要用途是什么?(选择两项 正确响应您的 响应 表示网卡已连接到家庭组或工作组

表示存在连接 表示存在数据传输活动 表示有来自另一邻近无线设备或电子设备的干扰 表示网卡已连接到DHCP 服务器 以太网网卡通常有两个LED,有时两个都呈绿色,有时一个呈绿色,一个呈琥珀色。一个指示灯表示存在与活 如路由器或网络交换机。另一个LED 闪烁表示有数据活动。 此试题参考以下领域的内容: IT Essentials ?8.1.1 网络卡 3 用于在Windows PC 上建立新网络连接的网络配置文件 的作用是什么? 正确响应您的 响应 提供可能用于Internet 访问的ISP 列表 消除连接网络时对IP 地址的需求 提供一种轻松的方法,根据要加入的网络类型来配置或应用网络功能 配置网卡设置,实现最快的网络 配置新网络连接时需要选择一个Windows 网络位置。网络位置配置文件是一个网络设 置集合,默认已为每类位置创建了该文件,这种文件可帮助用户轻松地加入一个网络。 此试题参考以下领域的内容: IT Essentials ?8.1.2 无线和有线路由器配置

操作系统实验报告-利用银行家算法避免死锁

计算机操作系统实验报告题目利用银行家算法避免死锁 一、实验目得: 1、加深了解有关资源申请、避免死锁等概念,并体会与了解死锁与避免死锁得具体实施方法。 2、要求编写与调试一个系统动态分配资源得简单模拟程序,观察死锁产生得条件,并采用银行家算法,有效得防止与避免死锁得发生。 二、实验内容: 用银行家算法实现资源分配: 设计五个进程{p0,p1,p2,p3,p4}共享三类资源{A,B,C}得系统,例如,{A,B,C}得资源数量分别为10,5,7。进程可动态地申请资源与释放资源,系统按进程得申请动态地分配资源,要求程序具有显示与打印各进程得某一个时刻得资源分配表与安全序列;显示与打印各进程依次要求申请得资源号以及为某进程分配资源后得有关资源数据。 三、问题分析与设计: 1、算法思路: 先对用户提出得请求进行合法性检查,即检查请求就是否大于需要得,就是否大于可利用得。若请求合法,则进行预分配,对分配后得状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来得状态,拒绝申请。

2、银行家算法步骤: (1)如果Requesti

死锁避免算法设计报告

漳州师范学院 操作系统课程设计 死锁避免算法设计 姓名: 学号: 系别: 专业: 年级: 指导教师: 一、课程设计题目介绍(含设计目的)

死锁避免算法设计是通过模拟实现银行家算法实现死锁避免目的: 1、了解进程产生死锁的原因,了解为什么要进行死锁的避免。 2、掌握银行家算法的数据结构,了解算法的执行过程,加深对银行家算法的理解。 3、通过运用Dijkstra的银行家算法来避免多个进程运行中因争夺资源而造成僵局,即死锁 要求: 本课程设计可以实现教材3.6.3节中所描述的银行家避免死锁算法。 可自定义进程数目、资源类型和每种类型资源的数目; 可输入每个进程对每种资源的最大需求、已经获得的数量; 当某进程发起某种资源请求时,计算系统状态是否安全。 思想: 操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配,从而达到死锁的避免。

二、总体设计(含系统的结构、原理框图或模块介绍等) 1.系统的结构 2.原理框图 从主函数开始进入银行家算法系统,先调用初始化函数chushihua()分别输入Allocation[i][j],Max[i][j],All[y]并判断是否符合条件,在调用函数show(),输出当前状态Available,Max[i][j],Allocation[i][j],Need[i][j]。然后调用安全性算法函数safe()判断在该时刻是否处于安全状态,并输出安全序列。然后调用银行家算法函数bank()进行试分配后再调用安全性算法函数判断在该时刻是否处于安全状态,若不安全,则恢复试分配时改变的值。

《操作系统原理》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.先来先服务算法D.分级调度算法 6.用银行家算法避免死锁时,检测到( )时才分配资源。 A.进程首次申请资源时对资源的最大需求量超过系统现存的资源量 B.进程己占用的资源数与本次申请资源数之和超过对资源的最大需求量 C.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需的最大资源量 D进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需的最大资源量 7.实际的操作系统要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用( )策略。 A死锁的防止B.死锁的避免C.死锁的检测D.死锁的防止、避免和检测的混合 (二)填空题 1.若系统中存在一种进程,它们中的每一个进程都占有了某种资源而又都在等待其中另一个进程所占用的资源。这种等待永远不能结束,则说明出现了______。 2.如果操作系统对______或没有顾及进程______可能出现的情况,则就可能形成死锁。 3.系统出现死锁的四个必要条件是:互斥使用资源,______,不可抢夺资源和______。 4.如果进程申请一个某类资源时,可以把该类资源中的任意一个空闲资源分配给进程,则说该类资源中的所有资源是______。 5.如果资源分配图中无环路,则系统中______发生。 6.为了防止死锁的发生,只要采用分配策略使四个必要条件中的______。 7.使占有并等待资源的条件不成立而防止死锁常用两种方法:______和______. 8静态分配资源也称______,要求每—个进程在______就申请它需要的全部资源。 9.释放已占资源的分配策略是仅当进程______时才允许它去申请资源。 10.抢夺式分配资源约定,如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时、系统可以______该进程已占有的资源。 11.目前抢夺式的分配策略只适用于______和______。 12.对资源采用______的策略可以使循环等待资源的条件不成立。 13.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于______。14.只要能保持系统处于安全状态就可______的发生。 15.______是一种古典的安全状态测试方法。 16.要实现______,只要当进程提出资源申请时,系统动态测试资源分配情况,仅当能确保系统安全时才把资源分配给进程。

电子商务师第八章试题答案解析

是非题: 1.物流活动实际上就是我们常说的储运业。(×) 2. 电子商务不仅要求物流管理人员既具有较高的物流管理水平,而且也要求物流管理员要具有较高的电子商务知识,并在实际的动作过程中,能有效地将二者有机地结合在一起。(√) 3.物流系统由物流信息系统和物流作业系统两个子系统组成。(√) 4. 由于近年来国际贸易的快速发展,国际分工日益明显,国家采购急剧扩大以及世界经济的一体化,国际物流正成为现代物流的研究重点之一。(√) 5. 宏观物流是在企业经营范围内由生产或服务活动所形成的物流系统,是以盈利为目的,运用生产要素,为各类用户从事各种后勤保障活动,即流通和服务活动。 ( ×) 6. 企业生产物流将企业生产的全过程作为一个整体加以研究,在很大程度上降低了生产过程中物流活动与实际加工所占用的时间比,从而可以大大缩短企业产品的生产周期,提高了生产效率.(√) 7. 工厂在生产过程中有关的废弃包装容器和材料、生产过程中产生的其他废弃物的运输、验收、保管和出库,以及企业对在生产过程中排放的无用物包括有害物质进行运输、装卸、处理等物流活动称为废弃物流与回收物流。(√) 8. 企业采购物流所研究的主要问题包括企业生产的供应网络、供应方式和零库存问题等。(√) 9.生产企业的物流活动包括了从原材料采购到产品销售等各个物流过程,其中,生产物流是主要的过程。( ×) 10. 商品企业采购物流的特点是减少企业的库存资金、增加流动资金和保证安全库存量。(√) 11. 第二方物流,曲供方与需方以外的物流企业提供物流服务的业务模式。 (√) 12. 由于可以组织若干客户的共同物流,这对于不能形成规模优势的单独的客户而言,将业务外包给第三方物流,可以通过多个客户所形成的规模来降低成本。(×) 13. 第三方物流服务业经营方式有生产商自备卡车送货等方式。 ( ×) 14.物流是由商品的运输、仓储、包装、搬运装卸和流通加工所形成的系统。(×) 15.“商流”消除了商品的场所间隔和时间间隔,“物流”消除了商品的社会间隔。(×) 16.物流活动实际上就是我们常说的储运业。(×) 17.综合物流是传统物流和现代物流等予以综合的考虑。(×) 18.商品流通领域的二大基本要素是物流和资金流,它们的关系是相辅相成、互相补充。(×)19.在流通领域中,从买方角度出发的交易行为中的物流活动为销售物流。(×) 20.一个生产企业,其物流的运作过程包括商品的进、销、调、存、退等各个环节。(×) 21.企业内部物流是企业生产活动的中心环节,是贯穿在企业的整个生产过程中的物流活动,实际上是生产过程的一部分。(√) 22.销售物流不属于商业企业的物流活动。(×) 23.一个商业企业,其物流的运作过程包括商品的进、销、调、存、退等各个环节。(√) 24.流通领域的供应物流,是指交易活动中从买方角度出发在交易中所发生的物流。(√) 25.按照物流所起的作用可以将物流分为供应物流、销售物流、生产物流、回收物流、废弃物流。(√) 26.生产企业的物流活动包括了从原材料采购到产品销售等各个物流过程,其中,生产物流是主要 的过程。 (√) 27. 商品企业采购物流的特点是减少企业的库存资金、增加流动资金和保证安全库存量。(√) 28.第三方物流服务所体现出的社会物流配送的价值和给企业、客户带来的益处之一是有利于企业实现规模化经营,提高规模效益。(√) 29.“传统物流”的功能是克服商品从生产到消费的时空阻隔的一种物理性的经济活动。(×) 30.储运的概念中并不涉及存储运输与其他活动整体系统化合最优化的问题。(√) 31.一般所指的“logistics”的内涵比“physical distribution”外延更为广泛。(√) 32.物流通过存储调节解决对货物的需求和供给之间的供需间隔。(×) 33.商品的生产和消费之间存在的间隔有社会间隔、信息间隔、场所间隔和时间间隔。(×)

银行家算法实验报告

计算机操作系统实验报告 一、实验名称:银行家算法 二、实验目的:银行家算法是避免死锁的一种重要方法,通过编写一个简 单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 三、问题分析与设计: 1、算法思路:先对用户提出的请求进行合法性检查,即检查请求是 否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安 全,则拒绝申请,恢复到原来的状态,拒绝申请。 2、银行家算法步骤:(1)如果Requesti<or =Need,则转向步骤(2); 否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。 (2)如果Request<or=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。 (3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的 数值: Available=Available-Request[i]; Allocation=Allocation+Request; Need=Need-Request;

(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状 态。 3、安全性算法步骤: (1)设置两个向量 ①工作向量Work。它表示系统可提供进程继续运行所需要的各类资源数目,执行安全算法开始时,Work=Allocation; ②布尔向量Finish。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]=false,当有足够资源分配给进程时,令 Finish[i]=true。 (2)从进程集合中找到一个能满足下述条件的进程: ①Finish[i]=false ②Need

相关文档
最新文档