Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS 1.docx
Скачиваний:
75
Добавлен:
23.11.2019
Размер:
893.2 Кб
Скачать

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 последовательной передачи данных (COM 2), а иногда порт СОМ 4, если последний установлен.

4

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

5

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

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

6

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

7

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

8

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

9

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

10

Доступно

11

Доступно

12

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

13

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

14

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

15

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]