175
механизмов прерываний в разных архитектурах вычислительных систем
все они обеспечивают сохранение вектора состояния прерванного
процесса и идентификацию устройства, приславшего прерывание. При
использовании прерываний ОС после выдачи команды ввода-вывода на
устройство переводит процесс в состояние ожидания. Прерывание,
присланное устройством, обрабатывается ядром ОС, которое при этом
разблокирует процесс, ожидающий завершения операции.
Для устройств, обмен с которыми ведется большими порциями
информации, применяется прямой доступ к памяти (ПДП), показанный на
рисунке 6.3. Контроллер ПДП работает параллельно с центральным
процессором и обменивается данными прямо с оперативной памятью,
минуя центральный процессор. Сам контроллер ПДП выглядит для
программы как устройство с доступом через регистры. Программа должна
его запрограммировать, записав в его регистры адрес области оперативной
памяти, с которой происходит обмен и размер блока данных, а затем
запустить операцию, которая инициирует прямой обмен. Регистр данных
контроллера ПДП при этом используется только для передачи
управляющей информации. Об окончании обмена программа может узнать
либо по прерыванию, либо опрашивая регистр состояния контроллера.
Контроллер ПДП обычно содержит собственную буферную память для
сглаживания разницы в быстродействии устройства и оперативной памяти.
Напомним, что аппаратура ПДП обычно не обеспечивает динамическую
трансляцию адресов. Поэтому ОС, получив от процесса запрос на
выполнение операции ввода-вывода через ПДП, фиксирует в реальной
памяти ту часть виртуального адресного пространства программы, с
которой происходит обмен, – до окончания обмена. Отметим также, что
непрерывное виртуальное адресное пространство процесса может
отображаться в несмежные страничные кадры реальной памяти, поэтому