Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭК(вопросы и ответы).doc
Скачиваний:
13
Добавлен:
10.09.2019
Размер:
5.98 Mб
Скачать

1.26. Організація переривань в пк, пріоритети при обробці переривань. Режими роботи та програмування.

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

1)Типы прерыв. По источн и хар-ру возникнов прерыв можно раздел на группы (рис.1):

Программные прерыв вызывают сами прогр. Для этого они использ команду INT. Их удобно использов для орг-ции доступа к отдельным общим для всех программ модулям. Прикладные прогр сами могут устанавл свои обраб прерыв для их последующего использов другими программами. Для этого встраиваемые обраб прерыв должны быть резид в памяти.

Аппаратные прерыв вызываются физическими устр-вами и приходят асинхронно. Эти прерыв информируют систему о событиях, связанных с работой устр-в.

Внутр прерыв формируются самим проц, когда он встречается с некоторыми особыми событиями вроде деления на 0. Это прерыв с номерами 0, 1, 3, 4. Внешние аппар прерыв вызваны сигналами, внешними по отношению к центр проц, и подаются на его вх INT и NMI.

Прерыв по входу INT относятся к аппаратным маскируемым прерыв, поскольку могут быть разрешены или запрещ флагом IF регистра флагов. Обработку аппар маскируемых прерыв выполн контроллеры прерыв, кот. приним запросы на прерыв от нескольких устр-в, назначают им приорит, выбирают наиболее приоритетные и прерывают работу проц по входу INT. № вект прерыв маскир прерыв перед-ся в проц по его 8ми младш разр шины данных.

Вход немаскир прерыв NMI обычно исп-ся для сообщ о "катастрофич" событий (отключении питания). № этого прерыв = 2. Т.к. № немаскир прерыв заведомо известен, то он не передается в проц и обраб этого прерыв начин быстрее, чем обраб маскируем прерыв.

2) Таблица векторов прерываний (реальный режим работы). Для того чтобы связать номер прерыв с адресом обработч прерыв, исп-ся табл векторов прерыв, занимающая 1й килобайт опер пам - адреса от 0000:0000h до 0000:03FFh. Табл состоит из 256 эл-тов - FAR-адресов обработчиков прерыва. Эти эл-ты наз векторами прерыв. В первом слове эл-та табл записано смещ, а во втором - сегм адреса обработчика прерыв. Инициализация табл происх частично программой POST после тестирования аппаратуры, частично при загрузке DOS.

3) Обработка прерыв. N - номер вектора прерыв → поместить в стек регистр флагов → обнулить флаги IF и TF → поместить в стек знач рег CS → присвоить адресу вект прерыв знач N*4 → загрузить второе слово вект прерыв в рег CS → поместить в стек знач IP → загрузить первое слово вект прерыв в указатель команд IP → выполн действия по обслуживанию данного прерыв → извлечь из стека знач и загрузить в указатель команд IP → извлечь из стека значение и загрузить в рег сегмента команд CS → извлечь из стека значение и загрузить в регистр флагов → Конец.

4) Изменение таблицы векторов прерыв. Если программе потребуется изменить обработку некоторых прерыв, то для этого необх переназначить требуемый вект прерыв на свой обработчик. Это можно сделать, изменив содержание соотв эл-та табл вект прерыв.

5) Коррекция системных обработчиков прерыв. Если необх добавить какие-либо собственные действия к тем, что выполняет стандартный обработчик прерыв, то можно организов цепочку прерыв. Программир контроллер прерыв поддерживает 8 уровней прерыв от 8 разл устр-в. Основные ф-ции контроллера:

- фиксация запросов на прерывания от восьми внешних источников;

- программное маскирование поступающих запросов;

- инициализация вызова процедуры обработки поступившего аппаратного прерывания.