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