Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LEKTsII_obschie.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2.3.3.2. Маскируемые внешние прерывания

Используются для сигнализации о событиях в устройствах. Обработка сигналов запросов прерывания выполняется контроллером прерываний. Контроллер прерываний позволяет маскировать отдельные входы запросов и организовать систему приоритетов запросов от различных входов. На входы контроллеров поступают запросы от системных устройств (системный таймер – IRQ0, клавиатура – IRQ1, CMOS – таймер – IRQ8, сопроцессор – IRQ13), периферийных контроллеров системной платы и от карт расширения Линии запросов прерываний обозначаются как IRQх (Interrupt ReQuest Line). Обрабатываются только при установленном флаге разрешения прерываний IF.

2.3.4. Внутренние прерывания или исключения.

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

2.3.4.1. Исправимые внутренние прерывания

Пример: Отсутствие нужной информации в оперативной памяти – Устранение причины – Продолжение выполнения;

2.3.4.2. Неисправимые внутренние прерывания

Пример: Ошибка в программе – Завершение работы программы

2.3.5. Таблица прерываний

IDT (Interrupt Description Table) – таблица дескрипторов прерываний – совокупность элементов (номеров) от 0 до 255 с соответствием прерывания или исключения каждому такому номеру элемента. Поля сброса от 0 до 31 отводятся под исключения с перекрытием системными и аппаратными прерываниями.

Дальние адреса от 32 до 255 – 8-байтные дескрипторы прерываний, которые могут располагаться в любом месте физической памяти.

Вектор прерывания – номер в таблице дескрипторов прерываний

2.3.6. Уровни приоритета прерываний

Высокий уровень

↑

Низкий уровень

Средства контроля процессора

Исключения

Системный таймер

Маскируемые

внешние

устройства

Магнитный диск

Сетевое оборудование

Терминалы

Немаскируемые

Программные прерывания

Системные вызовы

Рис. 2.3.4. Приоритетность прерываний

Прерывания обрабатываются модулями ОС:

  • Аппаратные прерывания – драйверами, реже специальными модулями ядра;

  • Программные прерывания – процедурами ОС, которые обслуживают системные вызовы;

Диспетчеры прерываний координируют работу отдельных обработчиков прерываний.

Тема 2.4 Обслуживание ввода-вывода

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

Управление вводом/выводом – одна из основных функций любой операционной системы.

Организация ввода/вывода в различных ОС имеет много общего, а реализация сильно отличается от системы к системе.