Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС 2 модуль все части ПЕЧАТАТЬ.docx
Скачиваний:
72
Добавлен:
18.12.2018
Размер:
328.96 Кб
Скачать
  1. Ч4_Какие дополнительные организационные трудности для ос создают прерывания?

Обеспечивая реакцию на асинхронные по отношению к вычислительному процессу события, прерывания в то же время создают дополнительные организационные трудности для ОС. Они связаны с непредвиденными передачами управления от одной процедуры к другой, возникающими в результате прерываний от контроллеров УВВ. Возможны также непредвиденные внутренние прерывания (исключения), связанные с ошибками во время выполнения инструкций. Усложняют планирование и запросы на выполнение системных функций – системные вызовы от пользовательских приложений, выполняемые с помощью программных прерываний. Сами модули ОС также часто вызывают друг друга с помощью программных прерываний, еще больше запутывая картину вычислительного процесса. ОС не может терять контроль над ходом выполнения системных процедур, вызываемых по прерываниям. Кроме того, сам планировщик потоков является системной процедурой, вызываемой по прерываниям.тПоэтому правильное планирование процедур, вызываемых по прерываниям, является необходимым условием правильного планирования пользовательских потоков.

  1. Ч4_Как осуществляются диспетчеризация и учет приоритетов прерываний в ос?

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

Возможны также непредвиденные внутренние прерывания (исключения), связанные с ошибками во время выполнения инструкций.Диспетчеризация прерываний является важной функцией, реализованной практически во всех мультипрограммных ОС. В общем случае в ОС реализуется двухуровневый механизм планирования работ. Верхний уровень планирования выполняется диспетчером прерываний, который распределяет процессор между потоком поступающих запросов на прерывания различных типов - внешних, внутренних и программных. Оставшееся процессорное время распределяется другим диспетчером -диспетчером потоков, на основании дисциплин квантования и других [2].

  1. Ч4_Как работает диспетчер прерываний?

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