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

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

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

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

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

Текст 2 страницы из PDF

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

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

Как видим, эти действия при минимальном упрятывании похожи на действия при выполнении команды перехода с запоминанием возврата call, да и назначение у них одно – обеспечить возможность возврата в прерванное место текущей программы. Из этого, как мы уже неоднократно говорили, следует, что стек должен быть у любой программы, даже если она сама им и непользуется.2После выполнения минимального упрятывания центральный процессор по определённым правилам находит (вычисляет) адрес оперативной памяти, куда надо передать управление для обработкисигнала прерывания с данным номером. Говорят, что на этом месте оперативной памяти находитсяпрограмма реакции (процедура обработки прерывания, обработчик) сигнала прерывания с данным номером.Для компьютера нашей архитектуры определение адреса начала процедуры-обработчика прерывания с номером N производится по следующему правилу.

В начале оперативной памяти расположентак называемый вектор прерываний – массив из 256 элементов (по числу возможных номеровпрерываний от 0 до 255). Каждый элемент этого массива состоит из двух машинных слов (т.е. имеетформат m32) и содержит дальний адрес процедуры-обработчика. Таким образом, адрес процедурыобработчика находится в двух словах, расположенных в памяти по физическим адресам 4*N и4*N+2. Можно сказать, что для перехода на процедуру-обработчика прерывания с номером N необходимо выполнить безусловный переходjmp dword ptr [4*N]; IP:=[4*N], CS:=[4*N+2]1Для упрощения работы можно сделать так, что сигнал о немаскируемом прерывании приходит на отдельный вход в контроллере прерываний.2Хотя некоторые программы могут выполняться полностью в режиме закрытых прерываний, но не надозабывать, что существуют прерывания, которые нельзя замаскировать, а также специальные команды, которыевсегда вызывают прерывания.41Таким образом, можно сказать, что прерывание вызывает дальний прямой двойной косвенный переход.

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

Как мы уже говорили, значение флага IF=0 маскирует все прерывания от внешних устройств, кроме прерывания с номером 2. Флаг TF устанавливается равным нулю потому, что при значении TF=1 центральный процессор всегда посылает сам себе (немаскируемый) сигнал прерыванияс номером N=1 после выполнения каждой команды. Этот флаг используется при работе программотладчиков для пошагового выполнения (трассировки) отлаживаемой программы.

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

Так и компьютер по сигналу прерывания можетавтоматически, "не раздумывая" переключиться на процедуру-обработчика этого сигнала. Отсюдаможно сделать вывод, что одно из назначений системы прерываний – обеспечить быструю реакциюкомпьютера на события, возникающие как в его центральной части, так и на периферии (в устройствах ввода/вывода).Итак, после завершения аппаратной реакции на незамаскированный сигнал прерывания начинает работать процедура-обработчик прерывания с данным номером, эта процедура выполняет, как говорят, программную реакцию на прерывание. Аналогом программной реакции на прерывание в живой природе можно считать условный рефлекс. Как у живого организма можно выработать условныйрефлекс на некоторый внешний раздражитель (сигнал), так и компьютер можно "научить", как реагировать на то или иное событие, написав процедуру-обработчика сигнала прерывания с номером,соответствующим этому событию.Из рассмотренной выше схемы аппаратной реакции на сигнал прерывания можно сделать выводо том, что наш компьютер будет правильно работать только тогда, когда его вектор прерывания заполнен не случайными числами, а "правильными" адресами процедур-обработчиков прерываний.

Обэтом должна позаботиться операционная система нашего компьютера в самом начале его работы.Рассмотрим теперь схему работы процедуры-обработчика прерывания. Напомним, что эта процедура начинает выполняться в режиме с закрытыми прерываниями от внешних устройств. Как мыговорили выше, долго работать в таком режиме очень опасно, и следует как можно скорее разрешить(открыть) такие прерывания (для нашего компьютера это установка в единицу флага IF, это можносделать, выполнив команду sti ).Действия, выполняемые в режиме с закрытыми прерываниями, обычно называются минимальной программной реакцией на прерывание.

Как правило, минимальная программная реакциявключает в себя следующие действия.1Этот именно двойной косвенный переход, так как параметром перехода является номер прерывания N,по этому номеру вычисляется адрес операнда формата m32, а в этом операнде, наконец, находится адрес процедуры-обработчика, куда и делается переход.2Подробно работу отладчика студенты факультета вычислительной математики и кибернетики МГУ изучают в курсе третьего семестра "Системное программное обеспечение".3Современные компьютеры обычно работают в так называемом мультипрограммном режиме.

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

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

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

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

Заметим, что после восстановления значений регистров SS и SP мы восстановили и состояние стека программы, которое этот стек имел после завершения аппаратной реакции на прерывание. После этого надо произвести возврат на следующую команду прерванной программы, для чего в нашем компьютере можно использовать специальную команду языка машины – команду выходаиз прерыванияiretЭта команда без параметров является ещё одним видом команд безусловного перехода и выполняется по схеме:Изстека(IP); Изстека(CS); Изстека(FLAGS)Напомним, что из области сохранения уже восстановлены регистры SS и SP прерванной программы,т.е.

из её стека можно читать данные.1Точнее контекстом процесса, процессы студенты факультета вычислительной математики и кибернетики МГУ изучают в курсе третьего семестра "Системное программное обеспечение". Заметим, что в контекстекаждого вычислительного процесса постоянно хранится и другая информация, связанная с процессом (объёмзанимаемой памяти, приоритет, описание открытых файлов, так называемые переменные окружения и т.п.).2В частности, сигналом с таким же номером N, при этом произойдёт повторный вход в начало этой жесамой процедуры-обработчика.

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