一、处理机调度的基本概念
作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。
高级调度(High Scheduling)
又称作业调度或长程调度(Long-Term Scheduling),接纳调度(Admission Scheduling)
中级调度(Intermediate-Level Scheduling)
又称交换调度或中程调度(Medium-Term Scheduling)
低级调度(Low Level Scheduling)
也称为进程调度、微观调度或短程调度(Short-Term Scheduling)
进程调度什么时候发生?
正在执行的进程结束 正在执行的进程阻塞 正在执行的进程未完成转就绪(时间片到) 新就绪了更高优先级的进程(抢占式)
选择调度方式和调度算法的若干准则
1)面向用户的准则 2)面向系统的准则
二、 调度算法
1、先来先服务调度算法FCFS
2. 短作业(进程)优先调度算法SJF/SPF
3. 高优先权优先调度算法HPF
4. 基于时间片的轮转调度算法RR
时间片长度的选择要与完成一个基本的交互过程所需的时间相当,保证一个基本的交互过程可在一个时间片内完成。
5. 多级反馈队列算法FB
三、实时调度
1. 实现实时调度的基本条件
1)提供必要的信息 就绪时间。开始截止时间、完成截止时间。 处理时间。资源要求。优先级。
2)系统处理能力足够强
3)采用抢占式调度机制
4)具有快速切换机制
2. 实时调度算法的分类
根据实时任务的性质 硬实时调度算法 软实时调度算法
按调度方式 非抢占调度算法 抢占调度算法
根据调度时间不同 静态调度算法 动态调度算法。
多处理机环境下 集中式调度 分布式调度
3. 常用的几种实时调度算法
最早截止时间优先EDF(Earliest Deadline First)算法
最低松弛度优先LLF(Least Laxity First)算法
四、产生死锁的原因和必要条件
1.产生死锁的原因可归结为如下两点: 竞争资源 进程间推进顺序非法
2.形成死锁的四个必要条件(四个条件都具备就会死锁,缺一就不会死锁)
3.处理死锁的基本方法 事先预防:预防死锁 避免死锁 事后处理:检测死锁 解除死锁
五、预防死锁的方法
1.预防死锁
摒弃“请求和保持”条件 摒弃“不剥夺”条件 摒弃“环路等待”条件
2.避免死锁
1)银行家算法中的数据结构 (1)各类可利用资源的数量 (2)每个进程对每类资源的需求
2)避免死锁的算法过程(银行家算法) 就是对各进程的Request向量及资源数量进行一系列判断及值操作。
3)安全性算法
(1)需要一些记录信息的数据结构,设置两个向量: 工作向量work 标志向量Finish
(2)找安全序列的过程
六、死锁的检测与解除
1、资源分配图
2、死锁定理
3、 死锁的解除 剥夺资源 撤销进程