Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
116
Добавлен:
20.05.2015
Размер:
111.1 Кб
Скачать

2. Работа системы прерываний в реальном режиме работы процессора

В микропроцессорах семейства i80x86 система прерываний построена таким образом, чтобы, с одной стороны, обеспечить возможность создавать эффективные и надежные мультипрограммные операционные системы, которые должны функционировать в защищенном режиме, а с другой стороны – обеспечить возможность выполнять программы, разработанные для реального режима.

В реальном режиме работа системы прерываний использует понятие вектора прерывания. Термин «вектор прерываний» используется потому, что для указания адреса используется не одно значение, а два, то есть имеем дело не со скалярной величиной, а с «векторной». Каждый вектор прерываний состоит из 4 байтов или 2 слов. Таблица векторов прерываний занимает 1024 байта. Таким образом, в ней может быть задано 256 векторов прерываний.

Таблица векторов прерываний заполняется (инициализируется) при запуске системы, но в принципе может быть изменена или перемещена. Каждый вектор прерываний имеет свой номер, называемый номером прерывания, который указывает его номер в таблице.

Подобно вызову процедуры, прерывание заставляет микропроцессор сохранить в стеке для последующего возврата, а затем перейти к группе команд, адрес которых определяется вектором прерывания. Таким образом, прерывание вызывает косвенный переход к своей подпрограмме обработки за счет получения ее адреса из вектора прерывания.

В персональных компьютерах класса IBM PC прерывания бывают двух видов: внутренние и внешние.

Внутренние прерывания возникают в результате работы процессора. Они возникают в ситуациях, которые нуждаются в специальном обслуживании, или при выполнении специальных инструкций INT или INTO. Это следующие прерывания:

  • прерывание при делении на ноль; номер прерывания – 0;

  • прерывание по флагу TF (trap flag – специальный бит в регистре PSW (слова состояния программы)). В этом случае прерывание обычно используется специальными программами отладки типа DEBUG. Номер прерывания – 1.

  • инструкция INT (interrupt – выполнить прерывание с соответствующим номером) и INTO (interrupt of overflow – прерывание по переполнению). Эти прерывания называются программными.

Внешние прерывания возникают по сигналу какого-нибудь внешнего устройства. Существуют два специальных внешних сигнала среди входных сигналов процессора, при помощи которых можно прервать выполнение текущей программы и тем самым переключить работу центрального процессора. Это сигналы NMI (no mask interrupt – не маскируемое прерывание) и INTR (interrupt request – запрос на прерывание). Соответственно внешние прерывания подразделяются на немаскируемые и маскируемые.

Маскируемые прерывания генерируются контроллером прерываний по заявке определенных периферийных устройств. Сигнал запроса на прерывание чаще всего является сигналом готовности периферийного устройства на выполнение следующей команды, связанной с управлением операциями ввода/вывода. Маскируемые прерывания также называют аппаратными прерываниями.

Традиционно в современных компьютерах используется 15 линий IRQ (запросов на прерывание), часть из которых используется внутренними контроллерами системной платы, а остальные заняты стандартными адаптерами либо не используются. Прерывания с меньшими номерами обладают более высоким приоритетом.

IRQ

Применение

0

Системный таймер, представляющий для операционной системы такт длительностью 18,21 мс.

1

Клавиатура

2

Не доступно на 16-ти разрядной шине ISA, поскольку используется для подключения ввода контроллера прерываний, чтобы получить прерывания 8 – 15. Вывод прерывания 2 на 16-ти разрядной шинеISAподключен к выводу прерывания 9 контроллера прерываний. ПК настрое таким образом, чтобы вызывать обработчик прерывания 2 при активизации прерывания 9.

3

Порт 2 последовательной передачи данных (COM2), а иногда порт СОМ 4, если последний установлен.

4

Порт 1 последовательной передачи данных (COM1), а иногда порт СОМ 3, если последний установлен.

5

Первоначально применялось для контроллера жестких дисков. Затем было зарезервировано для второго параллельного порта принтера (LPT2). Поскольку в ПК редко устанавливается более одного параллельного порта принтера,BIOSПК вообще не пользуется прерываниями для печати, то это прерываниеIRQ, как правило, доступно для использования.

Нередко используется сетевым адаптером либо звуковой платой (soundblaster).

6

Контроллер гибких дисков.

7

Первый параллельный порт принтера LPT1. Это прерывание самым низким приоритетом.

8

ИС часов реального времени в ПК, содержащая КМОП-память с резервным батарейным питанием и часы истинного времени, показания которых считываются при включении ПК, может быть установлена для формирования прерывания 8 с частотой кратной двум, от 2 до 8192 раз в секунду. Прерывание 8 обладает более низким приоритетом, чем прерывание 1, но более высоким приоритетом, чем прерывание 9.

9

Используется для работы с платами, формирующими прерывание 2, поскольку настоящее прерывание 2 используется для каскадного подключения прерываний 8-15.

10

Доступно

11

Доступно

12

Может быть использовано мышью, подключаемой к шине типа IBMPS/2, но обычно этого не делается и поэтому, как правило, оно доступно.

13

Зарезервировано для указания ошибок математического сопроцессора. Недоступно шине ISA.

14

Используется контроллером жестких дисков с отличным от SCSIинтерфейсом (обычно с интерфейсомIDE).

15

Нередко используется дисковыми контроллерами с интерфейсом SCSI, однако установка дискового контроллераSCSIне является «стандартной».

Обладает более низким приоритетом, чем прерывание 14, но более высоким, чем прерывание 3.

Номер прерывания и его приоритет устанавливаются на этапе инициализации системы. После запуска операционной системы пользователь в некоторых случаях может изменить таблицу векторов прерывания, поскольку она ему доступна.

Соседние файлы в папке Лекции_ОС