Конспект установочных лекций по комплексному курсу Информатика, Теория информации




Методы реализации системного программирования - часть 2


·         встретилась ошибка.

Если прерывание выполнения пользовательской программы вызвано каким-либо внешним событием, что мы говорим о вмешательстве (внешнее прерывание); в противном случае - о тревоге (внутреннее прерывание). В случае вмешательства фактическое выполнение программы прерывается, так как имеет место внешнее событие, на которое необходимо отреагировать, например сигнал от устройства ввода/вывода или команда оператора.

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

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

while true do

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

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

контроль за командой (в случае необходимости - операционная тревога).

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


Содержание  Назад  Вперед