频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

详解Linux 2.6内核新变化

来源:IBM 作者:Anand K Santhanam 出处:巧巧读书 2005-12-07 进入讨论组
上一页 1 2 3 4 5 6 7 8 9 下一页 
新的调度器

  2.6版本的 Linux 内核使用了由 Ingo Molnar 开发的新的调度器算法,称为O(1)算法,它在高负载的情况下执行得极其出色,并且当有很多处理器时也可以很好地扩展。

  在2.4版本的调度器中,时间片重算算法要求在所有的进程都用尽它们的时间片以后,它们的新时间片才会被重新计算。这样的话在一个有很多处理器的系统中,当进程用完它们的时间片以后得等待重算(以得到新的时间片),从而导致大部分的处理器处于空闲状态;这将影响SMP的效率。除此之外,当空闲的处理器开始执行那些时间片尚未用尽的处于等待状态的进程(如果它们自己的处理器忙),会导致进程开始在处理器之间“跳跃”。当一个高优先级进程或者交互式进程发生跳跃时,整个系统的性能就会受到影响。

  新的调度器解决上述问题的方法是,基于每个 CPU 来分布时间片,并且取消了全局同步和重算循环。调度器使用了两个优先级数组,即活动数组和过期数组,可以通过指针来访问它们。活动数组中包含了所有映射到某个CPU而且时间片尚未用尽的任务。过期数组中包含了一个时间片已经用尽的所有任务的有序列表。如果所有活动任务的时间片都已用尽,那么指向这两个数组的指针互换,过期数组(包含了准备运行的任务)成为活动数组,而空的活动数组成为包含过期任务的新数组。数组的索引存储在一个64位的位图中,找到最高优先级的任务是很容易的。

  新的调度器现在不再有大的 runqueue_lock。它维持每个处理器的运行队列/锁机制,以使得两个不同处理器上的两个进程可以完全并行地休眠、唤醒和上下文切换。重算循环(为进程重新计算时间片)和 goodness 循环已经被取消,O(1)算法用于 wakeup() 和 schedulee()。

  新调度器的主要好处包括:

  SMP效率:如果有工作需要完成,那么所有处理器都会工作。
  等待进程:没有进程需要长时间地等待处理器;同时,没有进程会无端地占用大量的CPU时间。
  SMP进程映射:进程只映射到一个CPU而且不会在CPU之间跳跃。
  优先级:不重要的任务的优先级低(反之亦然)。
  负载平衡:调度器会降低那些超出处理器负载能力的进程的优先级。
  交互性能:使用新的调度器,即便是在非常高负载的情况下,系统花费很长时间来响应鼠标点击或者键盘输入的情况将不会再发生。Web: http://www.qqread.com/linux/z421145206.html 更多文章 更多内容请看Linux集群技术体验Linux的音影世界Linux驱动大全专题,或进入讨论组讨论。

上一页 1 2 3 4 5 6 7 8 9 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章