Слайд 2
Понятие прерывания
Прерывание – это важная процедура, которая позволяет
изменить нормальную последовательность команд, выполняемых процессором.
Слайд 3
Понятие прерывания
Процессор должен реагировать на события, которые происходят
вне его. Эту реакцию можно реализовать двумя способами:
Процессор должен
постоянно просматривать все устройства, которые могут потребовать его внимания. Такой способ неэффективен, т.к. большая часть времени процессора может уйти на сканирование.
Использование прерываний.
Слайд 4
Сущность прерывания
Устройство, которое требует внимания процессора, сообщает об
этом с помощью специального сигнала (запрос на прерывание). По
этому сигналу управление CPU передается ОС. ОС запоминает состояние прерванного процесса и хранит эту информацию в спец. регистре микропроцессора. Такой регистр называется СТЕК. Затем ОС анализирует, от какого устройства произошло прерывание и затем передает управление программе, которая управляет устройством, выдавшим запрос на прерывание.
Такая программа называется обработчик прерывания.
Слайд 5
Сущность прерывания
Прерывание может быть вызвано не только каким-нибудь
устройством, но и выполняющимся процессом.
Слайд 6
Сущность прерывания
В начале прерывания использовались в основном для
управления процессором, устройствами ввода-вывода. Затем прерывания стали использовать для
организации внутренней работы ЭВМ.
В соответствии с этим существуют следующие типы прерываний:
1.Аппаратные прерывания – прерывания от устройств компьютера.
2.Программные прерывания – прерывания, которые вырабатывают процессы, находящиеся на стадии выполнения.
3.Логические прерывания – Эти прерывания вырабатывает сам процессор, когда встречается с каким-либо необходимым условием:
а) деление на 0
б) переполнение регистров микропроцессора
в) пошаговое выполнение программ
г) режим контрольных точек.
Слайд 7
Каждое прерывание имеет два параметра
Номер прерывания
Вектор прерывания
Вектор
прерывания – это адрес ячейки памяти, где хранится программа
– обработчик прерывания.
Прерывания обозначаются - IRQ.
Слайд 8
Ядро операционной системы
Все операции над процессами выполняются той
частью ОС, которая называется ядром.
Ядро ОС – это часть
кода ОС, которая наиболее интенсивно используется в процессе работы. По этой причине ядро ОС постоянно находится в памяти, в то время как другие части ОС загружаются в память и выгружаются из нее по мере надобности.
Например, в ОС MS-DOS ядро системы составляют два файла:
1) IO.SYS
2) MSDOS.SYS
Слайд 9
Одной из основных функций ядра является обработка прерываний.
В ОС MS-DOS функцию управления обработки прерываний выполняет файл
MSDOS.SYS.
Слайд 10
Функции ядра ОС
Создание и уничтожение процессов
Переключение процессов
из состояния в состояние
Приостановка и оптимизация процессов
Организация
взаимодействия между процессами
Манипулирование блоками управления процессов
Поддержка операций ввода-вывода
Слайд 11
Концепция прерывания
Концепция прерывания состоит в том, что любой
процесс, обслуживаемый операционной системой, может быть прерван процессом, имеющим
более высокий приоритет.
Прерывание – временное прекращение процесса, такого как выполнение программы вычислительной машины, вызванное событием, внешним по отношению к этому процессу, и совершенное таким образом, что процесс может быть продолжен.
Слайд 12
В вычислительной машине прерывание – это событие, при
котором меняется нормальная последовательность команд, выполняемых процессором.
Сигнал "прерывание"
сначала отрабатывается аппаратурой вычислительной машины – системой прерываний.
Слайд 13
Если произошло прерывание, то в вычислительной системе выполняются
последовательно следующие действия.
управление передается операционной системе;
операционная система запоминает состояние
прерванного процесса;
операционная система анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания;
программа обработки прерывания выполняет предписанные действия и передает управление операционной системе;
операционная система по результатам работы программы обработки прерываний либо восстанавливает состояние прерванного процесса и позволяет развиваться ему дальше, либо аварийно заканчивает его.
Слайд 14
Количество источников сигналов прерывания достигает в современных вычислительных
системах нескольких сотен и даже тысяч.
Слайд 15
Классификация прерываний
Различают шесть основных классов прерываний:
прерывания от
схем контроля ЭВМ;
прерывания по рестарту (повторному пуску);
прерывания
ввода/вывода;
внешние прерывания;
прерывания по вызову супервизора;
программные прерывания.
Слайд 16
Прерывание от схем контроля возникает в случае появления
любой аппаратной ошибки в ЭВМ. Продолжение работы машины становится невозможным,
и процесс аварийно заканчивает свое существование.
Слайд 17
Прерывание по рестарту может наступить в следующих случаях:
на пульте управления была нажата кнопка (клавиша, сочетание клавиш)
повторного пуска ЭВМ; процесс, выполняющий в данной ЭВМ, выдал команду рестарта; в многомашинной системе получена команда рестарта от другого компьютера.
В любом случае в ЭВМ, получившей команду рестарта, выполняются действия по загрузке операционной системы.
Слайд 18
3. Прерывания ввода/вывода инициируются аппаратурой, обеспечивающей операции ввода
и вывода данных. Они сигнализируют центральному процессору об изменении
состояния устройств ввода/вывода.
Слайд 19
4. Внешнее прерывание может возникнуть по самым различным
причинам. Типичными источниками внешних прерываний являются таймер, выдающий сигнал
об истечении кванта времени, параллельный синхронный или асинхронный процесс, другой процессор, другой компьютер.
Слайд 20
5. Прерывание по вызову супервизора появляется в том
случае, когда работающий процесс выполняет команду обращения к супервизору.
Этой командой программа пользователя генерирует запрос на предоставление конкретной системной услуги, например, на выполнение операции ввода/вывода, увеличение объема выделенной памяти и т.п. Механизм команд позволяет защитить операционную систему от пользовательских процессов.
Слайд 21
6. Программное прерывание может возникнуть по двум причинам:
процесс пытается выполнить ошибочную операцию (например, деление на нуль,
операция с неправильным кодом и т.п.); процесс выполнил заранее подготовленную команду прерывания для обеспечения перехода к выполнению других действий (например, для синхронизации нескольких процессов в вычислительной системе).
Слайд 22
Для обработки каждого из типов прерываний в составе
операционной системы предусмотрены специальные программы обработки прерываний (или обработчики
прерываний, Interrupt Handler – IH). В ОС имеется шесть основных обработчиков прерываний (по количеству классов прерываний). Когда происходит прерывание, операционная система запоминает состояние прерванного процесса и передает управление соответствующему обработчику прерываний.
Слайд 23
Механизм прерываний
Вектор прерывания – это адрес ячейки памяти,
где хранится программа – обработчик прерывания.
Приведем назначение некоторых наиболее
важных векторов: 1-256
Слайд 24
Приоритеты прерываний
Если ожидать одну миллисекунду до реагирования на
прерывание от заводского станка, он может повредить обрабатываемую деталь.
Очевидно, потребуется как-то упорядочить прерывания в системе, назначив важным из них более высокий приоритет.
Слайд 25
Приоритеты прерываний
В самом процессоре схем для этого нет,
поэтому обычно все прерывающие устройства подключаются к микросхеме контроллера
прерываний, а она подключается к процессору. Контроллер прерываний имеет несколько режимов работы. В наиболее часто используемом режиме каждому устройству назначается уникальный приоритет. Если прерывания от двух устройств возникают одновременно, контроллер передает в процессор прерывание с более высоким приоритетом, а менее приоритетное прерывание запоминает. Как только процессор оканчивает обработку первого прерывания, контроллер сообщает ему о втором прерывании.
Слайд 26
Приоритеты прерываний
Обработчик прерываний (или процедура обслуживания прерываний) — специальная
процедура, вызываемая по прерыванию для выполнения его обработки.
Обработчики
прерываний могут выполнять множество функций, которые зависят от причины, которая вызвала прерывание.