黄山奇石ppt:进程管理--练习题

来源:百度文库 编辑:九乡新闻网 时间:2024/03/19 10:28:55

1.在进程管理中,当  C  时,进程从阻塞状态变为就绪状态。

A.进程被进程调度程序选中           B.等待某一事件

C.等待的事件发生                   D.时间片用完

2.分配到必要的资源并获得处理机时的进程状态是  B 

A.就绪状态        B.执行状态        C.阻塞状态        D.撤消状态

3.P、V操作是  A 

A.两条低级进程通信原语             B.两组不同的机器指令

C.两条系统调用命令                 D.两条高级进程通信原语

4.设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,

不可能发生的情况是  A 

A.没有运行进程,有2个就绪进程,n个进程处于等待状态。

B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。

C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。

D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。

5.若P、V操作的信号量S初值为2,当前值为-1,则表示有  B  等待进程。

A. 0个           B. 1个           C. 2个           D. 3个

6.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是    D

A.时间片用完                       B.等待某事件发生

C.等待的某事件已发生               D.被进程调度程序选中

7.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是   B 

A.时间片用完                       B.等待某事件发生

C.等待的某事件已发生               D.被进程调度程序选中

8.下列的进程状态变化中, C 变化是不可能发生的。

A.运行à就绪     B.运行à就绪     C.等待à运行     D.等待à就绪

9.一个运行的进程用完了分配给它的时间片后,它的状态变为   A 

A.就绪            B.等待            C.运行            D.由用户自己确定

10.用V操作唤醒一个等待进程时,被唤醒进程的状态变为   B  

A.等待            B.就绪            C.运行            D.完成

11.操作系统通过  B  对进程进行管理。

A. JCB            B. PCB            C. DCT            D. CHCT

12.用P、V操作可以解决  A 互斥问题。

A. 一切           B. 某些           C. 正确           D. 错误

13.一个进程被唤醒意味着  D 

A. 该进程重新占有了CPU             B. 它的优先权变为最大

C. 其PCB移至等待队列队首          D. 进程变为就绪状态

14.多道程序环境下,操作系统分配资源以 C  为基本单位。

A. 程序           B. 指令           C. 进程           D. 作业

15. 从静态的角度看,进程是由(A)、(B)、(C)三部分组成的,其中(C)是进程存在的唯一标志。当几个进程共享(A)时,(A)应当是可重入代码。

A:程序段

B:数据段

C:PCB

16. 进程的三个基本状态是(A)、(B)、(C)。由(A)到(B)是由进程调度所引起的;由(B)到(C)是正在执行的进程发生了某事件,使之无法继续执行而引起的。

A:就绪;

B:执行

C:阻塞;

17. 正在等待他人释放临界资源的进程处于(A)状态,已分配到除CPU外的所有资源的进程处于(B)状态,已获得CPU的进程处于(C)状态。

A:阻塞

B:就绪

C:执行

18. 下列进程状态转换中,绝对不可能发生的状态转换是(A);一般不会发生的状态转换是(B)。

A:就绪à阻塞

B:阻塞à执行

19. 在一个单处理机系统中,存在5个进程,最多可有(A)个进程处于就绪队列;如果这5个进程中有一个系统进程IDLE(也叫空转进程,因为它只是不断循环地执行空语句),则最多可有(B)个进程处于阻塞状态。

A,B:(1)5;(2)4;(3)3;(4)2;(5)1;(6)0。

20. 正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为(A)状态;处于静止阻塞状态的进程,在进程等待的事件出现后,应变为(B)状态;若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为(C)状态,若进程已处于阻塞状态;则此时应转变为(D)状态。

A:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。

B:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。

C:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。

D:(1)静止阻塞;(2)活动阻塞;(3)静止就绪;(4)活动就绪;(5)执行。

21. 为使进程由活动就绪转变为静止就绪,应利用(A)原语;为使进程由执行状态转变为阻塞状态,应利用(B)原语;为使进程由静止就绪变为活动就绪,应利用(C)原语;从阻塞状态变为就绪状态应利用(D)原语。

A:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。

B:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。

C:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup。

D:(1)create;(2)suspend;(3)active;(4)block;(5)wakeup

22. 在分时系统中,导致进程创建的典型事件是(A);在批处理系统中,导致进程创建的典型事件是(B);由系统专门为运行中的应用进程创建新进程的事件是(C)。在创建进程时,(D)不是创建所必需的步骤。

A:(1)用户注册;(2)用户登录;(3)用户记账;(4)用户通信。

B:(1)作业录入;(2)作业调度;(3)进程调度;(4)中级调度。

C:(1)分配资源;(2)进行通信;(3)共享资源;(4)提供服务

D:(1)为进程建立PCB;(2)为进程分配内存等资源;(3)为进程分配CPU;(4)将进程插入就绪队列。

23. 从下面对临界区的论述中,选出一条正确的论述。

(1)临界区是指进程中用于实现进程互斥的那段代码。

(2)临界区是指进程中用于实现进程同步的那段代码。

(3)临界区是指进程中用于实现进程通信的那段代码。

(4)临界区是指进程中用于访问共享资源的那段代码。

(5)临界区是指进程中访问临界资源的那段代码。

24. 进程A和B共享同一临界资源,并且进程A正处于对应的临界区内执行。请从下列描述中选择一条正确的描述。C

A. 进程A的执行不能被中断,即临界区的代码具有原子性。

B. 进程A的执行能被中断,但中断A后,不能将CPU调度给进程B。

C. 进程A的执行能被中断,而且只要B进程就绪,就可以将CPU调度给进程B。

D. 进程A的执行能被中断,而且只要B进程就绪,就必定将CPU调度给进程B。

25. (A)是一种只能由wait和signal操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。

A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。

B:(1)同步;(2)通信;(3)调度;(4)互斥

C:(1)同步;(2)通信;(3)调度;(4)互斥。

26. 对于记录型信号量,在执行一次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.

27. 用信号量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。

28. 设有10个进程共享一个互斥段,如果最多允许有1个进程进入互斥段,则所采用的互斥信号量初值应设置为(A),而该信号量的取值范围为(B);如果最多允许有3个进程同时进入互斥段,则所采用的互斥信号量初值应设置为(C)。

A:(1)10;(2);3;(3)1;(4)0。

B:(1)0~1;(2)-1~0;(3)1~-9;(4)0~-9。

C:(1)10;(2);3;(3)1;(4)0。

29. 在生产者-消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。它们的初值应分别为(A)、(B)、(C)。

A:(1)0;(2)1;(3)-1;(4)-n;(5)+n。

B:(1)0;(2)1;(3)-1;(4)-n;(5)+n。

C:(1)0;(2)1;(3)-1;(4)-n;(5)+n

30. 对生产者-消费者问题的算法描述如下,请选择正确的答案编号填入方框中。


Producer: begin

      Repeat

       (A);

       (B);

       Buffer(in):=m;

       In:=(in+1)mod n;

      (C);

      (D);

      Until false

   End

Consumer: begin

           Repeat

           (E);

           (B);

          M:=buffer(out);

          Out:=(out+1)mod n;

         (C);

         (F);

       Until false

    end

A: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。

B: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。

C: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。

D: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。

E: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)。

F: (1)wait(mutex); (2)signal(mutex); (3)wait(empty); (4)signal(full); (5)wait(full); (6)signal(empty)

31. 试选择(A)~(D),以便能正确地描述图2.12所示的前趋关系。

S1

S2

S3

S4

a

b

c

Var a,b,c: semaphore:=0,0,0;

Begin

   Parbegin

      Begin S1; (A); end;

      Begin S2; (B); end;

      Begin

          Wait(a); wait(b); S3; (C);

      End

      Begin (D); S4 end

Parend

End

A: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。

B: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。

C: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)

D: (1)signal(a); (2)signal(b); (3)wait(c); (4)signal(c)。

32. 有两个程序:A程序按顺序使用CPU10秒、设备甲5秒、CPU5秒、设备乙10秒、CPU10秒;B程序按顺序使用设备甲10秒、CPU10秒、设备乙5秒、CPU5秒、设备乙10秒。在顺序环境下,执行上述程序,CPU的利用率约为(A)。若允许它们采用非抢占方式并发执行,并且不考虑切换等开销,则CPU的利用率约为(B)。

A(1)30%;(2)40%;(3)50%;(4)60%;(5)70%;(6)80%;(7)90%。

B(1)30%;(2)40%;(3)50%;(4)60%;(5)70%;(6)80%;(7)90%

33. 从下面的叙述中选出一条正确的叙述:

(1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。

(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB中读出与本身运行状态相关的信息。

(3)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。

(4)当进程申请CPU得不到满足时,它将处于阻塞状态。

(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。

34. 从下面的叙述中选出4条正确的叙述:

(1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。

(2)进程被挂起(suspend)后,状态变为阻塞状态。

(3)信号量的初值不能为负数。

(4)线程是CPU调度的基本单位,但不是资源分配的基本单位。

(5)在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁。

(6)管程每次只允许一个进程进入。

(7)wait、signal操作可以解决一切互斥问题。

(8)程序的顺序执行具有不可再现性。

35. 在引入线程的操作系统中,资源分配和调度的基本单位是(A),CPU调度和分配的基本单位是(B)。

A:(1)程序;(2)进程;(3)线程;(4)作业。

B:(1)程序;(2)进程;(3)线程;(4)作业。

36. 在三种基本类型的操作系统中,都设置了(A),在批处理系统中还应设置(B);在分时系统中除了(A)以外,通常还设置了(C),在多处理机系统中则还需设置(D)。

A:(1)剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。

B:(1)剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。

C:(1)剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。

D:(1)剥夺调度;(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度

 

37. 在面向用户的调度准则中,(A)是选择实时调度算法的重要准则,(B)是选择分时系统中进程调度算法的重要准则,(C)是批处理系统中选择作业调度算法的重要准则,而(D)准则则是为了照顾紧急作业用户的要求而设置的。

A:(1)响应时间快;(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。

B:(1)响应时间快;(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。

C:(1)响应时间快;(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。

D:(1)响应时间快;(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。

38. 支持多道程序设计的操作系统,在运行过程中不断地选择新进程运行来实现CPU的共享,但其中(A)不是引起操作系统选择新进程的直接原因。

A:(1)执行进程的时间片用完;(2)执行进程出错;(3)执行进程要等待某一事件发生;(4)有新进程进入就绪队列

39、一般情况下,互斥信号量的初值为   B        

A. 0              B. 1              C. 2              D. 4

第三部分 是非题

1.进程是动态的概念          (对)

2.进程执行需要处理机        (对)

3.进程是有生命期的          (对)

4.进程是指令的集合          (错)

5.操作系统的一重要概念是进程,因此不同进程所执行的代码也一定不同(错)

7.操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息                                                         (错)

8.进程同步是指某些进程之间在逻辑上的相互制约关系                 (对)

9.在一个只有单个CPU的计算机中,进程不能并行操作。

错。一个进程在利用CPU运行,另一个进程可以同时进行I/O操作,它们是并行的。

10.线程可以分为内核级(Kernel Thread)和用户级(User Thread)两种,操作系统不可以直接调度用户级的线程。对。

第四部分 填空题

1.信号量的物理意义是当信号量值大于零时表示 可用资源的数目 ;当信号量值小于零时,其绝对值为 因请求该资源而被阻塞的进程数目  。

2.临界资源的概念是 一次仅允许一个进程访问的资源 ,而临界区是指  进程中访问临界资源的那段程序代码

3.进程在运行过程中有三种基本状态,它们是 运行就绪等待

4.进程主要由 程序段数据段PCB  三部分内容组成,其中 PCB 是进程存在的唯一标志。而 程序段 部分也可以为其他进程共享。

5.系统中各进程之间逻辑上的相互制约关系称为 进程同步  。

6.若一个进程已进入临界区,其他欲进入临界区的进程必须 等待

7.将进程的 PCB 链接在一起就形成了进程队列。

8.用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用 P 操作,退出临界区时应调用  V 操作。

9.在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:同步  与 互斥 。   同步 指进程间具有的一定逻辑关系; 互斥  是指进程间在使用共享资源方面的约束关系。

10.程序顺序执行时有顺序性、封闭性 和可再现性的特点。

11.有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是  1~ -(m-1)

12.在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有  4 个,最少有 0  个。

13、在单用户单任务环境下,用户独占全机,此时机内资源的状态,只能由运行程序的操作加以改变,此时的程序执行具有  封闭性   性和  可再现性  性特征。

14、并发进程之间的相互制约,是由于它们的  共享资源    相互合作  而产生的,因而导致程序在并发执行时具有  间断性或异步性  特征。

15、程序并发执行与顺序执行时相比产生了一些新特征,分别是           。间断性、失去封闭性、不可再现性

16、引入进程的目的是    ,而引入线程的目的是     。使程序能正确地并发执行,以提高资源利用率和系统吞吐量;减少并发执行的开销,提高程序执行的并发程度。

17、进程由         组成,其中   是进程存在的唯一标志。PCB、程序段、数据段、PCB

18、进程最基本的特征是        ,除此之外,它还有         特征。动态性、并发性、独立特征、异步性、结构

19、由于进程的实质是程序的一次执行,故进程有   的基本特征,该特征还表现在进程由    而产生,由    而执行,由    而消亡,即进程具有一定的生命期。动态性,创建,调度,撤销

20、引入进程带来的好处是        。提高资源利用率,增加系统吞吐量

21、当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为    状态;若因发生某种事件而不能继续执行时,应转为    状态;若应终端用户的请求而暂停执行时,它应转为    状态。就绪,阻塞,静止就绪

22、用户为阻止进程继续运行,应利用     原语,若进程正在执行,应转为    状态;以后,若用户要恢复其运行,应利用    原语,此时进程应转为    状态。   挂起;静止就绪;激活;活动就绪

23、系统中共有5个用户进程,且当前CPU在用户态下执行,则最多可有    个用户进程处于就绪状态,最多可有    个用户进程处于阻塞状态;若当前在核心态下执行,则最多可有     个用户进程处于就绪状态,最多可有     个用户进程处于阻塞状态。4,4,5,5

24、同步机制应遵循的准则:               。空闲让进、忙则等待、有限等待、让权等待

25、在记录型信号量机制中,S.value>0时的值表示    ;每次wait操作意味着    ,因此应将S.value     ,当S.value     时,进程应阻塞。可用的临界资源数量;申请一个临界资源;减1;小于0

26、在记录型信号量机制中,每次signal操作意味着   ,因此应将S.value     ,当S.value<=0时,表示    ,此时应     。释放一个临界资源,加1,仍有请求该资源的进程被阻塞;唤醒相应阻塞队列中的首进程

27、在利用信号量实现进程互斥时,应将    置于        之间。临界区,wait操作,signal操作

28、在每个进程中访问   的那段代码称为临界区。为实现对它的共享,应保证进程   进入自己的临界区,为此,在每个进程的临界区前应设置    ,临界区后应设置     。临界资源,互斥,进入区,退出区

29、进程通信的类型有         三类,其中   利用共享文件进行通信。共享存储器、消息系统、管道通信、管道通信

30、为实现消息缓冲队列通信,应在PCB中增加      、   三个数据项。消息队列首指针mq;消息队列互斥信号量mutex;消息队列资源信号量sm

31. 在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入。

Send((A),(B));

Receive((C),(B));

A:(1)sender;(2)receiver;(3)text;(4)message;(5)mailbox。

B:(1)sender;(2)receiver;(3)text;(4)message;(5)mailbox。

C:(1)sender;(2)receiver;(3)text;(4)message;(5)mailbox。

32. 使用mail命令的信箱通信属于(A),因为信息是被发送到接收方的(B)中;使用write命令,实现的是(C)通信,因为信息是被发送到接收方的(D)中;使用共享文件进行通信的方式属于(E)通信。

A:(1)共享存储器;(2)实时通信;(3)消息缓冲通信;(4)非实时通信;(5)管道通信。

B:(1)消息缓冲队列;(2)内存;(3)信箱;(4)消息缓冲区;(5)屏幕;(6)共享存储器。

C:(1)共享存储器;(2)实时通信;(3)消息缓冲通信;(4)非实时通信;(5)管道通信。

D:(1)消息缓冲队列;(2)内存;(3)信箱;(4)消息缓冲区;(5)屏幕;(6)共享存储器。

E:(1)共享存储器;(2)实时通信;(3)消息缓冲通信;(4)非实时通信;(5)管道通信

33、在采用用户级线程的系统中,OS进行CPU调度的对象是    ;在采用内核支持线程的系统中,CPU调度的对象是     。进程,线程

34、线程之所以能减少并发执行的开销是因为    。线程基本不拥有资源

35、进程通信的常用方式有     直接通信           间接通信      等。

36、如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步    P操作在互斥    P操作前。而两个V操作的次序无关紧要    

37、P(S):表示申请一个资源    ; V(S)表示释放一个资源    。信号量的初值应该大于等于0   

38、P、V操作当为互斥   操作时,它们同处于同一进程;当为同步   操作时,则不在同一进程中出现。

39、临界资源是指  系统中一次只允许一个进程使用的资源   ,而临界区是指       涉及到临界资源的代码段

40、I/O型进程是指   花费I/O 时间多于计算的进程   ,而CPU型进程是指                        花费计算多于I/O 时间的进程   

41、当时间片轮转算法的时间片足够大时,这个算法就等同于FIFO  算法。

42、P\V操作必须成对  出现,有一个P操作就一定有一个V操作     

43、临界资源是指  系统中一次只允许一个进程使用的资源   ,而临界区是指       涉及到临界资源的代码段    


第五部分 解析题

1.进程的定义是什么?它最少有哪几种状态?

2.进程与线程的主要区别是什么?

 

3、 什么是进程的互斥与同步?同步和互斥这两个概念有什么联系和区别?

解:

(1)  同步:两个事件的发生有着某种时序上的关系,进程间的同步关系是指系统中往往有几个进程共同完成一个任务;

(2)  互斥是进程间的另外一种关系。由于各进程要共享资源。而有些资源往往要求排他性地使用;

(3)  互斥是一种特殊的同步关系。

 

S4

S3

S2

S1

4. 图给出了4个进程合作完成某一任务的前驱图,试说明这4个进程间的同步关系,并用P、V操作描述它。

 

 

 

 

 

 

 

 

 

解:图说明任务启动后S1先执行。当S1结束后,S2、S3可以开始执行。S2、S3完成后,S4才能开始执行。为了确保这一执行顺序,设3个同步信号量b2、b3、b4分别表示进程S2、S3、S4是否可以开始执行,其初值均为0。进程同步描述如下:

//可用两种方法来解决

//S1不必判断能否开始

//b2、b3、b4起初全部为0,表示都不可开始

int b2=0;// 表示进程S2是否可以开始执行

int b3=0;// 表示进程S3是否可以开始执行

int b4=0;// 表示进程S4是否可以开始执行

//也可分为b42、b43

main()

{

    cobegin

       S1();

S2();

S3();

S4();

Coend

}

S1()

{

v(b2);

v(b3);

}

S2()

{

    p(b2);

v(b4);  //v(b42)

}

S3()

{

    p(b3);

v(b4);  //v(b43)

}

S4()

{//因为在S2及S3完成时均对b4做了v操作,因此这里要用两个p操作

    p(b4);//p(b42)

    p(b4);//p(b43)

}

 

5. 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。

解:设置3个信号量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);

吃苹果;

}

}

 

6. 在单处理机的分时系统中,分配给进程P的时间片用完后,系统进行切换,结果调度到的仍然是进程P。有可能出现上述情形吗?如果可能请说明理由。

解:有可能出现上述情况。例如,若在进程P时间片用完后,被迫回到就绪队列时,就绪队列为空,这样进程P就是就绪队列中唯一的一个进程,于是调度程序选中的进程必然是进程P;又如在按优先级调度的系统中,就绪队列按进程优先级排列,在进程P时间片用完之后回到就绪队列时,若其优先级高于当前队列中的其他进程,则它将排在就绪队列之首,从而再次被调度程序选中并投入运行。

 


7. 哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论问题;在讨论的间隙4位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如图。请用信号量及P、V操作说明这4位哲学家的同步、互斥过程。

解:在本题中,应设置4个信号量fork1、fork2、knife1、knife2,其初值均为1,分别表示资源叉1、叉2、刀1、刀2是否可用。同步描述如下:

int fork1=1;

int fork2=1;

int knife1=1;

int knife2=1;

main()

{

    cobegin

       Pa();

       Pb();

       Pc();

       Pd();

    Coend

}

Pa()

{

    while(1)

    {

       p(knife1);

       p(fork1);

       进餐;

       v(knife1);

       v(fork1);

       讨论问题;

    }

}

Pb()

{

    while(1)

    {

       p(knife2);

       p(fork1);

       进餐;

       v(knife2);

       v(fork1);

       讨论问题;

    }

}

Pc()

{

    while(1)

    {

       p(knife2);

       p(fork2);

       进餐;

       v(knife2);

       v(fork2);

       讨论问题;

    }

}

Pd()

{

    while(1)

    {

       p(knife1);

       p(fork2);

       进餐;

       v(knife1);

       v(fork2);

       讨论问题;

    }

}

 

8. 请用信号量实现对某数据库的读者-写者互斥。

要求:(1)读者与写者之间互斥,写者与写者之间互斥。

(2)读者之间不互斥。

解:本题是读者-写者问题。在本题中,允许读进程同时读数据库,但写进程正在写数据库时不允许其他进程读该数据库,也不允许其他进程写该数据库。为了解决读、写进程之间的同步,应该设置2个信号量和一个共享变量:读互斥信号量rmutex,用于使读进程互斥地访问共享变量count,其初值为1;写互斥信号量wmutex,用于实现写进程与读进程的互斥及写进程与写进程的互斥,其初值为1;共享变量count,用于记录当前正在读数据库的读进程数目,初值为0。其工作过程描述如下:

Semaphore rmutex=1;

Semaphore wmutex=1;

Int count=0;

Main()

{

  Cobegin

Reader();

Writer();

  Coend

}

Reader()

{

  While(true)

  {

P(rmutex);

If(count==0) p(wmutex);

Count ++;

V(rmutex);

读数据库;

P(rmutex);

Count --;

If (count==0) v(wmutex);

V(rmutex);

  }

}

Writer()

{

  While(true)

{

P(wmutex);

    写数据库;

V(wmutex);

  }

}

注意:正确理解信号量rmutex的意义是理解读者-写者问题的关键。Rmutex是一个互斥信号量,用于使读进程互斥地访问共享变量count。信号量rmutex并不表示读进程的数目,表示读进程数目的是共享变量count。当一个读进程要读数据库时,应将读进程计数count增加1;如果此前(count加1以前)数据库中无读进程,还应对写互斥信号量wmutex做p操作,这样,若数据库中无写进程则通过p操作阻止后续写进程写,若数据库中有写进程,则通过p操作让读进程等待。同理,当一个读进程完成读数据库操作时,应将读进程计数count减少1;如果此时(count减1以后)数据库中已无读进程,还应对写互斥信号量wmutex做v操作,以允许写进程写。

 

9. 就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费10ms,试问系统开销所占的比率约为多少?

解:因就绪队列中有10个进程,它们以时间片轮转的方式使用CPU,时间片长度为200ms。当一个时间片用完时,调度进程将当前运行进程设置为就绪状态并放入就绪队列尾,再从就绪队列首选择进程投入运行,这一过程(进程切换)要花费时间10ms。因此系统开销所占比率为:10/(200+10)=4.8%

 

10. 在单CPU和两台输入/输出设备(I1,I2)的多道程序设计环境下,同时投入三个作业Job1、Job2、Job3运行。这三个作业对CPU和输入/输出设备的使用顺序和时间如下所示:

Job1:I2(30ms);CPU(10ms);I1(30ms);CPU(10ms);I2(20ms)

Job2:I2(20ms);CPU(20ms);I2(40ms)

Job3:CPU(30ms);I1(20ms); CPU(10ms);I1(10ms)

 假定CPU、I1、I2都能并行工作,Job1优先级最高,Job2次之,Job3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU但不抢占I1和I2。试求:

三个作业从投入到完成分别需要的时间

从投入到完成的CPU利用率

I/O设备利用率。

解:三个作业并发执行时的工作情况如图4.2所示。

(1)由上图可以看出Job1从投入到运行完成需要110ms,Job2从投入到运行完成需要90ms,Job3从投入到运行完成需要110ms.

(2)CPU在时间段60ms到70ms,80ms至90ms,100ms至110ms期间空闲,所以CPU的利用率为:(110-30)/110=72.7%

(1)    设备I1在时间段20ms到40ms,90ms至100ms期间空闲,所以设备I1的利用率为:(110-30)/110=72.7%;设备I2在时间段30ms至50ms期间空闲,所以设备I2的利用率为:(110-20)/110=81.8%。

 

11.试利用Bernstein 条件证明上题中的S2和S3语句是可以并发执行的,而S3和S4语句是不能并发执行的?

【解】(1) ∵R(S2) ∩ W( S3)={};

          W(S2) ∩ R(S3)={};

            W(S2) ∩ W(S3)={};

∴R(S2) ∩ W( S3)∪ W(S2) ∩ R(S3) ∪ W(S2) ∩ W(S3)={}

        ∴S2、S3可以并发执行

(2)∵R(S3) ∩ W( S4)={};

W(S3) ∩ R(S4)={c};

W(S3) ∩ W(S4)={};

         ∴R(S3) ∩ W( S4)∪ W(S3) ∩ R(S4) ∪ W(S3) ∩ W(S4)={c}不是空集

∴S3,S4不能并发执行

 

12.什么是临界资源(P16)和临界区(P50)?

【解】那些多个进程必须互斥访问的方式来实现资源共享的硬件资源和软件资源叫临界资源

我们把在每个进程中访问临界资源的那段代码称为临界区

 

13、在OS中引起进程调度的主要因素有哪些?

【解】

在OS中引起进程调度的主要因素有:

(1)缺乏资源。正在运行的进程因为某个条件不能满足,不得不进入阻塞状态,此时,运行进程被撤下,引起调度使另一个进程进入运行

(2)时间片到。如果是分时系统或者以时间片作为激励调度的系统,时间片是引起硬件激励的主要因素,每当时间片到,正在运行的进程被暂时停止,将它再次排入就绪队列,引起调度使另一就绪进程进入运行。

(3)外部中断。外部中断信号也将引起调度,如打印机打印完成,通过打印通道或者信号线路传送一激励信号,将原等待进程唤醒重新进入运行,或引起调度使另一进程运行。

(4)进程结束。进程正常执行完毕,退出并终止,此时将激励系统调度另一进程进入运行。

 

14.有两个进程P1和P2,它们执行的过程如下:

P1: 10秒CPU操作、20秒I/O操作(设备1)、5秒CPU操作、10秒I/O操作(设备2)、5秒CPU操作、结束

P2: 15秒I/O操作(设备1)、10秒CPU操作、15秒I/O操作(设备2)、10秒CPU操作、结束

(1)    如果进程P1和P2顺序执行,请画出进程P1和P2执行情况图;

(2)    如果进程P1和P2并发执行,请画出进程P1和P2执行情况图;

(3)    分别计算在(1)和(2)情况下,CPU的利用率、设备1和设备2的利用率。

解:

(1)

P1:

CPU

I/O(DEV2)

CPU

I/O(DEV1)

CPU

 

 

0         10                  30    35        45    50

P2:

I/O(DEV1)

CPU

I/O(DEV2)

CPU

 

 


50            65         75             90         100

(2)

                                    P1                 P1

CPU(P1)

I/O(DEV1)(P1)

CPU

I/O(DEV2)

CPU

I/O(DEV1)(P2)

CPU(P2)

I/O(DEV2)(P2)

CPU(P2)

 

 

 

 

 


0         10   15        25      35     40           50    55

(3)

在情况(1)下,

CPU的利用率=40/100=40%

设备1的利用率=35/100=35%

设备2的利用率=25/100=25%

在情况(2)下,

CPU的利用率=40/55=73%

设备1的利用率=35/55=64%

设备2的利用率=25/55=45%

 

15.在五状态图中,假如计算机只有一个CPU,如果系统中有N个进程:

(1)运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?

(2)有没有这样的状态转换,为什么?     

       等待—>运行   ;   就绪—>等待

(3)一个进程状态的转换是否会导致另一个进程的状态转换,请列出所有的可能。

解:

(1)如果系统中有N个进程,运行的进程最多1个,最少0个;就绪进程最多N-1个最少0个;等待进程最多N个,最少0个。

(2)没有这样的状态转换。

(3) 新建  到  就绪    导致     运行   到   就绪

      就绪  到  运行    导致     无

      运行  到  就绪    导致     就绪   到   运行

      运行  到  等待    导致     就绪   到   运行

      等待  到  就绪    导致     就绪   到   等待

      运行  到  结束    导致     就绪   到   运行