ВУЗ:
Составители:
Рис. 2.3. Циклограмма действий при возникновении прерывания
3. Прерывания ввода/вывода инициируются аппаратурой, обеспечивающей операции ввода и вывода данных. Они сиг-
нализируют центральному процессору об изменении состояния устройств ввода/вывода.
4.
Внешнее прерывание может возникнуть по самым различным причинам. Типичными источниками внешних преры-
ваний являются таймер, выдающий сигнал об истечении кванта времени, параллельный синхронный или асинхронный про-
цесс, другой процессор, другой компьютер.
5.
Прерывание по вызову супервизора появляется в том случае, когда работающий процесс выполняет команду обра-
щения к супервизору. Этой командой (SVC-командой) программа пользователя генерирует запрос на предоставление кон-
кретной системной услуги, например, на выполнение операции ввода/вывода, увеличение объема выделенной памяти и т.п.
Механизм SVC-команд позволяет защитить операционную систему от пользовательских процессов.
6.
Программное прерывание может возникнуть по двум причинам: процесс пытается выполнить ошибочную операцию
(например, деление на нуль, операция с неправильным кодом и т.п.); процесс выполнил заранее подготовленную команду
прерывания для обеспечения перехода к выполнению других действий (например, для синхронизации нескольких процессов
в вычислительной системе).
Для обработки каждого из типов прерываний в составе операционной системы предусмотрены специальные
программы
обработки прерываний
(или обработчики прерываний, Interrupt Handler – IH). В ОС имеется шесть основных обработчиков
прерываний (по количеству классов прерываний). Когда происходит прерывание, операционная система запоминает состоя-
ние прерванного процесса и передает управление соответствующему обработчику прерываний. Это делается способом, по-
лучившим название
переключение контекста. Суть этого способа состоит в следующем. С каждым прерыванием связывают
слова, называемые словами состояния программы ССП (или PSW от англ. Programs State Word), которые управляют поряд-
ком выполнения команд и содержат различную информацию относительно состояния процесса. Различают три типа слов
состояния программы: 1) текущее ССП; 2) новое ССП; 3) старое ССП.
Центральный процессор реагирует только на разрешенные прерывания. Обработка запрещенных прерываний либо
за-
держивается,
либо игнорируется. Процессору нельзя запретить реагировать на прерывания по вызову супервизора, по рес-
тарту и на некоторые виды программных прерываний. Количество ССП совпадает с количеством процессоров в мультипро-
цессорный ВС. Количество старых ССП и новых ССП совпадают с количеством типов прерываний.
Текущее ССП содержит информацию о выполняющемся процессе и постоянно обновляется по мере развития процесса.
Новое ССП содержит информацию о маске прерываний и постоянный адрес обработчика данного типа прерываний.
Когда происходит прерывание, то (если процессору не запрещено обрабатывать прерывание данного типа) производит-
ся автоматическое, выполняемое аппаратурой, переключение слов состояния программы в следующей последовательности:
1) текущее ССП становится старым ССП для прерывания этого типа;
2) новое ССП для прерывания этого типа становится текущим ССП.
После такого замещения текущее ССП содержит адрес соответствующего обработчика прерываний, который и начина-
ет выполняться.
Когда обработка прерывания окончена, то происходит обратное переключение слов состояния программы, при котором
старое ССП для прерывания данного типа становится текущим ССП, после чего прерванный процесс продолжает свою рабо-
ту. Существует большое количество различных схем обработки прерываний, соответствующих разным режимам и дисцип-
линам обслуживания. С ними можно ознакомиться в литературе по архитектуре вычислительных машин и систем.
2.5. ПОНЯТИЕ ЯДРА И МИКРОЯДРА ОС
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »
