Концепция системы прерываний

Опубликовано февраля 10, 2018 в Архитектура процессора Intel

По выражению Питера Нортона (Peter Norton — американский предприниматель, программист и филантроп, создатель операционной оболочки Norton Commander), прерывания являются движущей силой компьютера.

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

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

 заказать дипломную

Система прерываний является комплексом аппаратных и программных средств.

Прерывания принято разделять на два основных типа: программные; аппаратные.

Программные прерывания связаны с выполняемой программой и являются синхронными по отношению к этой программе.

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

Реагируя на аппаратные прерывания, процессор должен идентифицировать его источник, сохранить минимальный конгекст прерываемой программы и переключиться на специальную программуу — обработчик прерывания (interrupt handler).

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

В настоящее время, особенно в зарубежной литературе, программные прерывания принято называть термином exception (особый случай, исключение). Для обработки особых случаев используются специальные нро1раммы-обработчики, называемые exception handler. В зависимости от способа возникновения особых случаев и возможности перезапуска (рестарта) процессора после их обработки с вызвавшей их команды принято рассматривать три вида особых случаев:

  1. Нарушение (отказ, ошибка) — fault;
  2. Ловушка — trap;
  3. Авария (выход из процесса) — abort.