OS - 处理器的两级调度及常见算法
主要参考:
- 《操作系统概论》(机械工业出版社)
处理器的两级调度
-
预输入:
- “输入井”:磁盘中用来存放作业信息的专用区域;
- “后备作业”:已装入输入井中等待处理的作业
-
作业调度:
- 一个必要条件:当前系统中尚未分配的资源可满足备选作业的资源要求
常见作业调度算法
-
先来先服务算法
首先按照作业进入输入井的先后顺序,同时当前系统中未被分配的资源还要能满足作业的资源需求
-
计算时间短的作业优先算法
优先选择(预估)计算时间短,且资源能得到满足的作业
-
响应比高者优先算法
响应比 = 等待时间 / (预估)计算时间
根据等待时间的变化来动态调整响应比
-
优先级调度算法
先按照优先级进行调度,相同优先级的任务再按照先来先服务原则进行调度
-
均衡调度算法
先根据作业对资源的不同需求进行分类,再从不同分类的作业中去挑选调度,以尽可能地使系统资源都被重复利用
常见进程调度算法
-
先来先服务调度算法
按照进程进入就绪队列的先后次序(新的进程就绪排入就绪队列的末尾,而进程调度总是把处理器分配给就绪队列中的第一个进程)
-
最高优先级调度算法
进程调度总是让当前最高优先级的进程先使用处理器
当有更高优先级的进程就绪时,对于正在处理器中执行的进程,有两种处理方式:
- 非抢占式:已在处理器中的进程将一直执行下去,直到由于它自身原因(工作结束或出现等待事件)而主动让出处理器,再有进程调度重新分配处理器;
- 可抢占式:严格保证任何时刻总是让具有最高优先级的进程在处理器上运行
也可与先来先服务调度算法混合使用,对于相同优先级的进程,采用先来先服务策略
-
时间片轮转调度算法
时间片:允许进程一次占用处理器的最长时间。时间片的取值大小,关系到计算机系统的效率和用户的满意度,对于不同进程,时间片设置也可不同
同样是先按照进程就绪的先后次序排成队列,调度时总是先执行就绪队列中的第一个进程(先来先服务);
进程在一个时间片内未执行完或出现等待时间,下次就绪时重新排入就绪队列末尾