Главная
»
Информационные системы
»
Операционные системы
»
Обработка прерываний
Обработка прерываний
В компьютерных системах обычно используются устройства разного типа. Одни из них должны быть обслужены немедленно, это касается, например, датчиков параметров ядерного реактора. Другие просто нуждаются в быстром обслуживании, чтобы система работала четко и без задержек. Так должно выполняться чтение файла с диска. А для третьих скорость не является критическим фактором. Например компьютеру не составляет труда своевременно считывать данные с клавиатуры.
Каждому источнику сигналов прерывания назначен приоритет. Таким сигналом может быть прервано выполнение не только обычной программы, но и программы обработки прерывания с более низким приоритетом. Если поступает сигнал с более высоким приоритетом, то происходит прерывание; если же поступает сигнал прерывания с тем же или более низким приоритетом, то его обработка откладывается до завершения текущей программы обработки прерывания.
С каждым устройством связана программа обработки прерывания. Когда процессор принимает сигнал прерывания от устройства с учетом его приоритета, аппаратное обеспечение помещает адрес соответствующей программы в счетчик команд. Для хранения таблицы адресов всех программ обработки прерываний выделяется специальная область основной памяти. Эта специальная область называется таблицей векторов прерываний. Каждая запись этой таблицы называется вектором прерывания.
Некоторые интерфейсы устройств могут пересылать в память (или из памяти) блок данных, а только затем генерируют прерывание. Устройства данного типа называются устройствами с прямым доступом к памяти (ПДП). Они часто используются для сетевого взаимодействия, поскольку позволяют помещать в память целый пакет данных, поступивший из сети. Такие интерфейсы сложнее, поэтому для управления пересылкой данных в них используется отдельный процессор. Еще одним примером устройства ПДП является дисковый контроллер.
Дисковый контроллер – это простой процессор с регистрами для хранения адресов на диске, адресов в памяти и объема передаваемых данных. После получения от центрального процессора информации и команды выполнения чтения (или записи) дисковый контроллер пересылает между диском и основной памятью весь указанный блок без вмешательства центрального процессора.
Дисковый контроллер обращается к памяти в промежутках между выборкой команд и чтением (или записью) данных, выполняемыми центральным процессором - это называется захватом цикла. Поэтому прямой доступ к памяти замедляет выполнение команд центрального процессора.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.