Операционные системы. Курс лекций



Диспетчеризация и приоретизация прерываний


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

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

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

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

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

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

По отношению к обработчикам прерываний любой поток, который назначен на выполнение планировщиком, имеет низкий приоритет, так что любой запрос на прерывание всегда может прервать выполнение этого потока.

Диспетчер прерываний в Windows NT работает с программной моделью прерываний, единой для всех аппаратных платформ. Все источники прерываний делятся на несколько классов, и каждому классу присваивается уровень запросов прерывания IRQL. Этот уровень представляет приоритет данного класса.


Начало  Назад  Вперед