рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Прерывания и цикл команды

Прерывания и цикл команды - раздел Компьютеры, Обзор компьютерных систем Благодаря Прерываниям Во Время Выполнения Операций Ввода-Вывода Процес­сор Мо...

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

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

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

 

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

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

 

Чтобы оценить выигрыш в эффективности, рассмотрим временную диа­грамму (рис. 1.8), иллюстрирующую ход процессов, показанных на рис. 1.5,а и б. В ситуации, показанной на рис. 1.5,б и 1.8, предполагается, что для выполне­ния операций ввода-вывода требуется сравнительно короткое время, т.е. мень­шее, чем время обработки команд, которые расположены в программе пользователя между операциями записи. Более типичным, особенно для таких медлен­ных устройств, как принтер, является случай, когда операции ввода-вывода занимают намного больше времени, чем требуется для выполнения последова­тельности команд пользователя. Такая ситуация показана на рис. 1.5,в. В этом случае программа пользователя дойдет до следующего вызова WRITE еще до за­вершения операции ввода-вывода, порожденной предыдущим вызовом. В ре­зультате в этом месте программа пользователя будет приостановлена. После за­вершения обработки предыдущей операции ввода-вывода придет очередь обрабо­тать новое обращение к процедуре WRITE, и будут запущены новые операции ввода-вывода. На рис. 1.9 представлена диаграмма выполнения программы в среде без прерываний и с прерываниями для описанного случая. Как видно, в такой ситуации выигрыш в эффективности все равно существует, так как часть времени, в течение которого выполняются операции ввода-вывода, перекрывает­ся выполнением команд пользователя.

Обработка прерываний

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

1. Устройство посылает процессору сигнал прерывания.

2. Перед тем как ответить на прерывание, процессор должен завершить ис­полнение текущей команды (см. рис. 1.7). '

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


 

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


 

5. Далее в программный счетчик процессора загружается адрес входа про­граммы обработки прерываний, которая отвечает за обработку данного пре­рывания. В зависимости от архитектуры компьютера и устройства операционной системы может существовать как одна программа для обработки всех прерываний, так может быть и своя программа обработки для каждого уст­ройства и каждого типа прерываний. Если для обработки прерываний име­ется несколько программ, то процессор должен определить, к какой из них следует обратиться. Эта информация может содержаться в первоначальном сигнале прерывания; в противном случае для получения необходимой информации процессор должен по очереди опросить все устройства, чтобы оп­ределить, какое из них отправило прерывание.

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


6. Содержимое программного счетчика и слово состояния прерываемой про­граммы уже хранятся в системном стеке. Однако это еще не вся информа­ция, имеющая отношение к состоянию исполняемой программы. Например, нужно сохранить содержимое регистров процессора, так как эти регистры могут понадобиться обработчику прерываний- Поэтому необходимо сохра­нить всю информацию о состоянии программы. Обычно обработчик преры­ваний начинает свою работу с записи в стек содержимого всех регистров. Другая информация, которая должна быть сохранена, обсуждается в гла­ве 3, "Описание процессов и управление ими". На рис. 1-11, а показан про­стой пример, в котором программа пользователя прерывается после выпол­нения команды из ячейки N. Содержимое всех регистров, а также адрес следующей команды (7V+1), в сумме составляющие М слов, заносятся в стек. Указатель стека при этом обновляется, указывая на новую вершину стека. Обновляется и программный счетчик, указывая на начало програм­мы обработки прерывания.

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

8. После завершения обработки прерываний из стека извлекаются сохранен­ные ранее значения, которые вновь заносятся в регистры, возобновляя та­ким образом то состояние, в котором они пребывали до прерывания (см., например, рис. 1.11,6). ^ -

9. Последний этап — восстановление из стека слова состояния программы и содержимого программного счетчика. В результате следующей будет вы­полняться команда прерванной программы.

Из-за того что прерывание не является подпрограммой, вызываемой из программы, для полного восстановления важно сохранить всю информацию состояния прерываемой программы. Однако прерывание может произойти в любой момент и в любом месте программы пользователя. Это событие не­предсказуемо.

– Конец работы –

Эта тема принадлежит разделу:

Обзор компьютерных систем

Таблица Классы прерываний Программнное прерывание Прерывание по таймеру Прерывание... Прерывания в основном предназначены для повышения эффективности ра боты Например большинство устройств ввода вывода...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Прерывания и цикл команды

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Обзор компьютерных систем
1.1. Основные элементы 1.2. Регистры процессора 1.3. Исполнение команд 1.4. Прерывания 1.5. Иерархия запоминающих устройств 1.6. Кэш 1.7. Техно

ОСНОВНЫЕ ЭЛЕМЕНТЫ
На макроуровне компьютер состоит из процессора, памяти и устройств вво­да-вывода; при этом каждый компонент представлен одним или несколькими модулями. Чтобы компьютер мог выполнять свое основное п

РЕГИСТРЫ ПРОЦЕССОРА
В процессоре имеется набор регистров, представляющих собой область па­мяти быстрого доступа» но намного меньшей емкости, чем основная память. Регистры процессора выполняют две функции.

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

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

ИСПОЛНЕНИЕ КОМАНД
Программа, которую выполняет процессор, состоит из набора хранящихся в памяти команд. В простейшем виде обработка команд проходит в две стадии: процессор считывает (выбирает) из памяти, а затем зап

Выборка и исполнение команды
В начале каждого цикла процессор выбирает из памяти команду. Обычно адрес ячейки, из которой нужно извлечь очередную команду, хранится в про­граммном счетчике (PC), Если не указано иное, после извл

Функции ввода-вывода
До сих пор мы рассматривали операции компьютера, управляемые процес­сором, основное внимание обращая на взаимодействие процессора и памяти. О роли компонентов ввода-вывода было упомянуто лишь вскол

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

Многозадачность
  Бывает, что для эффективного использования процессора одних прерываний недостаточно. Обратимся, например, к рис. 1.9,6. Если время, которое требуется для выполнения операций ввода-в

ИЕРАРХИЯ ЗАПОМИНАЮЩИХ УСТРОЙСТВ
Конфигурация памяти компьютера в основном определяется тремя пара­метрами: объем, быстродействие, стоимость. Вопрос об объеме решить не так просто. Какой большой ни была бы па­мять, все ра

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

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

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

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

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

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

Локализация
Основой для повышения производительности двухуровневой памяти являет­ся принцип локализации, о котором шла речь в разделе 1.5. Основной постулат состоит в том, что последовательные обращения к памя

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

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

Реализация стека
Стек — это упорядоченный набор элементов, причем при обращении к нему можно получить доступ лишь к одному из элементов. Этот элемент называется вершиной стека. Число элементов стека (его дли

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

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги