不用操作系统有不同的目标
批处理操作系统
吞吐量
周转时间
cpu利用率
交互系统
相应时间
均衡性
实时系统
满足截止时间
可预测性
调度算法
批处理操作系统
先来先服务(FIFO)
将所有进程添加至队列中,一个进程执行结束之后,执行下一个进程
最短作业优先
将现有的、同等重要的作业按照执行时间由小到大进行排序。
最短剩余时间优先
将所有程序运行时间进行比较,按照执行时间由小到大进行排序。执行时间最短的程序先运行。它与最短作业优先不同的地方在于,如果现有最小执行时间的程序正在运行,当进入一个比现有运行程序剩余时间还要短的程序,则会发生进程的切换,执行现有最短剩余时间的进程。
交互式系统
轮转调度
将每一个进程分配一个时间片,在给定的时间片内运行程序,时间片消耗完之后,会执行下一个程序。
优先级调度
在优先级调度中,每个进程都会有一个优先级,按照优先级进行排序,优先级高的先运行。
但是防止优先级高的进程,一直运行,有两种方法:
- 第一种方法是,运行一段时间的进程之后,将该进程的优先级做降级处理,这样其他的进程可以在该进程没有结束也有机会运行。
- 第二种方法是,为每个进程分配一个时间片,将该进程执行的时间设为最大时间片,如果该进程在时间片之内执行结束,会切换下一个进程。如果该进程在该时间片内没有执行结束,则会切换为次高优先级的进程
最短进程优先
在进程队列中,系统对进程的执行时间进行预测,进程的队列按照进程执行时间排列。
保证调度
如果有n个进程在系统内,优先级相同的情况下,每个进程平均分配到的时间是1/n,操作系统要保证运行的时间是1/n,如果之前运行的时间短,就需要多分配时间,如果之前运行的时间长就分配更多的时间给其他进程。
彩票调度
系统给进程分配给一些彩票,一旦要做出一些调度决策时,系统就随机抽出一张彩票,拥有该彩票的进程获得该资源。