Слайд 2
Прерывания – механизм, позволяющий координировать параллельное функционирование отдельных
устройств вычислительной системы и реагировать на особые состояния, возникающие
при работе процессора. Это принудительная передача управления от выполняемой программы к системе (а через нее – к соответствующей программе обработки прерывания), происходящая при возникновении определенного события.
Слайд 3
Основная цель введения прерываний — реализация асинхронного
режима работы и распараллеливание работы отдельных устройств вычислительного комплекса.
Механизм прерываний реализуется аппаратно-программными средствами. Структуры систем прерывания (в зависимости от аппаратной архитектуры) могут быть самыми разными, но все они имеют одну общую особенность — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Слайд 4
В зависимости от источника возникновения сигнала прерывания делятся
на:
1.асинхронные, или внешние (аппаратные) — события, которые исходят от
внешних аппаратных устройств (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание - устройства сообщают, что они требуют внимания со стороны ОС;
2.синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;
3.программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания, как правило, используются для обращения к функциям встроенного программного обеспечения, драйверов и операционной системы.
Слайд 5
Механизм обработки прерываний включает следующие элементы Механизма обработки
прерываний:
1. Установление факта прерывания (прием сигнала на прерывание) и
идентификация прерывания
2. Запоминание состояния прерванного процесса. Состояние процесса определяется прежде всего значением счетчика команд , содержимым регистров процессора.
3. Управление аппаратно передается подпрограмме обработки прерывания. В простейшем случае в счетчик команд заносится начальный адрес подпрограммы обработки прерываний, а в соответствующие регистры — информация из слова состояния.
4. Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью действий аппаратуры. В некоторых вычислительных системах предусматривается запоминание довольно большого объема информации о состоянии прерванного процесса.
5. Обработка прерывания. Эта работа может быть выполнена той же подпрограммой, которой было передано управление на шаге 3, но в ОС чаще всего она реализуется путем последующего вызова соответствующей подпрограммы.
6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).
7. Возврат в прерванную программу.
Слайд 6
Главные функции механизма прерываний:
распознавание или классификация прерываний;
передача управления
соответственно обработчику прерываний;
корректное возвращение к прерванной программе.
Переход от прерываемой
программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков.
Слайд 7
Принцип работы внутренних и внешних устройств с процессором
используя одно из прерываний:
Слайд 8
Порядок обработки прерываний в зависимости от типа прерываний:
Учет
приоритета может быть встроен в технические средства, а также
определяться операционной системой, то есть кроме аппаратно реализованных приоритетов прерывания большинство вычислительных машин и комплексов допускают программно-аппаратное управление порядком обработки сигналов прерывания.
Слайд 9
Программное управление специальными регистрами маски позволяет реализовать различные
дисциплины обслуживания:
1.С относительными приоритетами, то есть обслуживание не прерывается
даже при наличии запросов с более высокими приоритетами. После окончания обслуживания данного запроса обслуживается запрос с наивысшим приоритетом. Для организации такой дисциплины необходимо в программе обслуживания данного запроса наложить маски на все остальные сигналы прерывания или просто отключить систему прерываний;
2.с абсолютными приоритетами, то есть всегда обслуживается прерывание с наивысшим приоритетом. Для реализации этого режима необходимо на время обработки прерывания замаскировать все запросы с более низким приоритетом. При этом возможно многоуровневое прерывание, то есть прерывание программ обработки прерываний. Число уровней прерывания в этом режиме изменяется и зависит от приоритета запроса;
3.по принципу стека, или, как иногда говорят, по дисциплине LCFS (last come first served — последним пришел — первым обслужен), то есть запросы с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом. Для этого необходимо не накладывать маски ни на один сигнал прерывания и не выключать систему прерываний.
Слайд 10
Механизм прерываний чаще всего поддерживает приоритезацию и маскирование
прерываний. Приоритезация означает, что все источники прерываний делятся на
классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные абсолютные. Обслуживание запросов прерываний по схеме с относительными приоритетами заключается в том, что при одновременном поступлении запросов прерываний из разных классов выбирается запрос, имеющий высший приоритет. Однако в дальнейшем при обслуживании этого запроса процедура обработки прерывания уже не откладывается даже в том случае, когда появляются более приоритетные запросы — решение о выборе нового запроса принимается только в момент завершения обслуживания очередного прерывания. Если же более приоритетным прерываниям разрешается приостанавливать работу процедур обслуживания менее приоритетных прерываний, то это означает, что работает схема приоритезации с абсолютными приоритетами.
Слайд 11
Если процессор работает по схеме с абсолютными приоритетами,
то он поддерживает в одном из своих внутренних регистров
переменную, фиксирующую уровень приоритета обслуживаемого в данный момент прерывания. При поступлении запроса из определенного класса его приоритет сравнивается с текущим приоритетом процессора, и если приоритет запроса выше, то текущая процедура обработки прерываний вытесняется, а по завершении обслуживания нового прерывания происходит возврат к прерванной процедуре.Иначе говоря - вектор прерывания.
Процессор => Шина =>Внешнее устройство