Операционные системы. Учебное пособие. Марапулец Ю.В. - 80 стр.

UptoLike

Составители: 

аппаратное управление порядком обработки сигналов прерывания. Второй способ, до-
полняя первый, позволяет применять различные дисциплины обслуживания прерыва-
ний.
Наличие сигнала прерывания не обязательно должно вызывать прерывание испол-
няющейся программы. Процессор может обладать средствами защиты от прерываний:
отключение системы прерываний, маскирование (запрет) отдельных сигналов прерыва-
ния. Программное управление этими средствами (существуют специальные команда для
управления работой системы прерываний) позволяет операционной системе регулиро-
вать обработку сигналов прерывания, заставляя процессор обрабатывать их сразу по
приходу, откладывать их обработку на некоторое время или полностью игнорировать.
Обычно операция прерывания выполняется только после завершения выполнения теку-
щей команды. Поскольку сигналы прерывания возникают в произвольные моменты вре-
мени, то на момент прерывания может существовать несколько сигналов прерывания,
которые могут быть обработаны только последовательно. Чтобы обработать сигналы
прерывания в разумном порядке им присваиваются приоритеты. Сигнал с более высо-
ким приоритетом обрабатывается в первую очередь, обработка остальных сигналов пре-
рывания откладывается.
Программное управление специальными регистрами маски (маскирование сигна-
лов прерывания) позволяет реализовать различные дисциплины обслуживания [2]:
с относительными приоритетами, то есть обслуживание не прерывается даже
при наличии запросов с более высокими приоритетами. После окончания обслу-
живания данного запроса обслуживается запрос с наивысшим приоритетом. Для
организации такой дисциплины необходимо в программе обслуживания данного
запроса наложить маски на все остальные сигналы прерывания или просто от-
ключить систему прерываний;
с абсолютными приоритетами, то есть всегда обслуживается прерывание с
наивысшим приоритетом. Для реализации этого режима необходимо на время
обработки прерывания замаскировать все запросы с более низким приоритетом.
При этом возможно многоуровневое прерывание, то есть прерывание программ
обработки прерываний. Число уровней прерывания в этом режиме изменяется и
зависит от приоритета запроса;
по принципу стека, или, как иногда говорят, по дисциплине LCFS (last come first
served - последним пришел - первым обслужен), то есть запросы с более низким
приоритетом могут прерывать обработку прерывания с более высоким приорите-
том. Дли этого необходимо не накладывать маски ни на один сигнал прерывания
и не выключать систему прерываний.
Следует особо отметить, что для правильной реализации последних двух дисцип-
лин нужно обеспечить полное маскирование системы прерываний при выполнении ша-
гов 1-4 и 6-7. Это необходимо для того, чтобы не потерять запрос и правильно его об-
служить. Многоуровневое прерывание должно происходить на этапе собственно
обработки прерывания, а не на этапе перехода с одного процесса на другой.
Управление ходом выполнения задач со стороны ОС заключается в организации
реакций на прерывания, в организации обмена информацией (данными и программами),
предоставлении необходимых ресурсов, в динамике выполнения задачи и в организации
сервиса. Причины прерываний определяет ОС (модуль, который называют супервизо-
ром прерываний), она же и выполняет действия, необходимые при данном прерывании и
в данной ситуации. Поэтому в состав любой ОС реального времени прежде всего входят
программы управления системой прерываний, контроля состояний задач и событий,
синхронизации задач, средства распределения памяти и управления ею, а уже потом
средства организации данных (с помощью файловых систем и т. д.). Следует, однако,
заметить, что современная ОС реального времени должна вносить в аппаратно-
82
аппаратное управление порядком обработки сигналов прерывания. Второй способ, до-
полняя первый, позволяет применять различные дисциплины обслуживания прерыва-
ний.
     Наличие сигнала прерывания не обязательно должно вызывать прерывание испол-
няющейся программы. Процессор может обладать средствами защиты от прерываний:
отключение системы прерываний, маскирование (запрет) отдельных сигналов прерыва-
ния. Программное управление этими средствами (существуют специальные команда для
управления работой системы прерываний) позволяет операционной системе регулиро-
вать обработку сигналов прерывания, заставляя процессор обрабатывать их сразу по
приходу, откладывать их обработку на некоторое время или полностью игнорировать.
Обычно операция прерывания выполняется только после завершения выполнения теку-
щей команды. Поскольку сигналы прерывания возникают в произвольные моменты вре-
мени, то на момент прерывания может существовать несколько сигналов прерывания,
которые могут быть обработаны только последовательно. Чтобы обработать сигналы
прерывания в разумном порядке им присваиваются приоритеты. Сигнал с более высо-
ким приоритетом обрабатывается в первую очередь, обработка остальных сигналов пре-
рывания откладывается.
     Программное управление специальными регистрами маски (маскирование сигна-
лов прерывания) позволяет реализовать различные дисциплины обслуживания [2]:
    • с относительными приоритетами, то есть обслуживание не прерывается даже
       при наличии запросов с более высокими приоритетами. После окончания обслу-
       живания данного запроса обслуживается запрос с наивысшим приоритетом. Для
       организации такой дисциплины необходимо в программе обслуживания данного
       запроса наложить маски на все остальные сигналы прерывания или просто от-
       ключить систему прерываний;
    • с абсолютными приоритетами, то есть всегда обслуживается прерывание с
       наивысшим приоритетом. Для реализации этого режима необходимо на время
       обработки прерывания замаскировать все запросы с более низким приоритетом.
       При этом возможно многоуровневое прерывание, то есть прерывание программ
       обработки прерываний. Число уровней прерывания в этом режиме изменяется и
       зависит от приоритета запроса;
    • по принципу стека, или, как иногда говорят, по дисциплине LCFS (last come first
       served - последним пришел - первым обслужен), то есть запросы с более низким
       приоритетом могут прерывать обработку прерывания с более высоким приорите-
       том. Дли этого необходимо не накладывать маски ни на один сигнал прерывания
       и не выключать систему прерываний.
     Следует особо отметить, что для правильной реализации последних двух дисцип-
лин нужно обеспечить полное маскирование системы прерываний при выполнении ша-
гов 1-4 и 6-7. Это необходимо для того, чтобы не потерять запрос и правильно его об-
служить. Многоуровневое прерывание должно происходить на этапе собственно
обработки прерывания, а не на этапе перехода с одного процесса на другой.
     Управление ходом выполнения задач со стороны ОС заключается в организации
реакций на прерывания, в организации обмена информацией (данными и программами),
предоставлении необходимых ресурсов, в динамике выполнения задачи и в организации
сервиса. Причины прерываний определяет ОС (модуль, который называют супервизо-
ром прерываний), она же и выполняет действия, необходимые при данном прерывании и
в данной ситуации. Поэтому в состав любой ОС реального времени прежде всего входят
программы управления системой прерываний, контроля состояний задач и событий,
синхронизации задач, средства распределения памяти и управления ею, а уже потом
средства организации данных (с помощью файловых систем и т. д.). Следует, однако,
заметить, что современная ОС реального времени должна вносить в аппаратно-

                                         82