Архитектура современных операционных систем
127 Для того чтобы вести учет, какие потоки, на каких процессорах выполня- ются, а какие простаивают, планировщик ведет специальную базу DDB (Dispetcher Database). Одной из главных частей этой базы является так называемая DRQ – оче- редь готовности диспетчера. Это целая группа очередей: по одной очереди на каждый уровень приори- тета (рис. 4.15.). Фактически имеется 31 очередь готовых потоков. В каждой очереди располагаются готовые потоки, имеющие соответству- ющий уровень приоритета. Уровень 0 для выполняемых потоков не используется. На уровне 0 система выполняет специальные потоки простоя. Когда процессор простаивает, система запускает на нем поток простоя. Он всегда готов к выполнению и вся его работа состоит в том, что он в цикле проверяет, не появился ли к данному процессору поток в резервном состоянии. Если появился - поток простоя осуществляет пе- реключение контекста на него. Рис. 4.15. Все уровни приоритета делится на 2 группы (класса). Внутри класса переменного приоритета планировщик может динамически изменять приоритет потоков. Так у потоков, вышедших из состояния ожидания, приоритет несколько увеличивается, а величина добавки зависит от причины ожидания. Если поток ждал клавиатурного ввода, то выше, если дискового, то ниже. 31 30 … 17 16 15 14 … 1 класс реального времени класс переменного приоритета 0 (потоки простоя)
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy