Skip to content

习题

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 个作业同时到达:J1,J2,J3,他们的执行时间是 T1,T2,T3,且 T1<T2<T3。系统按照单道方式运行,且采用 SJF,则平均周转时间为()

  • A. T1+T2+T3

  • B. (T1+T2+T3)/3

  • C. (3T1+2T2+T3)/3

  • D. (T1+2T2+3T3)/3

  • 答案:C

  • 解析:注意是单道执行且 SJF,则 J1 首先立即执行,J2,J3 都会有等待时间,J2 等待 T1J3 等待 T1+T2 的时间,都要计入周转时间;

5. 用 PV 操作描述以下前趋图的同步关系:

img_e7AvC0lRA9

  • 解答:图中共有 7 个前趋关系,分别用 a,b,c,d,e,f,g 7 个信号量来控制(初值为 1),如图所示。则此图的同步关系可写为:S1V(a),V(b)P(a)S2V(c),V(d)P(b)S3V(g)P(c)S4V(e)P(d)S5V(f)P(e),P(f),P(g)S6

    img_MZ7ULzMwj2

6. 利用管程解决对 “生产者—消费者” 问题(不考虑缓冲池的互斥访问)

  • 解答

    • 由管程定义,此管程内部实现同步机制,对外提供两个方法 getput

    • 由生产者—消费者模型定义,此管程需要设计两个条件变量:notfullnotempty,前者用于在缓冲池满时阻塞新的生产者,后者用于在缓冲池空时阻塞新的消费者。

    • 伪代码示意:

      img_yF93pNJv4B

7. 系统中有 5 个进程 P0,P1,P2,P3,P4 和 3 类资源 A,B,C。三种资源的数量为 10,5,7,在某个时刻 T0,系统的资源分配情况如图所示

img_hGp7TBmrC4

  • 1)分析 T0 时刻的安全性。若安全,找出一个安全序列;

  • 2)P1 发出请求向量 \boldReq1=(1,0,2),用银行家算法进行模拟分配和检查;

  • 3)在第 2 问基础上,P4 请求向量 \boldReq4=(3,3,0),用银行家算法检查;

  • 4)在第 2 问基础上,P0 请求向量 \boldReq0=(0,2,0),用银行家算法检查;

  • 答案

    • 1)安全。其中一个序列为 P1,P3,P4,P2,P0

    • 2)假设可以给 P1 分配,则分配后系统资源如图中圆括号所示。经过检查,系统安全,其中一个序列为 P1,P3,P4,P0,P2

    • 3)由于第 2 问后 \boldAvail=(2,3,0) 不能满足 \boldReq4P4 需要等待;

    • 4)可以分配,但分配后系统资源如图

      img_jAfxRsulMT

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