8_Система прерываний (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования)

PDF-файл 8_Система прерываний (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования) Практика расчётов на ПЭВМ (37037): Книга - 1 семестр8_Система прерываний (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования) - PDF (37037) - СтудИзба2019-04-28СтудИзба

Описание файла

Файл "8_Система прерываний" внутри архива находится в папке "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования". PDF-файл из архива "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

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

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

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

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

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

Надо сказать, что, хотя такая реакция, конечно, сильно зависит от архитектуры конкретного компьютера, всё же можно указать какие-то общие черты этого процесса, присущие большинству ЭВМ. Сейчас мы рассмотрим, что обычно входит в аппаратную реакцию центрального процессора на сигнал прерывания.Сначала надо сказать, что центральный процессор "смотрит", пришел ли сигнал прерывания,только после выполнения очередной команды, таким образом, этот сигнал ждёт завершения текущей команды.2 Здесь, однако, надо рассказать о двух "нетипичных" командах в архитектуре младшеймодели нашего компьютера, это команды с мнемоническими кодами операций halt и wait.

Команда halt останавливает выборку команд центральным процессором, и только сигнал прерыванияможет вывести компьютер из этого "ничегонеделания". Обычно эта команда используется для "выключения" центрального процессора, если ни одна из программ не готова к счёту, это позволяет, вчастности, резко снизить энергопотребление, что может оказаться важным, например, при работе1В некоторых компьютерах сигналы о разных событиях приходят на различные входы (линии) электронной схемы анализа прерываний центрального процессора.

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

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

Понятно, что конвейерные ЭВМ весьма "болезненно" относятся к сигналам прерывания, так как при этом приходится повторять заново несколько последних, частично выполненных, команд прерванной программы. При частом приходе сигналов прерываний это может сильно снизить скорость выполнения программ. Несколько более подробно о конвейерных ЭВМ мы поговорим в конце этой книги.Итак, если есть сигнал прерывания, то после окончания текущей команды центральный процессор анализирует номер сигнала прерывания (для нашего компьютера это целое беззнаковое числоформата i8). Для некоторых из этих номеров пришедший сигнал прерывания игнорируется, и центральный процессор продолжает выполнение текущей программы. Говорят, что прерывания с такими номерами в данный момент времени запрещены или замаскированы.1 Для компьютера нашейархитектуры можно замаскировать все прерывания от внешних устройств (кроме прерывания с номером 2), установив в ноль значение специального флага прерывания IF в регистре флагов FLAGS(это можно выполнить командой cli ).Маскировать сигналы прерываний о событиях в центральной части компьютера (например, деление на ноль, плохой код операции, сбой оперативной памяти и т.д.) нельзя, так как продолжениевыполнения текущей программы при этом не имеет смысла.

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

Чтобы снизить такую опасность, так называемыйконтроллер прерываний может запоминать приходящие сигналы в аппаратно реализованной очереди для их дальнейшей обработки. Кроме того, в ЭВМ высокой производительности, как мы ужеупоминали, центральный процессор имеет несколько независимых входных линий, на которые могут поступать сигналы прерывания. Отсюда следует, что маскировать сигналы прерываний от внешних устройств можно только на некоторое весьма короткое время, после чего необходимо открытьвозможность реакции на такие прерывания.1Такой термин появился потому, что разрешение прерывания обычно задаётся установкой в единицу некоторого бита в каком-то регистре. На первых носителях информации двоичная единица обозначалась отверстием (прорезью) в нужном месте картонной перфокарты, а ноль – отсутствием такого отверстия.

Таким образом, наличие отверстия как бы позволяет увидеть пришедший сигнал прерывания, а иначе он становится невидимым, т.е. замаскированным.3Разберёмся теперь, зачем вообще может понадобиться маскировать некоторые прерывания. Делов том, что, если пришедший сигнал прерывания не замаскирован, то, как мы вскоре увидим, центральный процессор прерывает выполнение текущей программы и переключается на выполнениенекоторой в общем случае другой программы. Это может быть нежелательно и даже опасно, еслитекущая программа была занята срочной работой, которую нельзя прерывать даже на короткое время. Например, эта программа может обрабатывать некоторое важное событие, или же управлять каким-либо быстрым процессом во внешнем устройстве (линия связи с космическим аппаратом,химический реактор и т.д.).С другой стороны, необходимо понять, что должны существовать и специальные немаскируемые сигналы прерывания от внешних устройств.

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее