云南理工大学linux教学-Linux内核之CFS调度和组调度.docVIP

  • 0
  • 0
  • 约3.46千字
  • 约 5页
  • 2017-07-28 发布于浙江
  • 举报

云南理工大学linux教学-Linux内核之CFS调度和组调度.doc

Linux支持三种进程调度策略,分别是SCHED_FIFO 、 SCHED_RR和SCHED_NORMAL。Linux支持两种类型的进程,实时进程和普通进程。实时进程可以采用SCHED_FIFO 和SCHED_RR调度策略;普通进程采用SCHED_NORMAL调度策略。 本文主要讨论普通进程的调度算法,为了描述方便,后面章节中的“进程”指“普通进程”。 从Linux2.6.23内核到目前最新的Linux3.3.5内核的普通进程(采用调度策略SCHED_NORMAL)采用了绝对公平调度算法,CFS(completely fair schedule)。CFS从RSDL/SD中吸取了完全公平的思想,不再跟踪进程的睡眠时间,也不再区分交互式进程。它将所有的进程都统一对待,这就是公平的含义。CFS 调度中,进程数据结构中的动态优先级成员prio还继续有效,只是内核不再动态调整进程的动态优先级了。 进程的优先级为100—139,对应的nice值为-20—19。和之前版本的优先级规定相同。Nice 和优先级对应关系如下 ? ? 如何实现公平调度的?内核给每个进程维护了一个虚拟运行时间vruntime,每个进程运行一段时间后,虚拟运行时间会增加,但是运行同样的实际时间每个进程增加的数值是不同的。比如nice值为0的进程运行了10ms,其虚拟运行时间增加了1vms(vms为1虚拟毫秒,为了描

文档评论(0)

1亿VIP精品文档

相关文档