操作系统学习之典型的调度算法
典型的调度算法
1.先来先服务调度
类似超市排队,按照作业进入系统的时间先后来挑选作业。进入系统的作业优先被运行。
特点
容易实现,效率不高。
只考虑作业的等候时间,没考虑运行时间的长短,因此一个来的晚的但是很短的作业可能需要很长的等待时间才能被运行,因而本算法不利于短作业。
2.短作业优先调度算法
参考运行时间,选取运行时间最短的作业投入运行
特点
易于实现,效率不高
忽视了作业等待时间,一个早来但是很长的作业将会在很长时间得不到调度,容易出现资源“饥饿”
的现象。
3.响应比高者优先调度算法
响应比定义
作业的响应时间和与运行时间的比值
响应比=响应时间/运行时间
=(等待时间+运行时间)/运行时间
=1+等待时间/运行时间
计算每个作业的响应比,选择响应比做高的作业优先投入运行
4.优先数调度算法
根据进程优先数,把CPU分配给最高的进程。
进程优先数=静态优先数+动态优先数
静态优先数
进程创建时确定,在整个进程运行期间不再改变。
动态优先数
在进程运行期间可以改变
5.循环轮转调度法
把所有就绪进程按先进先出的原则排成队列,新进来的进程加到队列末尾,进程以时间片q为单位轮流使用CPU,刚刚运行一个时间片的寂静城排到队列末尾,等候下一轮运行。队列逻辑上是环形的。