Организация процессоров
С другой стороны, при таком варианте, если длительность интервалов достаточно велика, процессор может и пропустить какое-то событие.
При обмене по прерываниям процессор не ждет наступления события, а реагирует на него по факту его наступления, когда формируется сигнал прерывания (подробнее – дальше). В результате процессор сможет отреагировать на все события, без пропуска, и при этом освобождается от необходимости постоянно проводить опрос внешних устройств. Традиционно обмен по прерываниям предназначался в основном для «медленных» внешних устройств, но может использоваться и для быстрых, для инициирования начала обмена (который происходит программно), либо – для отслеживания процессором внешних событий без постоянных запросов.
При обмене в режиме ПДП процессор освобождается от необходимости выполнять «черновую» работу по пересылке информации из внешнего устройства в память и наоборот через свои регистры. Раньше, когда быстродействие процессоров было невелико, режим ПДП позволял ускорить обмен при исключении медленного посредника, каким являлся процессор. В настоящее время назначение ПДП по большей части в другом – разгрузить процессор для выполнения более насущных задач.
4.2. Система прерываний Рассмотрим немного подробнее характеристики прерываний и их реализацию.
Прерывание – это реакция ЭВМ на некоторое внутреннее или внешнее событие, приводящая к приостановке выполнения текущей программы и инициированию выполнения новой программы, специально предназначенной для данного события.
Основные типы прерываний:
1. Внешнее прерывание, инициируемое внешним устройством. Внешние прерывания могут быть маскируемыми (т.е. такими, на которые может накладываться маска для исключения прерывания из обработки) и немаскируемыми, на которые процессор должен реагировать в любом случае.
2. Программные прерывания, вызываемые самой программой. Служат для обращения к системным сервисам операционной системы или BIOS для выполнения низкоуровневых задач, детали выполнения которых могут быть скрыты от программы (например – вывод символа на экран).
|