Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Типы прерываний.

Процессы. Контекст процесса. Состояния процессов и переходы между ними. Системные вызовы для обеспечения жизненного цикла процесса | Управление памятью. Основные задачи. Модели памяти. Системные вызовы для работы с памятью | Монопольные ресурсы. Проблема тупиков. Дисциплины распределения ресурсов. Поиск тупиков и их уничтожение | Средства взаимодействия процессов. Сравнительная характеристика базовых механизмов IPC | Управление транзакциями | Поддержка языков БД | Цветовые пространства RGB и CMYK. Сфера действия и и причины их различия. Получение цвета одного пространства через значение цветов другое | Получения в WINDOWS программах изображения примитивов. Точки | Провести сравнение технологий взаимодействия процессов в локальной сети. Почтовые ящики. Именованные каналы. Удаленного вызова процедур. Гнезда | Провести сравнение методов построения многоуровневых программных средств. Динамические библиотеки. COM и ACTIVEX. Провайдеры. Службы. Драйвера |


Читайте также:
  1. Классифицируйте режимы работы микропроцессора. Объясните организацию оперативной памяти и систему прерываний.
  2. Организация прерываний в ПК, приоритеты при обработке прерываний. Режимы работы и программирование

По источнику и характеру возникновения прерывания можно разделить на группы:

Прерывания
+-------------------------+
Аппаратные Программные
+--------------------+
Внешние Внутренние
+--------------+
Маскируемые Немаскируемые

 

Программные прерывания вызывают сами программы, поэтому они не являются асинхронными. Для этого они используют команду INT. Программные прерывания удобно использовать для организации доступа к отдельным общим для всех программ модулям. Например, программные модули операционной системы доступны прикладным программам именно через прерывания, и нет необходимости при вызове этих модулей знать их текущий адрес в памяти. Прикладные программы сами могут устанавливать свои обработчики прерываний для их последующего использования другими программами. Для этого встраиваемые обработчики прерываний должны быть резидентными в памяти. Аппаратные прерывания вызываются физическими устройствами и приходят асинхронно. Эти прерывания информируют систему о событиях, связанных с работой устройств. Использование прерываний при работе с медленными внешними устройствами позволяет совместить ввод/вывод с обработкой данных в центральном процессоре и в результате повышает общую производительность системы. Внутренние (логические) прерывания формируются самим процессором, когда он встречается с некоторыми особыми событиями вроде деления на 0. Это прерывания с номерами 0, 1, 3, Внешние аппаратные прерывания вызваны сигналами, внешними по отношению к центральному процессору, и подаются на его входы INT и NMI. Прерывания по входу INT относятся в аппаратным маскируемым прерываниям, поскольку могут быть разрешены или запрещены флагом IF регистра флагов. Обработку аппаратных маскируемых прерываний выполняют контроллеры прерываний, которые принимают запросы на прерывание от нескольких устройств, назначают им приоритеты, выбирают наиболее приоритетные и прерывают работу процессора по входу INT.

Номер вектора прерываний маскируемых прерываний передается в процессор по его восьми младшим разрядам шины данных. Вход немаскируемого прерывания NMI обычно используется для сообщений о "катастрофических" событий (отключении питания, обнаружении ошибок памяти и т.д.). Номер этого прерывания равен 2. Так как номер немаскируемого прерывания заведомо известен, то он не передается в процессор и обработка этого прерывания начинается быстрее, чем обработка маскируемых прерываний. Запрос на прерывание NMI маскируется установкой в 1 старшего 7-го бита порта 70h. При этом остальные биты (6-й бит всегда равен 0, а биты 5- 0 задают адрес CMOS памяти) должны остаться без изменения. Приоритет NMI выше всех маскируемых прерываний. Для того чтобы связать номер прерывания с адресом программы обработки прерываний (обработчика прерываний), используется таблица векторов прерываний, занимающая первый килобайт оперативной памяти - адреса от 0000:0000 до 0000:03FF. Таблица состоит из 256 элементов - FAR-адресов обработчиков прерываний. Эти элементы называются векторами прерываний. В первом слове элемента таблицы записано смещение, а во втором - сегмент адреса обработчика прерываний.

Прерыванию с номером 0 соответствует адрес 0000:0000, прерыванию с номером 1 - 0000:0004 и т.д. Прерыванию с номером n будет соответствовать адрес 0000:4*n.

Инициализация таблицы происходит частично программой BIOS после тестирования аппаратуры, частично при загрузке DOS. DOS может переключить на себя некоторые прерывания BIOS. Часто при выполнении критических участков программ, для того чтобы гарантировать выполнение определенной последовательности команд, приходится запрещать прерывания. Это можно сделать командой CLI (сброс флага разрешения прерывания). Ее нужно поместить в начало критической последовательности команд, а в конце расположить команду STI (установить флаг разрешения прерывания). Команда CLI запрещает только маскируемые прерывания, немаскируемые всегда обрабатываются процессором.

Если использовать запрет прерываний с помощью команды CLI, следует следить за тем, чтобы прерывания не отключались на длительный период времени, т.к. это может привести к нежелательным последствиям, например, будут отставать часы.

Если надо запретить не все прерывания, а только некоторые,
например, от клавиатуры, то для этого надо воспользоваться услугами контроллера прерываний. Если программе потребуется организовать обработку некоторых прерываний, то для этого необходимо переназначить требуемый вектор прерываний на свой обработчик. Это можно сделать, изменив содержание соответствующего элемента таблицы векторов прерываний. Аппаратные прерывания вырабатываются устройствами компьютера, когда возникает необходимость их обслуживания. В отличие от программных прерываний, вызываемых запланировано самой прикладной программой, аппаратные прерывания всегда происходят асинхронно по отношению к выполняющимся программам. Кроме того, может возникнуть одновременно сразу несколько прерываний!

Для того, чтобы система "не растерялась", решая какое прерывание обслуживать в первую очередь, существует специальная схема приоритетов. Каждому прерыванию назначается свой уникальный приоритет. Если происходит одновременно несколько прерываний, то система отдает предпочтение самому высокоприоритетному, откладывая на время обработку остальных прерываний.

Система приоритетов реализована на двух микросхемах Intel 8259 (для машин класса XT - на одной такой микросхеме). Каждая микросхема обслуживает до восьми приоритетов. Микросхемы можно объединять (каскадировать) для увеличения количества уровней приоритетов в системе.

Уровни приоритетов обозначаются сокращенно IRQ0 - IRQ15 (для машин класса XT существуют только уровни IRQ0 - IRQ7).

Для машин XT приоритеты линейно зависели от номера уровня прерывания. IRQ0 соответствовало самому высокому приоритету, за ним шли IRQ1, IRQ2, IRQ3 и так далее. Уровень IRQ2 в машинах класса XT был зарезервирован для дальнейшего расширения системы. И начиная с машин класса AT IRQ2 стал использоваться для каскадирования контроллеров прерывания 8259. Добавленные приоритетные уровни IRQ8 - IRQ15 в этих машинах располагаются по приоритету между IRQ1 и IRQ3.


Дата добавления: 2015-11-16; просмотров: 52 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Общие требования и архитектуры интерфейса пользователя. Возможности, преимущества и недостатки диалоговых, однодокументным и многодокументным приложений| Архитектура видеосистемы ПК. Управления видеосистемой

mybiblioteka.su - 2015-2024 год. (0.006 сек.)