Алгоритм планирования FreeBSD с разделением времени основан на многоуровневых очередях с обратной связью. Система регулирует приоритет потока динамически, чтобы отражать потребности в ресурсах (например, блокирование в ожидании события) и объем потребляемых потоком ресурсов (например, время процессора). Потоки перемещаются между очередями выполнения, основываясь на их приоритетах планирования (отсюда слово обратная связь в названии многоуровневая очередь с обратной связью). Когда поток, который не является текущим выполняющимся потоком, получает более высокий приоритет (который назначается при его пробуждении), система немедленно переключается на этот поток, если текущий поток находится в режиме пользователя. В противном случае система переключается на поток с более высоким приоритетом, как только текущий поток выйдет из ядра. Система приспосабливает этот алгоритм кратковременного планирования для благоприятствования интерактивным заданиям, повышая приоритеты планирования потоков, которые заблокированы в ожидании ввода/вывода в течение одной или более секунд, и понижая приоритеты потоков, которые набирают значительные количества процессорного времени.
Кратковременное планирование потока делится на две части.
- 11/10/2010 07:30 - Отправка сигнала
- 10/10/2010 22:11 - История сигналов
- 10/10/2010 01:09 - Процедуры вычисления приоритета потока
- 09/10/2010 12:36 - Сигналы
- 09/10/2010 10:28 - Завершение процесса
- 03/10/2010 00:33 - Создание процесса
- 01/10/2010 01:49 - Планировщик 4.4BSD
- 28/09/2010 13:03 - Функции планировщика ULE
- 27/09/2010 22:41 - Планировщик ULE
- 20/09/2010 00:36 - Другие виды синхронизации