现代操作系统习题答案 下载本文

内容发布更新时间 : 2024/6/3 21:58:11星期一 下面是文章的全部内容请认真阅读。

现代操作系统习题答案

(汤小丹编 电子工业出版社2008.4)

第1章 操作系统引论习题及答案

1.11 OS有哪几大特征?其最基本的特征是什么?

答:并发、共享、虚拟和异步四个基本特征,其中最基本的特征是并发和共享。 1.15 处理机管理有哪些主要功能?其主要任务是什么? 答案略,见P17。

1.22 (1)微内核操作系统具有哪些优点?它为何能有这些优点?

(2)现代操作系统较之传统操作系统又增加了哪些功能和特征?

第2章 进程的描述与控制习题及答案

第3章 进程的同步与通信习题及答案

3.9 在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?

答:资源信号量full表示缓冲区中被占用存储单元的数目,其初值为0,资源信号量empty表示缓冲区中空存储单元的数目,其初值为n,signal(full)在生产者进程中,如果在生产者进程中缺少了signal(full),致使消费者进程一直阻塞等待而无法消费由生产者进程生产的数据;signal(empty)在消费者进程中,如果在消费者进程中缺少了signal(empty),致使生产者进程一直阻塞等待而无法将生产的数据放入缓冲区。

3.13 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。 答:

参考答案一:至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两支筷子,从而使更多的哲学家能够进餐。 采用此方案的算法如下:

var chopstick:array[0,…,4] of semaphore :=1; room:semphore:=4; repeat

wait(room);

wait(chopstick[i]);

wait(chopstick[(i+1) MOD 5]); … eat; …

signal(chopstick[i]);

signal(chopstick[(i+1) MOD 5);

signal(room); …

think; until false;

第4章 处理机调度与死锁习题及答案

4.1 高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 答:略,见P73。

4.27 何谓死锁?产生死锁的原因和必要条件是什么? 答:死锁的定义:

参考答案一:多个进程为竞争系统资源或彼此间通信而引起的永久性的阻塞现象;

参考答案二:多个进程为竞争系统资源而造成的一种僵局,若无外力作用,这些进程都将永远不能向前推进的现象。 死锁的原因:

①竞争不可抢夺资源引起死锁; ②竞争可消耗性资源引起死锁。 死锁的必要条件: ①互斥条件

②请求和保持条件(或占用并等待条件) ③不可抢占条件

④循环等待条件(或环路等待条件)

4.31 在银行家算法中,若出现下述资源分配情况,试问: Process Allocation Need Available P0 0 0 3 2 0 0 1 2 1 6 2 2 P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6 P3 0 3 3 2 0 6 5 2 P4 0 0 1 4 0 6 5 6 (1)该状态是否安全?

(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它? 解:(1)利用安全性算法对此时的资源分配情况进行分析,分析过程如下表: Process Work Need Allocation Finish P0 1 6 2 2 0 0 1 2 0 0 3 2 true P3 1 6 5 4 0 6 5 2 0 3 3 2 true P1 1 9 8 6 1 7 5 0 1 0 0 0 true P2 2 9 8 6 2 3 5 6 1 3 5 4 true P4 3 12 13 10 0 6 5 6 0 0 1 4 true 由上表可知在此时存在一个安全序列{P0,P3,P1,P2,P4},故该状态是安全的;同理可分析出此时还存在另外两个安全序列{ P0,P3,P1,P4,P2},{ P0,P3,P4,P1,P2}。

(2)当进程P2提出请求Request(1,2,2,2)后,为避免死锁系统按银行家算法进行检查如下:

①Request2(1,2,2,2)≤Need 2(2,3,5,6) ②Request2(1,2,2,2)≤Available(1,6,2,2)

③系统先假定可为进程P2分配资源,并修改Available,Allocation 2和 Need 2向量,由此形成的资源变化情况如下表所示。 Process Allocation Need Available P0 0 0 3 2 0 0 1 2 0 4 0 0 P1 1 0 0 0 1 7 5 0 P2 2 5 7 6 1 1 3 4 P3 0 3 3 2 0 6 5 2 P4 0 0 1 4 0 6 5 6