计算机操作系统 第三章 —— 处理机调度和死锁
处理机调度
处理机的调度层次
- 高级调度(作业调度):内存和辅存之间的调度。
- 中级调度(内存调度):将暂时不能运行的进程调至外存等待(挂起)。将具备条件的进程调至内存(激活)。
- 低级调度(进程调度):从就绪队列中选择一个进程分配给处理机。
调度频率:
进程调度 > 中级调度 > 作业调度
答案:B
解析:
P
1
P_1
P1和
P
2
P_2
P2需按题中给的先计算再I/O再计算的顺序来。
处理机调度算法
- 周转时间 = 作业完成时间 - 作业提交时间
- 平均周转时间 = 1 n \frac{1}{n} n1 * 周转时间
- 带权周转时间 = 作 业 周 转 时 间 作 业 实 际 运 行 时 间 \frac{作业周转时间}{作业实际运行时间} 作业实际运行时间作业周转时间
- 响应比 R P R_{P} RP = 等 待 时 间 + 要 求 服 务 时 间 要 求 服 务 时 间 \frac{等待时间 + 要求服务时间}{要求服务时间} 要求服务时间等待时间+要求服务时间 = 周 转 时 间 要 求 服 务 时 间 \frac{周转时间}{要求服务时间} 要求服务时间周转时间
先来先服务调度算法(FCFS)
短作业优先算法(SJF)
以非抢占式为例 :
作业执行所需时间是估计出来的,因此在CPU调度中很难真正实现短作业优先。
优先级调度算法(PSA)
静态优先级:
注意: I/O型进程 > 计算型进程
答案:B
动态优先级:高响应比优先调度算法(HRRN)
有利于短作业,同时兼顾长作业。
最短剩余时间调度算法(SRT)
时间片轮转调度算法(RR)
答案:B
解析:时间片到后不管是否完成均被抢占。
多级反馈队列调度算法
优点:
实时调度算法:
基本条件最早截止时间优先算法(EDF)
最低松弛度优先算法(LLF)
死锁
死锁产生的原因:
- 系统资源的竞争:只有对不可剥夺的资源的竞争才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。
- 进程推进顺序非法
死锁产生的必要条件
小充分大必要,即如果死锁一定会有必要条件,但有这些必要条件不一定死锁。
- 互斥条件:某互斥使用的资源分完
- 不剥夺条件:资源在未使用完之前不可被其他进程剥夺。
- 请求并保持条件:对自己手里的资源不放,又申请新的资源。
- 循环等待条件:彼此等待对方放手的死锁环。
答案:C
死锁的处理策略
- 死锁预防:破坏四个必要条件之一。
- 避免死锁:银行家算法确保安全性。
- 死锁的检测及解除:在资源分配图中用死锁定理检测是否发生死锁。
忽略、检测和恢复、避免、预防中:
从左到右的条件从宽到严;并发性由大到小。
来一个一个看:
死锁预防:
- 破坏互斥条件:不太可行。
- 破坏不剥夺条件:当某进程申请资源时得不到满足时,它必须释放已经保持的所以资源。
- 破坏请求并保持条件:如果不能一次性申请完所以资源那就不投入运行。
- 破坏循环等待条件:采用顺序资源分配法,申请资源只能按递增的顺序。
银行家算法
银行家算法中的数据结构:
eg:
死锁的检测和解除
资源分配图:
死锁定理:
答案:C
死锁的解除:
例题:
答案:B
解析:
3
×
(
4
−
1
)
+
1
=
10
3{\times} (4-1) +1 = 10
3×(4−1)+1=10
答案:B
解析:
x
(
3
−
1
)
+
1
≤
11
x(3-1) + 1 {\le} 11
x(3−1)+1≤11
答案:C
解析:注意这里问的是可能会发生死锁的最小值。
k
(
3
−
1
)
+
1
≥
8
k(3-1) + 1 {\ge} 8
k(3−1)+1≥8
答案:D
答案:B
解析:预防死锁中的破坏循环等待限制申请顺序。银行家算法只有Available > Need即可,故不算限制申请顺序。