Обработчики прерываний

Прерывания должны быть скрыты как можно глубже в недрах операционной системы, чтобы как можно меньшая часть ОС имела с ними дело. Лучше всего блокировать драйвер, начавший ввод-вывод.

Алгоритм:

  1. Драйвер начинает операцию ввод-вывод.
  2. Драйвер блокирует сам себя,
    - выполнив на семафоре процедуру down
    - выполнив на переменной состояния процедуру wait
    - выполнив на сообщении процедуру receive
  3. Происходит прерывание
  4. Обработчик прерываний начинает работу
  5. Обработчик прерываний может разблокировать драйвер (например, выполнив на семафоре процедуру up)