调度与算法

CPU利用率
指CPU忙碌的时间占总时间的比例

在这里插入图片描述
系统吞吐量
单位时间内完成作业的数量
在这里插入图片描述
周转时间
指从作业被提交给系统开始,到作业完成为止的这段时间间隔
它包括四个部分:作业在外存后备队列上等待作业调度的时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间,进程等待IO操作完成的时间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待时间
指进程或者作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。
对于进程来说:等待时间就是指进程建立后等待被服务的时间之和,在等待io完成的期间其实进程也是在被服务的,所以不计入等待时间。
对于作业来说:不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间。

响应时间
从用户提交请求到首次产生响应所用的时间

算法
1.先来先服务算法
按照到达的先后顺序调度,事实上就是等待时间越久的越优先得到服务。
优点:公平,算法实现简单,不会导饥饿(指进程或者作业长期得不到服务)
缺点:排在长作业后面的短作业需要等待很长时间,对短作业来说用户体验不好。
举个栗子:

在这里插入图片描述
在这里插入图片描述
2.短作业优先
优点:比较短的平均等待时间,平均周转时间
缺点:不公平。对短作业有利,对长作业不利。可能产生饥饿现象。
非抢占式:每次调度时选择当前已经达到且运行时间最短的作业或者 进程在这里插入图片描述
抢占式:每当有进程加入就绪队列改变时就需要调度,如果新达到的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机当前运行进程重新回到就绪队列。在这里插入图片描述
3.高响应比优先
只有当前运行的进程主动放弃CPU的时候,才需要进行调度,调度时计算所有就绪进程的响应比,选择响应比最高的进程上处理机。
优点:综合考虑上述算法折中。不会导致饥饿
在这里插入图片描述
在这里插入图片描述
4.时间片轮转调度算法
公平地,轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应。主要用于进程调度。
优点:公平,响应时间快,适用于分时操作系统,不会导致饥饿
缺点:由于高频率的进程切换,因此有一定的开销:不区分任务的紧急程度。
在这里插入图片描述
默认新达到的进程先进入就绪队列
时间片大小为2
在这里插入图片描述
时间片大小为5
在这里插入图片描述
可见:如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法会退化为先来先服务调度算法,并且会增大进程响应时间。
5.优先级调度算法
根据任务的紧急程度来决定处理顺序
通常:系统进程优先级高于用户进程,前台进程优先级高于后台进程,操作系统更偏好IO型进程
在这里插入图片描述
非抢占式:
在这里插入图片描述
抢占式:在这里插入图片描述

6.多级反馈队列算法
设置多级就绪队列,各级队列优先级从高到低,时间片从小到大
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/nice_good_boy/article/details/118958963