Диспетчеризация задач с использованием динамических приоритетов

Во многих ОС, а в ОС реального времени обязательно, имеются средства для изменения приоритета программ. Введение механизмов динамического изменения приоритетов позволяет реализовать более быструю реакцию системы на короткие запросы пользователей, что очень важно при интерактивной работе, но при этом гарантировать выполнение любых запросов.

Например, в Windows NT каждый поток (задача) имеет базовый уровень приоритета, который лежит в диапазоне от двух уровней ниже базового приоритета процесса, его породившего, до двух уровней выше этого приоритета. Поток наследует этот базовый приоритет и может изменять его так, чтобы он стал немного меньше или немного больше. В результате получается приоритет планирования, с которым поток и начинает исполняться. Например, если поток обрабатывает пользовательский ввод, то диспетчер задач Windows NT поднимает его динамический приоритет, если он выполняет вычисления, то диспетчер постепенно снижает его приоритет до базового. Таким образом производится управление относительной приоритетностью потоков внутри процесса.

15

14 Диапазон значений

13 динамического

12 приоритета потока

6 Базовый приоритет

5 потока

4 Базовый приоритет

3 процесса

2

Рис.3. Схема динамического изменения приоритетов в Windows NT

Для определения порядка выполнения потоков диспетчер использует систему приоритетов, направляя на выполнение потоки с высоким приоритетом раньше потоков с низкими приоритетами.

Существует группа очередей – по одной для каждого приоритета. Windows NT поддерживает 32 уровня приоритетов; потоки делятся на два класса: реального времени и переменного приоритета. Потоки реального времени, имеющие приоритеты от 16 до 31, используются программами с критическим временем выполнения. Большинство потоков в системе относятся к классу переменного приоритета с уровнями приоритета от 1 до 15. Для собственно системных модулей, функционирующих в статусе задач, зарезервирован приоритет с номером 0.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: