1、调度时机:创建新的进程后、运行进程退出时、进程因为I/o或其他原因阻塞时、发生I/o中断(完成了i/o的阻塞进程变为了就绪进程)
2、调度算法应用环境:
批处理系统,交互式系统,实时系统,
不同的系统有不同的调度策略
3、批处理系统:
先来先服务:非抢占式 当正在运行的进程被阻塞时,队列中的第一个进程就接着运行,在被阻塞的进程变为就绪时,像一个新来的作业一样,拍到队列的末尾。
优缺点:利于长作业,不利于短作业。造成处理机和I/O设备得不到充分利用。
最短作业优先:适用于运行时间可以预知的非抢占式批处理调度算法。
优缺点:有利于短作业,长作业因得不到资源饿死。
最短剩余时间优先:进程运行时间必须提前掌握,调度程序总是选择剩余运行时间最短的进程运行,抢占式调度算法。但是这种调度策略必须记录进程过去被服务的时间,增加了开销
优缺点:开销大,不利于长进程。
4、交互式系统中的调度:
时间片轮转算法:时间片设置过短,会导致过多的进程切换,降低cpu效率。如果设置太长有可能引起对短的交互请求的响应时间变长。时间片一般设置到20ms-50ms
优先级调度算法:进程的优先级与进程的紧迫度有关,分为动态优先级和静态优先级,为了防止高优先级无休止的运行下去,调度程序可以在每个时钟中断降低当前进程的优先级。如果这个动作导致该进程的优先级地狱次高优先级的进程,则进程切换。
多级队列调度算法:把就绪队列分成几个单独的队列,根据进程的优先级、类型等固定的把进程加入不同的队列,每个队列有各自的调度算法。例如前台队列利用时间片轮转进程调度、后台进程利用FCFS调度。此外,各队列之间也要进行调度,通常采用固定优先级的抢占式调度。例如,前台进程优先级高于后台优先级,或者各队列分配不同的时间比例,前台80%(RR),后台20%(FCFS)。
最短进程优先: 交互式系统遵循:等待命令,执行命令,等待命令,执行命令。。。,我们将每条命令当做一个“作业”,根据以往进程行为,对运行时间进行评估。
来源:https://www.cnblogs.com/pengfeiliu/p/4385274.html