URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 37234
[ Назад ]

Исходное сообщение
"OpenNews: Переработанный справедливый планировщик задач для Linux ядра"

Отправлено opennews , 19-Апр-07 21:51 
Ingo Molnar объявил (http://kerneltrap.org/node/8059) о выходе релиза набора патчей с реализацией подсистемы модульных планировщиков задач (Modular Scheduler Core) и модуля-планировщика с полностью справедливым распределением ресурсов (Completely Fair Scheduler - CFS).


Проект представляет собой полностью переработанный механизм планирования задач для Linux, в котором устранены недостатки текущей реализации.


В планировщике задач CFS вместо очередей  процессов ожидающих выполнения, используется дерево rbtree, определяющее план с временем перехода к выполнению очередного процесса. Единица планирования  времени в CFS фиксирована  - наносекунда, и не привязана к частоте генерации прерываний таймера (HZ).

CFS  планировщик поддерживает два режима работы:  'desktop' (low latencies) и 'server' (good batching).

URL: http://kerneltrap.org/node/8059
Новость: http://www.opennet.me/opennews/art.shtml?num=10531


Содержание

Сообщения в этом обсуждении
"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено pavlinux , 19-Апр-07 21:51 
  Секунда есть время, равное 9192631770 периодам излучения, соответствующего
переходу между двумя сверхтонкими уровнями основного состояния атома цезия 133.
  Если он, Ingo, подключит такой таймер к Линуху, тогда одна наносекунда
будет, и то с погрешностью, равна 9 таким переходам.
  А пока таймеры в компах, работают на кварце с собственной частотой где-то около
24 с х..ем, где-то 12 с х...ем мегагерц. т.е. 24 мильёна в секунду. И потом делится на участки по 1024, т.е. отрабатывается среднее, и из 24000000 делаются 1024 выборки они то и равны секунде в компе.

Как он собрается ловить нано секунду???  


"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Eugeni , 20-Апр-07 01:21 
1.0 nanoseconds (1.0 ns) – cycle time for frequency 1 GHz, radio wavelength 0.3 m

http://en.wikipedia.org/wiki/Nanosecond

Наносекунды разные бывают :).


"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено www.andr.ru , 21-Апр-07 19:49 
> 24 с х..ем, где-то 12 с х...ем мегагерц.

Не с х..ем, а с лихуем. Слово такое, народное, означает "с небольшим".


"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено pavlinux , 19-Апр-07 21:53 
... Дык, самое главное-то забыл...
я к тому что сам таймер привязан к генератору, пусть не прерываний, но всё же.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Некто , 20-Апр-07 09:29 
таймер привязан к одному генератору, а процессор -- к другому :)
тот, другой -- пошустрей будя :)))))

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено GByte , 20-Апр-07 07:31 
а кто вам сказал что каждому процессу именно по 1нс будет давать?
наносекунда - минимальная величина, никто не запрещает давать процессу по 10нс, по 100нс, и тд...

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено pavlinux , 20-Апр-07 12:06 
echo 1 > /proc/sys/kernel/sched_granularity_ns

:)


"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Deka , 20-Апр-07 08:27 
Не понял про наносеунду. Это что прикол ?
В книжке Роберта Лава все расписанно, и обоснованно.
Ознакомтесь - и будет все понятно.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено DXT , 20-Апр-07 09:39 
Не путайте теплое с мягким. человек переписал планировщик, а не доработал текущий
it does not use runqueues, it uses a time-ordered rbtree to build a 'timeline' of future task execution, and thus has no 'array switch' artifacts (by which both the vanilla    scheduler and RSDL/SD are affected).

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Deka , 20-Апр-07 11:58 
Это все же не правильно - про наносекунду. Под какие же процы это заточенно.
Сильно частить нельзя - можно с ритма весь квартал сбить :-)
Если таймер и привязан к наносекунде, то каждую наносекунду вырабатывается (скорее всего) програмное прерывание. Это не совсем корректно дергать весь кэш и регистры каждую наносекунду.
И будет очень интересно сравнить это со стандартным планировщиком.
А еще хотелось бы увидеть выбор планировщика при компиляции ядра. А то ведь там его нету :-(



"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Аноним , 20-Апр-07 12:13 
Пока нету, ибо выбирать нечего. RSDL ещё из -mm не выкинули и Con Kolivas его по немногу исправляет. Так что скоро их там 2-3 может и будет.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено belkin , 20-Апр-07 12:47 
Перед передачей управления процессу планировщик заносит в спец. регистр процессора число тактов по истечении которых процессор выполнит исключение для возврата управления ОС. Число тактов вычисляется планоровщиком: N=ВремяДляПроцесса/частотаCPU. Есень пень что 1 nS процессу давать глупо. Речь идёт о точности.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Deka , 21-Апр-07 10:09 
Про спец регистры - каждому контенту задачи выделяется свое пространство памяти, в том числе и набор регистров (их копии). Программный счетчик никто трогать не будет. Про какой спец регистр идет речь ?
Число тактов - нет, не совсем так. Каждой задаче выделяются кванты времени, в зависимости от  ее характера и от приоритета. Но в планировщике линуха еще есть специальный алгоритм для дополнительного перераспределения квантов времени.
А про точность - ну здесь наверное правильнее говорить про масштаб точности. Поскольку если мой булыжник имеет частоту 2210 Мег, то можно говорить что тики идут через определенный интервал времени. Меньше которого замерить нельзя, и можно замерить время только кратное ему.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено belkin , 23-Апр-07 11:12 
>Про спец регистры - каждому контенту задачи выделяется свое пространство памяти, в
>том числе и набор регистров (их копии). Программный счетчик никто трогать
>не будет. Про какой спец регистр идет речь ?

Речь идёт про те служебные регистры и функции, которые появились в Pentium'e 13-14 лет назад и предназначались для построения Real Time Systems. Intel их никогда специально не рекламировала.


"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено www.andr.ru , 21-Апр-07 19:54 
Надо испытать его на предмет инверсии приоритетов.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Аноним , 22-Апр-07 13:49 
Попробовал сегодня на 2.6.20... ну что респект Ingo Molnar! Для десктопа на весчь, многие узкие места которые были в стандартном планировщике - исчезли.

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Аноним , 22-Апр-07 19:51 
какие например?
кто ещё ставил эти патчи как впечатления?

"Переработанный справедливый планировщик задач для Linux ядра"
Отправлено Аноним , 11-Июл-07 15:02 
Я слыхал я про таймер высокого разрешения, который есть сейчас на каждой плате, он может быть и юзается как-то. Вообще его профилировщики для точного измерения отрезков времени используют. Добирался к нему как-то года два назад даже из делфи:-)