Прерывание.
это событие, при котором меняется последовательность команд, выполняемых процессором.
Что происходит после прерывания?
Управление передается ОС
ОС запоминает состояние прерванного процесса (например в PCB)
Передача управления соответствующей программе обработчику прерывания
Обработка прерываний
|
|
|
|
|
|
IRQ0 |
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IRQ1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
& |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IRQ2 |
|
|
|
|
|
|
|
|
|
|
& |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
0/1 |
|
|
|
|
|
IRQ7 |
|
|
|
|
|
|
|
|
|
& |
|
|
|||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MEM |
|
|
|
|
|
|
|
IH table |
||
|
|
CPU |
|
|
|
ADR IH0 |
|||
N IRQ |
|
|
|
|
ADR IH1 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IH1
4*NIRQ+ADRIHtable=ADRIH
0 1 2 3 4 5 6 7
Регистр маски
Типы прерываний.
SVC прерывание (super visor call instruction) - программа вызывает супервизор – ОС, то есть требует системную услугу.
|
|
|
IH |
|
|
программа |
SVC |
ОС |
обработка |
ОС |
|
пользователя |
|||||
|
|
|
|
то есть SVC – механизм не позволяет получать программе пользователя системные ресурсы без контроля со стороны ОС (механизм доступа, паролей и так далее)
Типы прерываний (продолжение).
I/O прерывание: инициатор – устройство ввода-вывода (изменение его состояния)
Внешнее прерывание (оператор, другой процессор)
Прерывание по рестарту (при сигнале рестарт процессору)
Прерывание по ошибке программы
Прерывание по ошибке ЭВМ
Обработчики прерываний.
Для каждого типа прерывания существует свой IH (interrupt handler) = обработчик прерываний.
Система передает управление IH способом
PSW (program status word) - слово состояния программы – управляет порядком выполнения команд и содержит информацию о процессе.
PWS бывает: текущее(current), новое(new), старое(old).
Как реализуется этот механизм?
Обработка прерываний (переключение контекста).
New PSW |
Old PSW |
Current PSW
Новое PSW = содержит адрес по которому резидентноразмещается IH.
При прерывании текущее PSW становится старым, а новое PWS становится текущим. После выполнения IH управление будет передано либо прерванному процессу (OLD PSW), либо более приоритетному из очереди (перехват ЦП).
Ядро ОС
Ядро – часть ОС основной функцией которого является работа с процессами.
Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности
Различают ОС:
Микроядерные
Монолитные Гибридные (большинство современных)
Основные функции ядра ОС
Обработка прерыванийСоздание и уничтожение процессов
Диспетчирование (выбор текущего процесса из очереди)Синхронизация процессовОрганизация взаимодействия между процессамиПоддержка PCB
Поддержка операций I/OПоддержка распределения памятиПоддержка файловой системыВызов процедур и возврат из них
Остальные переходы на графе состояний