ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ

Содержание

Слайд 2

Занятие 5.
Прерывания, типы и классификация.
Механизм обработки прерываний.
Функции механизма обработки прерываний. Вызов и

Занятие 5. Прерывания, типы и классификация. Механизм обработки прерываний. Функции механизма обработки
переключение контекста.

Тема 1.4. Прерывания. Обработка прерываний

Занятие 6.
Обработка прерываний. Обработчик прерываний.
Распределение прерываний по уровням приоритета.
Многократные прерывания. Дисциплины обслуживания запросов.

Слайд 3

Занятие 5.
Прерывания, типы и классификация.
Механизм обработки прерываний.
Функции механизма обработки прерываний. Вызов и

Занятие 5. Прерывания, типы и классификация. Механизм обработки прерываний. Функции механизма обработки
переключение контекста.

Тема 1.4. Прерывания. Обработка прерываний

Слайд 4

Тема 1.4. Занятие 5.

Прерывания – механизм ЭВМ, используемый для выполнения незапланированных действий,

Тема 1.4. Занятие 5. Прерывания – механизм ЭВМ, используемый для выполнения незапланированных
который прерывает выполнение основного потока команд и переводит процессор на выполнение потока команд для обработки прерывания с последующим возвратом к исходным командам.

Команда

Данные

Обраб.
прер.

Прогр.

Буф.
ком.

Рег.

ОЗУ

ЦП

Буф.
ком.

Рег.

ЦП

Буф.
ком.

Рег.

ЦП

Буф.
ком.

Рег.

ЦП

Механизм обработки прерывания

Команда

Данные

Обраб.
прер.

Прогр.

ОЗУ

Конт.
проц.

Команда

Данные

Обраб.
прер.

Прогр.

ОЗУ

Конт.
проц.

Команда

Данные

Обраб.
прер.

Прогр.

ОЗУ

Конт.
проц.

Возникновение прерывания

Выгрузка
контекста процесса

Обработка
прерывания

Загрузка
контекста процесса

Слайд 5

Этап аппаратной обработки прерываний

Завершение текущей команды

Блокировка прерываний. Сохранение актуального состояния процессора

Прерывание

Программный этап

Этап аппаратной обработки прерываний Завершение текущей команды Блокировка прерываний. Сохранение актуального состояния
обработки прерывания

Слайд 6

Программный этап обработки прерываний

да

нет

нет

короткое ?

обработка

«Полное» сохранение регистров

фатальное?

да

Снятие блокировки прерывания

Снятие блокировки прерывания

Завершение

Программный этап обработки прерываний да нет нет короткое ? обработка «Полное» сохранение
обработки прерывания

Завершение прерванной программы

Слайд 7

В зависимости от источника прерывания делятся на три класса (типа):
Внешние (аппаратные) прерывания

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

Тема 1.4. Занятие 5.

Слайд 8

Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени важности и

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

Тема 1.4. Занятие 5.

Слайд 9

Существую два способа реализации прерываний:
векторный – в ЦП передается информация об

Существую два способа реализации прерываний: векторный – в ЦП передается информация об
уровне приоритета прерывания, а так же информация о начальном адресе программы обработчика возникшего прерывания;
опрашиваемый – в ЦП передается только приоритет прерывания, ЦП самостоятельно определяет каким устройством вызвано прерывание путем вызова всех обработчиков прерывания для данного уровня приоритета, пока один из обработчиков не подтвердит что прерывание пришло из обслуживаемого им устройства.

Тема 1.4. Занятие 5.

Тема 1.4. Занятие 5.

Контроллер прерываний кр580

Слайд 10

Механизм обработки прерываний реализуется аппаратно-программными средствами. Структуры систем прерываний зависят от архитектуры

Механизм обработки прерываний реализуется аппаратно-программными средствами. Структуры систем прерываний зависят от архитектуры
процессора и могут быть самыми разными, но они все имеют общую сущность – прерывание влечет за собой изменение порядка выполнения команд.
Рассмотрим механизм обработки прерываний. Независимо от конкретной реализации он включает в себя следующие элементы:
Прием сигнала на прерывание и его идентификация.
Запоминание состояния прерванного процесса. Состояние процесса определяется прежде всего значением счетчика команд (адресом следующей команды), содержимым регистров процессора и может включать также спецификацию режима (пользовательский или привилегированный) и другую информацию.
Управление аппаратно передается программе обработки прерывания.
Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью действий аппаратуры.
Обработка прерывания. Чаще реализуется посредством вызова соответствующей подпрограммы, хотя может быть выполнена и той же подпрограммой, которой было передано управление на шаге 3.
Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).
Возврат в прерванную программу.
Шаги 1–3 реализуются аппаратно, а шаги 4–7 – программно.

Тема 1.4. Занятие 5.

Слайд 11

Рассмотрим схему обработки прерывания. При возникновении запроса на прерывание естественный ход вычислений

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

Тема 1.4. Занятие 5.

Слайд 12

Тема 1.4. Занятие 5.

Схема обработки прерывания

Тема 1.4. Занятие 5. Схема обработки прерывания

Слайд 13

Главные функции механизма прерываний:
распознавание или классификация прерываний;
передача управления соответствующему обработчику прерываний;
корректное возвращение

Главные функции механизма прерываний: распознавание или классификация прерываний; передача управления соответствующему обработчику
к прерванной программе.
При этом переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых прерываний и адреса соответствующих обработчиков.
Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний содержимое регистров процессора запоминается в памяти с прямым доступом либо в системном стеке

Тема 1.4. Занятие 5.

Слайд 14

Итак, как было сказано выше, прерывания могут быть разделены на два основных

Итак, как было сказано выше, прерывания могут быть разделены на два основных
класса: внешние (асинхронные) и внутренние (синхронные).
Внешние прерывания являются аппаратными и представляют собой асинхронные события, которые возникают независимо от того, какой код исполняется процессором в данный момент.
Примеры:
прерывания от таймера;
прерывания от внешних устройств (прерывания по вводу/выводу);
прерывания по нарушению питания;
прерывания с пульта оператора вычислительной системы;
прерывания от другого процессора.

Тема 1.4. Занятие 5.

Слайд 15

Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными

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

Тема 1.4. Занятие 5.

Контроллер прерываний формирует очередь на обработку этих событий

Слайд 16

Тема 1.4. Прерывания. Обработка прерываний

Занятие 6.
Обработка прерываний. Обработчик прерываний.
Распределение прерываний по уровням

Тема 1.4. Прерывания. Обработка прерываний Занятие 6. Обработка прерываний. Обработчик прерываний. Распределение
приоритета.
Многократные прерывания. Дисциплины обслуживания запросов.

Слайд 17

Механизм прерываний чаще всего поддерживает приоритезацию и маскирование прерываний. Приоритезация означает, что

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

Тема 1.4. Занятие 5.

Слайд 18

Упорядоченное обслуживание запросов прерываний наряду со схемами приоритетной обработки может выполняться механизмом

Упорядоченное обслуживание запросов прерываний наряду со схемами приоритетной обработки может выполняться механизмом
маскирования запросов. Программное управление специальными регистрами маски – маскирование сигналов прерывания независимо от уровня приоритета – позволяет реализовать различные дисциплины обслуживания:
с относительными приоритетами, т.е. обслуживание не прерывается даже при поступлении запросов с более высокими приоритетами. Только после окончания обслуживания данного запроса обслуживается новый запрос с наивысшим приоритетом. Для организации такой дисциплины необходимо в программе обслуживания данного запроса наложить маски (запрет) на все остальные сигналы прерываний, или просто отключить систему прерываний;
с абсолютными приоритетами – всегда обслуживается прерывание с наивысшим приоритетом. Для реализации этого режима необходимо на время обработки прерывания замаскировать все запросы с более низким приоритетом. При этом возможно многоуровневое прерывание, т.е. прерывание программ обработки прерываний. Число уровней прерывания в этом режиме изменяется и зависит от приоритета запроса. Если процессор работает по такой схеме, то в одном из своих внутренних регистров он поддерживает переменную, фиксирующую уровень приоритета обслуживаемого в данный момент прерывания.
по принципу стека (по дисциплине LCFS – lastcomefirstserved)– запросы с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом. Для реализации такой дисциплины необходимо не накладывать маски ни на один сигнал прерывания и не выключать систему прерываний.

Тема 1.4. Занятие 5.

Слайд 19

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

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

Тема 1.4. Занятие 5.

Слайд 20

Тема 1.4. Занятие 5.

Схема обработки прерываний в мультипрограммной системе

Тема 1.4. Занятие 5. Схема обработки прерываний в мультипрограммной системе

Слайд 21

На первом этапе при появлении запроса на прерывание идентификация сигнала выполняется специальным

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

Тема 1.4. Занятие 5.

Слайд 22

Что такое прерывание? Когда оно было введено в действие и с какой

Что такое прерывание? Когда оно было введено в действие и с какой
целью?
Из каких этапов состоит механизм обработки прерывания?
Можно ли запретить все прерывания на время работы обработчика прерываний? Почему?
К какому типу прерываний относятся прерывания клавиатуры? Прерывания таймера? Возникновение деления на ноль в ходе выполнения программы? Обращение к запрещённой странице памяти, занятой кодом ОС?
Приведите примеры аппаратных прерываний.
Могут ли в ходе нормальной работы программы возникать исключительные ситуации? Почему?
Какие существуют способы реализации механизма аппаратных прерываний? В чём их различие?
Что такое маскирование прерываний и для чего оно может применяться?
Каким образом можно реализовывать различные дисциплины обслуживания прерываний с помощью маскирования?
В чём различия между дисциплиной обслуживания прерываний с относительными приоритетами и с абсолютными?
Где содержится информация об уровне приоритета текущего обработчика прерываний?
Каковы функции супервизора прерываний?
Чем отличается реализация механизма прерывания в мультипрограммной системе от однопрограммной системы?
Когда происходит возврат к выполнявшейся до поступления сигнала прерывания программе в мультипрограммной системе?

Контрольные вопросы:

Имя файла: ОПЕРАЦИОННЫЕ-СИСТЕМЫ-И-СРЕДЫ-.pptx
Количество просмотров: 189
Количество скачиваний: 0