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

Post on 15-Apr-2017

64 views 1 download

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

Interrupts

Kirill Krinkin

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

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

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

Определения

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

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

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

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

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

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

Interrupt Vector Table

IDTR

(с) csail.mit.edu

Interrupt: protected mode

(с) csail.mit.edu

Protected mode: privilege check

(с) csail.mit.edu

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

Backup

Stack

Task state segment

Вызов обработчика 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.