调度

来源:互联网 发布:维也纳大学 知乎 编辑:程序博客网 时间:2024/06/09 19:43

调度的目的:

1.   控制资源使用者数量;

2.   选取资源使用者

3.   许可资源占用

4.   占用资源

 

多道程序调度类型:

高级调度(长程调度或作业调度):控制多道程序数目,即谁可以进内存,分配资源,善后处理

中级调度:(中程调或对换程序):实现挂起与解挂

低级调度(短程调度或进程调度):实现就绪队列中谁获取CPU,完成保存现场,进程选取,恢复现场的工作

进程调度方式:

不可剥夺(不可抢占):不予许其他进程抢占正在运行的处理机,不适用严格实时系统

可剥夺(可抢占),一般采用优先级;

 

进程调度时机:

1.   进程创建

2.   进程终止

3.   等待事件

4.   中断发生

5.   运行到时(时间片)


调度性能评价:

主要有响应时间:提交请求到有响应的时间

周转时间:完成时间-提交时间;平均周转时间

带权周转时间:周转时间/实际执行时间;平均带权周转时间

 

调度算法:

1.先来先服务(FCFS):进程调度与作业调度中,直到运行完才让出(非剥夺);

不利于短作业,利于长作业

利于处理机繁忙作业,不利于I/O繁忙作业

实现容易,简单,调度性能差


2.短进程(作业)优先(SPN):(非剥夺)

相比1,不利于长作业(甚至被饿死),短是估计的,不准确,


3.最短剩余时间(完成当前进程还需要的时间)优先调度算法(SRT):(抢占式)

比2平均带权周转时间,平均周转时间更小


4.   响应比高者优先调度算法(HRRN):(非抢占式)

响应比:1+等待时间/完成所需时间

响应比越高,意味着进程等待了很长时间,或进程较小,更为公平


5.   时间片抢占调度算法

利用时间片轮转:时间片时间的选取很重要,果断,切换频繁,浪费;过长,退化为FCFS;

缺点:对I/O频繁进程不利(阻塞时会进程切换,唤醒后重新排在队尾)

改进型:进程I/O唤醒后,进入辅助队列,此队列优先级更高


6.   优先级调度:

静态优先级:运行期间不变,创建时确定

动态优先级:进程推进,优先级变化(防止了高优先级长期垄断)


7.   多级反馈队列调度算法(MFQ)

设置多就绪队列,具有不同的优先级,先执行完高级队列,再执行较低的,且高级队列时间片更短,进程在本级队列一个时间片未能执行完毕,降入次一级队尾等待

保证I/O及时,进程发出请求后进入最高级队列,执行一个时间片完成交互;

 

实时调度

应具备条件

提供信息(如截止时间,资源要求,优先级等)

满足系统处理能力

抢占式调度

能够快速切换

 

对于m个周期性硬实时任务,(处理时间/周期性时间)之和<=N(处理机个数),系统才是可调度的

 

调度算法分类:

非抢占式:轮转调度,优先级调度

抢占式:基于时钟中断(时钟中断时,优先级调度,平时非抢占);立即抢占

 

实时调度算法:

1.最早截止优先:非抢占式适用非周期实时任务,抢占式适用周期实时任务


2.最低松弛度优先:任务额松弛度(紧急程度)越高,优先级越高

松弛程度,可以理解截止时间前为宽裕的时间,=截止完成时间-当前时间-剩余运行时间

原创粉丝点击