习题
1. 引入进程概念的关键在于()
A. 共享资源
B. 独享资源
C. 顺序执行
D. 便于执行
答案:A
2. 单一处理机上,多道程序的执行是在()进行的
A. 同一时刻
B. 同一时间间隔内
C. 固定时刻
D. 固定时间间隔内
答案:B
解析:单一 CPU 只能并发不能并行
3. 若为每个作业只建立一个进程,则:(1) 照顾短作业用户应采用(),(2) 照顾紧急作业用户应采用(),(3) 实现人机交互应采用(),(4) 兼顾短作业和等待时间长的作业,应采用(),(5) 兼顾短作业,长作业,人机交互操作,应采用(),(6) 使作业平均周转时间最短,应采用()
A. FCFS;B. SJF;C. RR
D. 多队列算法
E. 抢占式优先级算法
F. 高相应比优先算法
答案:B, E, C, F, D, B
解析:(3):人机交互一般是分时系统,要采用 RR 来实现人机交互;(5):高相应比算法不能很好处理人机交互,要用多队列算法;
4. 现有 3 个作业同时到达: ,他们的执行时间是 ,且 。系统按照单道方式运行,且采用 SJF,则平均周转时间为()
A.
B.
C.
D.
答案:C
解析:注意是单道执行且 SJF,则
首先立即执行, 都会有等待时间, 等待 , 等待 的时间,都要计入周转时间;
5. 用 PV 操作描述以下前趋图的同步关系:

解答:图中共有 7 个前趋关系,分别用
7 个信号量来控制(初值为 1),如图所示。则此图的同步关系可写为: , , , , , ; 
6. 利用管程解决对 “生产者—消费者” 问题(不考虑缓冲池的互斥访问)
解答:
由管程定义,此管程内部实现同步机制,对外提供两个方法
get和put;由生产者—消费者模型定义,此管程需要设计两个条件变量:
notfull和notempty,前者用于在缓冲池满时阻塞新的生产者,后者用于在缓冲池空时阻塞新的消费者。伪代码示意:

7. 系统中有 5 个进程 和 3 类资源 。三种资源的数量为 ,在某个时刻 ,系统的资源分配情况如图所示

1)分析
时刻的安全性。若安全,找出一个安全序列; 2)
发出请求向量 ,用银行家算法进行模拟分配和检查; 3)在第 2 问基础上,
请求向量 ,用银行家算法检查; 4)在第 2 问基础上,
请求向量 ,用银行家算法检查; 答案:
1)安全。其中一个序列为
; 2)假设可以给
分配,则分配后系统资源如图中圆括号所示。经过检查,系统安全,其中一个序列为 ; 3)由于第 2 问后
不能满足 , 需要等待; 4)可以分配,但分配后系统资源如图

- 可以看出,分配后系统资源不能满足任何进程需要,所以系统进入不安全状态,取消分配;