Похожие презентации:
Прерывания. (Тема 7)
1. Прерывания
ПРЕРЫВАНИЯКурс лекций
«Системное программное обеспечение»
«System Software»
«Операционные системы»
для студентов специальностей АСОИ и ИИ
Павел Кочурко
доцент кафедры ИИТ, к.т.н.
2. Прерывания
mov ax, 2mov bx, 3
jmp label
КОД
ОБРАБОТЧИКА
СОБЫТИЯ
Прерывание - это прекращение выполнения текущей команды
или текущей последовательности команд для обработки
некоторого события специальной программой - обработчиком
прерывания, с последующим возвратом к выполнению прерванной
программы
3. Классы прерываний
1. Внешние / аппаратныеВозникают асинхронно
выполнению команд
• Маскируемые
• Немаскируемые
2. Внутренние /
CPU
IO
RAM
IO
IO
исключения
Синхронно или в аварийной
ситуации
3. Программные
Вызов обработчика
mov ax, 2
mov bx, 3
int 33h
jmp label
КОД
ОБРАБОТЧИКА
СОБЫТИЯ
4. Механизм обработки прерываний: опрашиваемый способ
1. На ЦПУ поступаетCPU
№
RAM
INT1
?
IO
?
IO
!
IO
сигнал о
прерывании
2. ЦПУ производит
опрос устройств
3. По найденному
устройству
определяется
номер (вектор)
прерывания
4. По вектору
определяется
адрес обработчика
+: простота аппаратной реализации, гибкость с т.з. устройств
-: длительный цикл опроса устройств ЦПУ занимается
непрофильной работой
5. Механизм обработки прерываний: векторный способ
1. На ЦПУ поступаетCPU №
RAM
INT
1
IO
IO
IO
сигнал о
прерывании и
вектор прерывания
2. ЦПУ производит
опрос устройств
3. По найденному
устройству
определяется
номер (вектор)
прерывания
4. По вектору
определяется
адрес обработчика
+: высокая скорость, обработка начинается сразу
-: сложность подключения одинаковых устройств, требующих одного
и того же вектора необходимо дополнительное конфигурирование
6. Механизм обработки прерываний: векторно-опрашиваемый способ
Все устройстваотносятся к одному
из 15 IRQL
2. На ЦПУ поступает
сигнал о прерывании
в виде номера IRQL
INT0
3. ЦПУ производит
IRQL
опрос устройств
№ INT3
данного IRQL
4. По найденному
устройству
определяется номер
(вектор) прерывания
5. По вектору
IRQL 3
IRQL 5
IRQL 3
определяется адрес
обработчика
+: на одном уровне IRQ мало устройств (обычно от 1 до 3) опрос устройств
короткий; при этом сохраняется гибкость подключения устройств без
конфигурирования
-: опрос, хоть и короткий, всё равно нужен
1.
CPU
?
IO
RAM
IO
!
IO
7. Механизм обработки прерываний: контроллер прерываний
1.CPU №
RAM
INT0
IRQL
INT3
№
INT0
IRQL
INT3
2.
3.
4.
?
IO
IO
!
IO
IRQL 3
IRQL 5
IRQL 3
+: опрос короткий и не всегда нужен; процессор вообще не
опрашивает, а имеет сразу вектор
-: необходимо дополнительное устройство – КП
5.
6.
7.
Все устройства
относятся к одному
из 15 IRQL
КП – доп.устройство
Cигнал о прерывании
в виде номера IRQL
поступает на КП
КП производит опрос
устройств данного
IRQL
По найденному
устройству
определяется номер
(вектор) прерывания
IRQL и вектор
прерывания КП
передаёт на ЦПУ
По вектору
определяется адрес
обработчика
8. Системные вызовы
Системный вызов — обращение прикладной программы к ядруоперационной системы для выполнения какой-либо операции.
A
B
read
Обработчик
системного
вызова
Системный вызов переключение в привилегированный режим, в
пространстве ядра
9. Обработка системных вызовов
Перевод в привилегированный режимпередача управления ядру, коду обработчика
программное прерывание
A
read
int 80h
диспетчер системных
вызовов
обработчик
с/в read
read
B
pipe
int 80h
pipe
обработчик
с/в pipe
10. Вопросы?
ВОПРОСЫ?http://iit.bstu.by/ss