Linux 2.6内核新变化

Linux 2.6内核新变化
2010/06/17 01:18 A.M.

http://www.lupaworld.com/action_viewstutorial_itemid_3196.html

Linux 内核的开发已经经历了一个漫长的过程,最初是 Linus Torvalds于1991年发布的原始的0.1版本,这个版本中包括一个基本的调度器、IPC(进程间通信)和内存管理算法。而现在它已经是一个以往操作系统的实用的替代品,在市场上表现出了强大的竞争力。越来越多的政府机构和IT巨头的注意力正在转向 Linux。从最小的嵌入式设备到S/390,从手表到大型企业服务器,Linux 现在几乎可以用于所有的地方。

 

  Linux 2.6 是 Linux 开发周期中的下一个主要版本,它包括了一些强有力的特性,这些特性旨在改进高端

     企业服务器的性能和支持越来越多的嵌入式设备(要了解更详细的关于 Linux 2.6对大型的、小型的以及

     多处理器系统支持问题的分析,请参阅参考资料一节中到 Joseph Pranevich 的“Linux 的精彩世界”的链接)。


  本文为关注 Linux 的用户分析了 Linux 2.6 的一些重要特性,并且讨论了驱动程序开发人员可能会感

     兴趣的多方面的变化。


  Linux 2.6亮点


  无论是对于企业服务器还是对于嵌入式系统,Linux 2.6 都是一个巨大的进步。对高端的机器来说,

     新特性针对的是性能改进、可扩展性、吞吐率,以及对 SMP 机器 NUMA 的支持。对于嵌入式领域,

     添加了新的体系结构和处理器类型——包括对那些没有硬件控制的内存管理方案的 MMU-less 系统

     的支持。并且,和往常一样,为了满足桌面用户群的需要,添加了一整套新的音频和多媒体驱动程序。


  在本文中,我们分析了 Linux 2.6的一些最引人关注的特性,但是仍有很多值得关注的变化,包括

     强的内核核心转储、快速互斥支持、改进的I/O子系统,等等,在这里我们不能全部讨论。在侧栏中

     总结了其中一些,其余的我们在参考资料一节中给出了链接。

 新的调度器

  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之间跳跃。

  优先级:不重要的任务的优先级低(反之亦然)。

  负载平衡:调度器会降低那些超出处理器负载能力的进程的优先级。

  交互性能:使用新的调度器,即便是在非常高负载的情况下,系统花费很长时间来响应鼠标点击

     或者键盘输入的情况将不会再发生。

 内核抢占

  内核抢占补丁在2.5系列中就已经被打上,接下来在2.6中也会打。这将显著地降低用户交互式

     应用程序、多媒体应用程序等类似应用程序的延迟。这一特性对实时系统和嵌入式系统来说特别有用。


  2.5的内核抢占模块的工作由 Robert Love 完成。在先前的内核版本中(包括2.4内核),不允许抢

     占以内核模式运行的任务(包括通过系统调用进入内核模式的用户任务),直到它们自己主动释放 CPU。

<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值