Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Slawa Olhovchenkov                   2:5030/500     20 Jul 2006  09:03:10
 To : All
 Subject : Вести с полей
 -------------------------------------------------------------------------------- 
 
 
 davidxu     2006-06-13 13:12:57 UTC
 
   FreeBSD src repository
 
   Modified files:
     sys/conf             NOTES files options
     sys/kern             kern_clock.c kern_switch.c sched_4bsd.c
                          sched_ule.c
     sys/sys              sched.h
     sys/i386/conf        GENERIC
     sys/amd64/conf       GENERIC
   Added files:
     sys/kern             sched_core.c
   Log:
   Add scheduler CORE, the work I have done half a year ago, recent,
   I picked it up again. The scheduler is forked from ULE, but the
   algorithm to detect an interactive process is almost completely
   different with ULE, it comes from Linux paper "Understanding the
   Linux 2.6.8.1 CPU Scheduler", although I still use same word
   "score" as a priority boost in ULE scheduler.
 
   Briefly, the scheduler has following characteristic:
   1. Timesharing process's nice value is seriously respected,
      timeslice and interaction detecting algorithm are based
      on nice value.
   2. per-cpu scheduling queue and load balancing.
   3. O(1) scheduling.
   4. Some cpu affinity code in wakeup path.
   5. Support POSIX SCHED_FIFO and SCHED_RR.
   Unlike scheduler 4BSD and ULE which using fuzzy RQ_PPQ, the scheduler
   uses 256 priority queues. Unlike ULE which using pull and push, the
   scheduelr uses pull method, the main reason is to let relative idle
   cpu do the work, but current the whole scheduler is protected by the
   big sched_lock, so the benefit is not visible, it really can be worse
   than nothing because all other cpu are locked out when we are doing
   balancing work, which the 4BSD scheduelr does not have this problem.
   The scheduler does not support hyperthreading very well, in fact,
   the scheduler does not make the difference between physical CPU and
   logical CPU, this should be improved in feature. The scheduler has
   priority inversion problem on MP machine, it is not good for
   realtime scheduling, it can cause realtime process starving.
   As a result, it seems the MySQL super-smack runs better on my
   Pentium-D machine when using libthr, despite on UP or SMP kernel.
 ... Если на клетке слона прочтешь надпись "буйвол", не верь глазам своим.
 --- GoldED+/BSD 1.1.5
  * Origin:  (2:5030/500)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Вести с полей   Slawa Olhovchenkov   20 Jul 2006 09:03:10 
Архивное /ru.unix.bsd/222144bf0f04.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional