Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Понятие прерывания




Тема 2.4 Общие сведения о прерываниях

Студент должен

иметь представление:

- о стандартных программах обработки прерываний;

- о векторах прерываний;

знать:

- определение прерывания;

- классы прерываний;

- приоритеты прерываний

 

Понятие прерывания. Последовательность действий при обработке прерываний. Классы прерываний. Рабочая область прерываний. Вектор прерывания. Стандартные программы обработки прерываний. Приоритеты прерываний. Вложенные прерывания.

 

Для того, чтобы уяснить механизм прерываний, необходимо вспомнить устройство МП. МП является «мозгом» ЭВМ, который выполняет обработку всех команд, адресов и данных. Что такое регистр МП? Регистр процессора – внутренняя ячейка памяти процессора, в которой хранится управляющая информация, адрес или данные. Что такое регистр флагов?

 

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

Сущность прерывания заключается в следующем:

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

 

Такая программа называется «обработчик прерывания». После обслуживания прерывания возобновляется выполнение прерванной программы с точки, где было приостановлено ее выполнение.

Прерывание может быть вызвано не только каким-нибудь устройством, но и выполняющимся процессом.

Классификация прерываний

В зависимости от источника, прерывания делятся на:

□ · аппаратные - возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клавиатура, системные часы, клавиатура, жесткий диск и т.д.), по времени возникновения эти прерывания асинхронны, т.е. происходят в случайные моменты времени;

□ · программные - вызываются искусственно с помощью соответствующей команды из программы (int), предназначены для выполнения некоторых действий операционной системы, являются синхронными;

□ · исключения - являются реакцией микропроцессора на нестандартную ситуацию, возникшую внутри микропроцессора во время выполнения некоторой команды программы (деление на ноль, прерывание по флагу TF (трассировка)).

 

Общая классификация прерываний (Рис. 2.19)

□ · внешние - вызываются внешними по отношению к микропроцессору событиями

(по существу - это группа аппаратных прерываний), например:

□ прерывания от таймера;

□ прерывания от внешних устройств (прерывания по вводу-выводу);

□ прерывания по нарушению питания;

□ прерывания с пульта оператора вычислительной системы;

□ прерывания от другого процессора или другой вычислительной системы.

В современных МП-ых системах имеются два входа для внешних прерываний:

1) Маскируемые по входу INT(interrupt).

2) Немаскируемые по входу NMT(no mask interrupt).

 

На вход INT обычно подключается выход контроллера прерываний (спец. микросхемы), на входы которго подаются запросы от периферийных устройств.

 

 

Схемы прерываний
Немаскируемые прерывания

                 
 
 
   
     
   
Контроллер прерываний
     
 
 

 


Команда INT_n

       
 
 
 
 
   
Команда INTO

 

 


Рисунок 2.19 - Внешние и внутренние прерывания.

Когда сигнал на линии INT активен, действие МП зависит от флажка IF. (посмотреть в лекции). Регистр флагов представляет собой 16-разрядный регистр, в котором находится набор отдельных битов, называемых флажками. Флажки объединены в регистр для того, чтобы можно было сохранять состояние МП-ра в памяти с последующим восстановлением.

Если флажок IF сброшен и равен 0, то прерывания по входу INT запрещены (замаскированы) и МП игнорирует запрос прерывания и переходит к следующей команде. Если IF=1, то МП обрабатывает возникшее прерывание.

Вход NMI микропроцессора применяется для сигнализации процессору о катастрофических событиях, требующих незамедлительной реакции (аварийное отключение сети). Запросы по входу NMI нельзя запретить, они запоминаются в МП-ре и имеют более высокий приоритет, чем прерывания по входу INT.

 

· внутренние - возникают внутри микропроцессора во время вычислительного процесса:

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

 

Логические прерывания – Эти прерывания вырабатывает сам процессор, когда встречается с каким-либо необходимым условием:

а) деление на 0

б) переполнение регистров микропроцессора

в) при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес;
г) вследствие обнаружения ошибок в работе различных устройств.

 

Свойства внутреннего прерывания:

1) тип прерывания содержится в коде команды.

2) Вн. прерывание нельзя запретить.

3) Любые внутренние прерывания имеют более высокий приоритет, чем внешние прерывания.

Приоритеты прерывания в порядке их убывания:

  1. От ошибки деления.
  2. Программные, вызванные командой INT_n.
  3. От арифметического переполнения INTO (результат вышел за пределы допустимого значения).
  4. По входу NMI.
  5. Маскируемые прерывания по входу INT.

 

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

 

Маскирование сигналов прерывания позволяет реализовать различные дисциплины обслуживания:

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

2) С абсолютными приоритетами, то есть всегда обслуживается прерывание с наивысшим приоритетом. Необходимо на время обработки прерывания замаскировать все запросы с более низким приоритетом.

3) По принципу стека, или, как иногда говорят, по дисциплине LCFS (Last Come First Served — последним пришел, первым обслужен), то есть запросы с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом. Дли этого необходимо не накладывать маску ни на один из сигналов прерывания и не выключать систему прерываний.

Стек - область памяти, специально выделенная для временного хранения параметров или программных данных.

Механизм обработки прерываний независимо от архитектуры вычислительной системы подразумевает выполнение некоторой последовательности шагов:

1. Установление факта прерывания (прием сигнала запроса на прерывание).

2. Запоминание состояния прерванного процесса вычислений в счетчике команд, в регистрах процессора.

3. Управление аппаратно передается на подпрограмму обработки прерывания.

4. Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью аппаратуры.

5. Собственно выполнение программы, связанной с обработкой прерывания.

6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).

7. Возврат на прерванную программу.

 

Рисунок 2.20 – Обработка прерываний

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

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

Диспетчер задач
Восстановление контекста задачи, установка прежнего режима работы системы прерываний
Выполнение программы обработки прерываний

 

Рисунок 2.21 - Обработка прерываний при участии супервизоров ОС.

Дескриптор (англ. Descriptor) — дословно описатель, описательный элемент.

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

Супервизор прерываний выполняет следующие действия:

- сохраняет в дескрипторе текущей задачи рабочие регистры процессора, определяющие контекст прерванной задачи;

- определяет программу, обслуживающую текущий запрос на прерывание;

- устанавливает необходимый режим обработки пребывания;

- передает управление подпрограмме обработки прерывания.

После выполнения подпрограммы обработки прерывания управление передается супервизору в модуль управления диспетчеризацией задач. Диспетчер задач производит:

- выбор готовой к выполнению задачи (в соответствии с дисциплиной обслуживания)

- восстановление контекста задачи;

- установка прежнего режима работы системы прерываний;

- передачу управления выбранной задаче.

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

В конкретных процессорах и ОС могут быть изменения и дополнения к рассмотренной дисциплине обслуживания прерываний.

 

Итак, главные функции механизма прерываний — это:

□ распознавание или классификация прерываний;

□ передача управления соответствующему обработчику прерываний;

□ корректное возвращение к прерванной программе.

 

Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из самых простых и быстрых методов является использование таблицы указателей векторов-прерываний. Данная таблица осуществляет связь между кодом типа прерывания и процедурой, которая обслуживает прерывания данного типа. Данная таблица занимает 1-й Кб оперативной памяти. Она содержит адреса (векторы) обработчиков прерываний и состоит из 256 элементов по 4 байта каждый. Таблица векторов прерываний возникает при запуске системы.

 

Вопросы:

1. Определение прерывания.

2. Классификация прерываний.

3. Что такое таблица векторов прерываний?

4. Приведите пример аппаратных прерываний.

5. Приведите пример программных прерываний.

 

Раздел 3. Общие сведения о BIOS (базовой системы ввода-вывода)

Студент должен:

иметь представление:

- о назначении базовой системы ввода-вывода;

- об основных функциях базовой системы ввода-вывода;

знать:

- работу программы начального тестирования оборудования;

- варианты загрузки операционной системы;

уметь:

- просматривать основные параметры программы SMOS-Setup;

- настраивать порядок загрузки операционной системы;

 

Тестирование оборудования: программа начального тестирования оборудования. Начальная загрузка. Загрузка операционной системы. Сбои при запуске. Базовая система ввода-вывода. CMOS-Setup.




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 3666; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.064 сек.