Архитектура операционной системы (на примере Linux),...

19
Interrupts Kirill Krinkin

Transcript of Архитектура операционной системы (на примере Linux),...

Page 1: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Interrupts

Kirill Krinkin

Page 2: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Чем занимается ядро

● Обрабатывает запросы приложений● Обрабатывает запросы оборудования● Обеспечивает диспетчеризацию процессов

(scheduling)● Обрабатывает исключительные ситуации

Page 3: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Определения

● Прерывание – ситуация остановки последовательного выполнения програмы, для выполнения запроса или реакции на событие

● Системный вызов – специальное программное прерываение, соответствующее запросу сервиса у ядра

● Исключение – неверное действие программы, приводящее к генерации прерывания

Page 4: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Прерывания: аппаратура

Page 5: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Прерывания: аппаратура

Page 6: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Прерывания: реальный режим

Page 7: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Interrupt Vector Table

Page 8: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

IDTR

(с) csail.mit.edu

Page 9: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Interrupt: protected mode

(с) csail.mit.edu

Page 10: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Protected mode: privilege check

(с) csail.mit.edu

Page 11: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Системные вызовы и драйверы

Page 12: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Backup

Page 13: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Stack

Page 14: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Task state segment

Page 15: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions

Вызов обработчика int n

– Получение n-го дескриптора из IDT

– Проверка: cs:CPL <= DPL

– Если target segment selector PL< CPL Сохранение %ss, %esp

– Загрузка %ss and %esp из TASK Segment Descriptor

– Push %ss

– Push %esp

– Push %eflags.

– Push %cs.

– Push %eip.

– Clear bits of %eflags.

– Set %cs and %eip to the values in the descriptor.

Page 16: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions
Page 17: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions
Page 18: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions
Page 19: Архитектура операционной системы (на примере Linux), осень 2016: Interrupts, Exceptions