Friday, May 18th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Службы ядра Планирование потоков

Планирование потоков

Традиционно планировщик FreeBSD содержал неопределенный набор ловушек (hooks), разбросанных по всему ядру. В FreeBSD 5.0 эти ловушки были упорядочены и был создан хорошо определенный API таким образом, чтобы можно было разрабатывать различные планировщики. Начиная с FreeBSD 5.0, в ядре доступны следующие два планировщика:

Исторический планировщик 4.4BSD, который можно найти в файле /sys/kern/ sched_4bsd. c.

Новый планировщик ULE, впервые введенный в FreeBSD, который можно найти в файле /sys/kern/sched_ule. c [Roberson, 2003]. Имя не является акронимом. Если убрать из имени его файла символ подчеркивания, обоснование имени станет очевидным.

Поскольку загруженная система делает тысячи планирующих решений в секунду, скорость, с которой принимаются планирующие решения, является критической для производительности системы в целом. В других системах UNIX добавлен динамический переключатель планировщика, который должен проверяться для каждого планирующего решения. Чтобы избежать этих издержек, FreeBSD требует, чтобы планировщик был выбран во время построения ядра. Таким образом, все вызовы кода планировщика разрешаются во время компилирования вместо издержек косвенных вызовов функций для каждого планирующего решения. По умолчанию ядра вплоть до FreeBSD 5.1 используют планировщик 4.4BSD. Начиная с FreeBSD 5.2 по умолчанию используется планировщик ULE.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 70 гостей онлайн