Мегаобучалка Главная | О нас | Обратная связь


Система прерываний программ в ПК



2015-12-06 825 Обсуждений (0)
Система прерываний программ в ПК 0.00 из 5.00 0 оценок




 

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

Прерывание — это приостановление выполнения в процессоре программы с целью выполнения какой-то более важной или нужной в данный момент другой про­граммы или процедуры, после завершения которой продолжается выполнение прерванной программы с момента ее прерывания. Прерывание позволяет компь­ютеру приостановить любое свое действие и временно переключиться на другое, как заранее запланированное, так и неожиданное, вызванное непредсказуемой ситуацией в работе машины или ее компонента. Каждое прерывание влечет за собой загрузку определенной программы, предназначенной для обработки воз­никшей ситуации — программы обработки прерывания.

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

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

- сохранения информации о статусе задачи при ее прерывании (формирование слова состояния программы);

- упреждения и устранения конфликтов между задачами (координации и син­хронизации выполнения задач).

Последовательность действий процессора при реализации прерывания такова. При появлении запроса на прерывание, запланированное заранее или неожидан­ное, процессор, как правило, после завершения выполнения текущей команды программы анализирует допустимость (разрешенность и приоритетность) дан­ного вида прерывания. Если оно разрешено, процессор производит следующие действия:

- запоминает в стековой памяти текущее состояние прерываемой программы (состояние некоторых регистров МПП, в частности регистров FL,CS,IP, а в мик­ропроцессорах МП80286 и выше — и слова состояния программы, храняще­гося в другом регистре МПП);

- посылает источнику запроса на прерывание запрос о причине (коде) прерывания; ,

- анализирует код запрошенного прерывания (номер прерывания — Л^) и фор­мирует адрес ячейки (AV,-хранящей вектор прерывания (вектор-адрес программы обработки прерывания) по формуле AV= 4*Ni (векторы прерываний занимают начальную 1024-байтовую область ОП с адресами ячеек от 00000 до 00400Н (шестнадцатеричный код) так, что адрес вектора вычисляется про­стым умножением номера прерывания на четыре, так как СS и 1Р занимают по 2 байта каждый);

- считывает из ОП и записывает в регистры МПП (в регистры FL,CS,IP и т. д.) вектор прерывания и его атрибуты;

- сбрасывает (устанавливает в 0) флаги прерывания (IF) и трассировки (ТР);

- выполняет программу обработки прерывания (которую иногда называют драйвером прерывания);

- после выполнения программы обработки прерывания возвращает из стековой памяти параметры прерванной программы в регистры МПП и восстанавлива­ет процесс выполнения прерванной программы.

Видов (номеров) прерывания может быть всего 256, и, соответственно, векторов прерывания (адресов CS:IР программ обработки прерываний) в ОП насчитыва­ется до 256. Классификация видов прерываний показана на рис. 1

Прикладные прерывания временно устанавливаются пользователем при много­программной работе МП для указания приоритета выполнения прикладных программ (при появлении необходимости выполнения более приоритетной про­граммы текущая менее приоритетная программа прерывается).

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

Аппаратные прерывания инициируются при обращениях к МП со стороны внеш­них устройств (таймера, клавиатуры, дисководов, принтера и т. д.) с требовани­ем уделить им внимание и выполнить совместно с ними те или иные процедуры. Прерывания от таймера, например, повторяются 18 раз в секунду, от клавиату­ры — при каждом программно не запланированном нажатии некоторых клавиш и т. п. Аппаратные прерывания не координируются с работой программы и могут быть весьма разнообразны. Для их систематизации и определения очередности выполнения при одновременном возникновении нескольких из них обычно ис­пользуется контроллер прерываний.

прерывания
системные

 

Рис.1. Классификация видов прерываний в МП

 

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

- базовой системы ввода-вывода — прерывания ВЮ5;

- операционной системы — прерывания ВО5.

Программы обработки прерываний ВО5, в отличие от программ обработки пре­рываний В1О5, не встроены в ПЗУ и для разных операционных систем могут быть разными. К программным прерываниям можно отнести также прерыва­ния при пошаговом исполнении программы, при работе с контрольным оста­новом и т. д.

Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении отказов и сбоев в работе технических средств (аппаратуре) ПК. Большинство технических прерываний не маскируются, то есть они разрешают­ся всегда, а некоторые из них относятся к категории «аварийных» (например, от­ключение питания), и при их возникновении даже не запрашивается причина прерывания, а просто, по возможности, спасаются важные промежуточные ре­зультаты — записываются в безопасное место, в НЖМД, например.

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

Прерывания обслуживаются базовой системой ввода-вывода — модулем расши­рения BIOS и модулем обработки прерываний DOS.

 



2015-12-06 825 Обсуждений (0)
Система прерываний программ в ПК 0.00 из 5.00 0 оценок









Обсуждение в статье: Система прерываний программ в ПК

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (825)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)