【操作系统】处理器调度

【操作系统】处理器调度


处理器调度

什么是处理器调度

我们知道现如今的CPU往往是多核多线程的,拿作者的电脑举例子:总共4个核心,每个核心可以处理4个线程。也就是说同时能提供16个线程的并行处理。

但是如今的系统非常复杂,再加上各种大型软件,线程需要被创建,执行,销毁等,所需线程数远大于16,所以就需要cpu在不同的程序线程中来回切换,这就称为处理器调度。

调度准则

  • 资源利用率
  • 平衡资源:应保证所有资源都处于繁忙状态,不应该存在有些闲置,而有些很忙
  • 响应时间:交互式的进程的响应时间应尽可能的短
  • 周转时间:一个进程从提交到完成所需时间叫做周转时间,周转时间应该尽可能的短
  • 吞吐率:应尽量保证每个单位时间内完成的进程数最多
  • 公平性:确保每个用户都可以合理的获取系统资源份额

处理器调度层次

长程调度

长程调度发生在新进程的创建中,他决定了一个进程能否被创建,或者创建后是否被置成就绪态,来参加处理器资源的竞争。

中程调度

主要负责内存和外存之间的进程对换,解决内存紧张的问题。

短程调度(重点)

短程调度决定哪一个就绪的线程去占用CPU资源进行执行。

  1. 短程调度功能:
    1. 保护当前正在执行进程的现场
    2. 根据算法策略从就绪进程中选择一个,将CPU分配给他
    3. 恢复被调度到的进程的原来现场,从上次放弃的地方继续执行
  2. 短程调度的方式:
    1. 剥夺式,抢占式:优先级原则,短进程原则,时间片原则
    2. 非剥夺式,非抢占式:这种方式下,除非当前正在执行的线程主动让出CPU,否则其他线程没有机会执行

短程调度算法

短程调度决定哪一个就绪的线程去占用CPU资源进行执行。为了方便理解思想,我们讨论“单核单线程”的情况。

先来先服务调度

正如名字,“先来先服务”。先进入队列的线程,优先获得CPU的使用权。

缺点:不适合实时操作系统

时间片轮转法

系统将所有的就绪进程按顺序排成一个队列,每次调度 时,按照顺序把 CPU 分配给全部线程,并令其执行相同的时间片。

缺点:容易频繁切换上下文,CPU有效时间比例降低

最短进程优先调度

所需要CPU时间最短的线程优先获取CPU的使用权。

缺点:可能会产生饥饿情况

优先级调度

根据线程的优先级分配CPU。

缺点:难以确定各个线程的优先级。

多级反馈队列轮换法

上述各种调度方法都有一定的缺陷和偏向方面。 多级反馈队列调度算法是一种根据先来先服务原则给就绪队列排序,为就绪队列赋予不同的优先级数,不同的时间片,按照优先级抢占CPU的调度算法。 是一种相对公平,且高效的调度算法。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×