Chinaunix首页 | 论坛 | 博客
  • 博客访问: 521182
  • 博文数量: 1344
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 14890
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-14 20:31
文章分类

全部博文(1344)

文章存档

2010年(1344)

我的朋友

分类:

2010-10-05 07:39:24

  freebsd 5-current刚刚引入了一个名为ule调度器的内核调度单元调度器。这个调度器在smp系统中的效率要远好于freebsd以前版本的调度器(目前,那个调度器被称为4bsd调度器)。   新的ule调度器的设计更像solaris和linux等操作系统的调度器。solaris的smp性能非常好这一点是它的卖点之一,其调度器采用的优秀算法就是一个很重要的原因。bsd派生系统,尽管由于系统整体设计的合理,以及操作系统其他部分的卓越性能弥补了它在smp调度器上的不足,甚至尽管freebsd在绝大多数情况下的性能都超过   其他系统,但它使用的4bsd调度器的smp性能不高仍然为人诟病。   令人高兴的是,全新设计的ule调度器引入了solaris、linux等系统在smp调度方面的先进算法,并且,它在单处理器系统中的性能也相当不错,与4bsd调度器的性能相当。   为什么新的ule调度器能够获得更高的性能呢?最主要的原因在于,新的ule调度器为每一个cpu单独维护运行队列,并且,cpu之间能够相互“窃取”对方就绪队列中的任务,从而达到更好的平衡。基本上,ule调度器的设计符合下面的原则:尽可能利用更多的执行资源,尽可能使用局部锁,尽可能避免使用浪费执行资源的自旋锁,尽可能采用高效的调度算法(目前ule调度器采用的算法的复杂度是o(1))。   在笔者撰写这篇文章的时候,ule调度器仍然处于进一步完善的过程中。一方面,它已经能够提供比4bsd调度器更好的调度性能——内核态调度开销减少大约25%,而用户态的计算也有一定程度的缩减。   本文所说的ule调度器(src/sys/kern/sched_ule.c)的cvs tag是 $freebsd: src/sys/kern/sched_ule.c,v 1.8 2003/02/03 05:30:07 jeff exp $   未来版本的ule调度器可能会和这个版本有一些出入,但不会太大。 如果喜欢freebsd ule调度器浅析请收藏或告诉您的好朋友.
阅读(145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~