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

Тема 2.3 Обработка прерываний

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

2.3.1. Механизм общей обработки прерывания

Рис. 2.3.1. Схема общей обработки прерывания

2.3.2. Программные прерывания или системные вызовы

В любой ОС поддерживается некоторый механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. Системные вызовы (system calls) – интерфейс между пользовательской программой и ядром ОС. Они создают, удаляют, используют различные объекты, главные из которых процессы и файлы. Основное назначение – обеспечение сервисов BIOS и ОС.

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

Но при системном вызове задача переходит в привилегированный режим (kernel mode), поэтому получили название программных прерываний. В этом режиме работает код ядра ОС, он исполняется в адресном пространстве и в контексте, вызвавшей его задачи. Таким образом, ядро ОС имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова, а также адреса одной или нескольких областей памяти для результатов вызова.

Осуществляется системный вызов командой программного прерывания INT, является синхронным событием (т.к. исполняется ядром ОС, одновременно с исполняемым программным кодом).

Рис. 2.3.2. Схема обработки программного прерывания (системного вызова)

2.3.3.Аппаратные или внешние прерывания

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

Рис. 2.3.3. Схема обработки аппаратного прерывания (внешнего)

2.3.3.1. Немаскируемые внешние прерывания

Используются для сигнализации о фатальный аппаратных ошибках. Срабатывают независимо от состояния флага прерываний процессора IF (Interrupt Flag).

2.3.3.1.1. Non-Maskable Interrupt

Отвечают за схемы контроля паритета памяти, линии контроля шин ISA и PCI

2.3.3.1.2. System Management Interrupt

Отвечают за схемы чипсета, участвующие в управлении энергопотреблением