操作系统习题(F.L)答案

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

7.若一个进程已进入临界区,其他欲进入临界区的进程必须_等待_。 8.将进程的_PCB_链接在一起就形成了进程队列。

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

10.用信箱实现通信时,应_发送_和_接收_两条基本原语。 11.在多道程序系统中,进程之间存在着不同制约关系可以划分为两类:_同步_与_互斥_。_同步_指进程间具有的一定逻辑关系;_互斥_是指进程间在使用共享资源方面的约束关系。

12.对于信号量可以做_P_操作和_V_操作,_P_操作用于阻塞进程,_V_操作用于释放进程。程序中的_P_和_V_操作应谨慎使用,以保证其使用的正确性,否则执行时可能发生死锁。

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

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

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

①没有运行进程,有2个就绪进程,n个进程处于等待状态。 ②有1个运行进程,没有就绪进程,n-1进程处于等待状态。 ③有1个运行进程,有1个就绪进程,n-2进程处于等待状态。 ④有1个运行进程,有n-1个运行进程,没有进程处于等待状态。 上述情况中,不可能发生的情况是_①_。

16.进程是一个_动_态概念,而程序是一个_静_态概念。

17.在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有_4_个,最少有_0_个。 18.操作系统中,对信号量S的P原语操作定义中,使进程进入相应等待队列等待的条件是_s<0_。

19.下面关于进程的叙述不正确的是_③_。

①进程申请CPU得不到满足时,其状态变为等待状态。 ②在单CPU系统中,任一时刻有一个进程处于运行状态。 ③优先级是进行进程调度的重要依据,一旦确定不能改变。 ④进程获得处理机而运行是通过调度而实现的。

20.信箱逻辑上分成_信箱头_和_信箱体_两部分。_信箱头_中存放有关信箱的描述。_信箱体_由若干格子组成,每格存放一信件,格子的数目和大小在创建信箱时确定。

解 析 题

1.叙述进程和程序的主要区别。

2.在测量控制系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从该单缓冲区中去出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。 3.已知一个求值公式(A2+3B)/(B+5A),若A、B已赋值,试画出该公式求值过程的前驱图。

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

S1

S2 S3

S4

图2.7 四个合作进程的前趋图

5.某系统的今年成状态转换图如图2.8所示,请说明: (1)引起各种状态转换的典型事件有哪些?

(2)当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一进程作一次状态转换。在什么情况下,当一个进程发生转换3时能立即引起另一进程发生转换1? (3)试说明是否会发生下述因果转换:

2→1 ; 3→2 ; 4→1

执行 2 3

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

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

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

9.某数据库有一个写进程,多个读进程,它们之间读、写操作的互斥要求是:写进程正在写该数据库时不能有其他进程读该数据库,也不能有其他进程写该数据库;读进程之间不互斥,可以同时读该数据库。请用信号量及P、V操作描述这一组进程的工作过程。 10.设在公共汽车上,司机和售票员的活动分别是: 司机的活动: 启动车辆;

正常行车; 到站停车;

售票员的活动:关车门;

售票; 开车门;

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

11.设有一个发送者进程和一个接受者进程,其流程土如图2.10所示。S是用于实现进程同步的信号量,mutex是用于实现进程互斥的信号量。试问流程图中的A、B、C、D四框中应填写什么?假定缓冲区无限多个,s和mutex的初值应为多少? 发送者进程: 申请缓冲区

B 把信息写入缓冲区

V(s)

A

将缓冲区放到消息链尾

接收者进程: :

C

D

从消息链首取一个缓冲区

V(mutex)

从缓冲区中取出信息

释放缓冲区

12.下述程序是解决两个进程互斥访问临界区温暖体的一种方法,试从“互斥”、“有空让进”、“有限等待”等三个方面讨论它是否正确。 int c1=0; int c2=0; main ( ) {

cobegin

联系客服:779662525#qq.com(#替换为@)