诚毅学院操作系统期末复习(2014-2015)答案 联系客服

发布时间 : 星期二 文章诚毅学院操作系统期末复习(2014-2015)答案更新完毕开始阅读

out:=(out+1) % k; V(mutex); ________ consume x; } }

26、 请完成如下R-W问题的改进算法。

semaphore r_w_w= ,mutex= ,s= ; int count=0; void Reader() { do{ P(S); P(mutex); count++;

if( ) P(r_w_w); V(mutex) V(s); {读操作} P(mutex); count--;

If(count==0) V(r_w_w); }while(1); }

void Writer() { do{

P(s);

; {写操作}; P(r_w_w);

V(s); }while(1); }

参考P144题25)

27、 什么叫管程(Monitor ,Hansen管程)? 一个管程由哪几部分组成?

管程是一种高级同步机制,一个管程定义一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改善管程中的数据.。

一个管程由四个部分组成,它们是管程名称、局部与管程的共享数据的说明、对数据进行操作的一组过程和对该共享数据赋初值的语句。

28、 请用管程写出Scan和C-scan的磁头调度算法。

29、 请给出在Linux系统中采用共享内存进行进程间通信的一般步骤。(实验二)

第五章 死锁与饥饿

1、 什么叫死锁?在操作系统中,发生死锁有哪些特征?

在多道程序系统中,一组进程中的每一个进程均无限期的等待另一组进程所占有的且不会释放的资源,这种现象称为死锁

参加死锁的进程的数目至少为2,参与死锁的所有进程均等待资源,参与死锁的进程至少有2个占有资源,参与死锁的进程是系统中当前正在运行的进程集合的一个子集。 2、 有哪些类型的死锁?

竞争资源引起的死锁、进程通信引起的死锁、其他原因引起的死锁

3、 从资源分配过程的角度,说明死锁与饥饿的区别?

死锁进程处于等待状态,饥饿处于忙式等待; 死锁等待不会释放的资源,饥饿分配不到资源; 死锁循环等待,饥饿没有循环等待;

4、 参与死锁进程的个数至少几个?如果产生饥饿,发生饥饿的进程至少几个?

至少2个;1个

5、 请给出发生死锁的必要条件(Coffman条件)并加以解析。

资源独占(mutual exclusion) 不可抢占(non preemption) 保持申请(hold-while-applying) 循环等待(circular wait)

6、 有三种死锁的处理方式?

死锁预防---静态的 死锁避免---动态的 死锁检测与恢复

7、 熟悉资源分配图的绘制,以及资源分配图的约简。

8、 死锁预防有哪两种基本策略?

预先分配策略、有序分配策略

9、 请阐述预先分配法。它破坏发生死锁什么条件?

进程在运行前一次性地向系统申请它所需要的全部资源;破坏了保持申请。

10、 请阐述有序分配法。它破坏发生死锁什么条件?

事先将所有资源类完全排序;破坏了循环等待。

11、 如图所示,请给出采用有序分配法、用信号量和PV操作控制各个方向(W、E、

S方向)车辆进行临界区。

资源编号:F (D) =1; F (B) =2; F (A) =3; F(C) =4; Var S1, S2, S3, S4: semaphore; (1, 1, 1, 1)

12、 死锁避免中,什么叫做安全序列?

所谓系统是安全的,是指系统中的所有进程能够按照某一种次序分配资源,并且依次地运行完毕,这种进程序列{P1,P2,…,Pn}就是安全序列。

13、 银行家算法:掌握p154例5-4、p170习题五第9题,及本章的作业。

14、 某系统有资源R={A,B,C}={10,5,7}和进程P={p0,p1,p2,p3,p4}。下面是该系统某进程

提出资源请求预分配后的两个状态,请分别用银行家算法检验是否为安全状态?

Claim Allocation Need Available Work Finish P0 P1 P2 P3 P4

A B C A B C A B C A B C A B C 7 5 3 0 1 0 7 4 3 3 3 2 3 2 2 2 0 0 1 2 2 9 0 2 3 0 2 6 0 0 2 2 2 2 1 1 0 1 1 4 3 3 0 0 2 4 3 1

(状态a)

Claim Allocation Need Available Work Finish P0 P1 P2 P3 P4

A B C A B C A B C A B C A B C 7 5 3 0 3 0 7 2 3 1 1 2 3 2 2 2 0 0 1 2 2 9 0 2 5 0 2 4 0 0 2 2 2 2 0 1 0 2 1 4 3 3 0 1 2 4 2 1

(状态b)

15、 在上述(13题)系统处于状态a下,进程P0提出Request(0)={3,2,0},请用银行家

死锁避免算法进行检测,是否可以分配?为什么?

16、 在上述(13题)系统处于状态a下,进程P0提出Request(0)={3,3,0},请用银行家

死锁避免算法进行检测,是否可以分配?为什么?

17、 死锁检测算法:p156例5-6,习题五第10题。

18、 有一系统拥有资源R={A,B,C}={7,3,6},现有进行P={p0,p1,p2,p3,p4}。当前的状态

如下所示。请用死锁检测算法检测系统当前是否发生死锁,如果发生死锁,有哪些进程参与死锁? Allocation Request Available Work Finish A B C A B C A B C A B C p0: 0 1 0 0 0 0 0 1 0 p1: 2 0 0 2 0 2 p2: 3 0 3 0 0 0 p3: 2 1 1 1 0 0 p4: 0 0 2 0 0 2