"Процессоры персонального компьютера"
Понятие прерывания и основные виды прерываний
Download 152.79 Kb.
|
захро
1.2 Понятие прерывания и основные виды прерываний
Под понятием прерывание понимают механизм, который согласовывает параллельную работу отдельных механизмов вычислительной системы и реагирует на особые ситуации, которые в свою очередь возникают при функционировании процессора. Прерывание характеризуется в принудительной передаче управления от выполняемой программы к системе. Данный механизм срабатывает при возникновении важного события, которое требует приостановки текущего кода, выполняемого процессором. Центральный процессор приостанавливает свою текущую активность, сохраняет свое состояние и выполняет функцию, которая называется обработчиком прерывания или программой обработки прерывания. Она реагирует на событие и обслуживает его с последующим возвращением управления в приостановленный код. Основной целью введения прерываний является реализация асинхронного режима работы и осуществления распараллеливания действий различных механизмов вычислительного комплекса. Функция механизма прерываний осуществляется аппаратно-программным способом. Прерывание во всех случаях влечет за собой изменение порядка выполнения команд процессором. Система прерывания - это эффективный способ выполнения контрольных и управляющих функций операционной системы в целях поддержания заданных режимов функционирования ЭВМ, как аппаратно-программного комплекса. Указанная система прерывания возникла в процессорах ЭВМ второго поколения, которые применялись в качестве программных устройств управления различными объектами. Основные причины, которые способствовали появлению системы прерывания, это: целью разработчиков было снизить количество простоев ЭВМ при появлении внештатных ситуаций в процессоре (попытки деления на ноль, использование несуществующей команды, сбой в устройстве и т.д.); загрузить полезной работой процессор, в то время, когда он ожидает сигнал от управляемого объекта, то есть реализовать фоновую работу ЭВМ. Основными функциями механизма прерываний являются: их распознавание или классификация; передача управления на их обработку; корректный возврат к прерванной программе. Прерывания, которые возникают при работе вычислительной системы, разделяют на два основных класса: внешние (асинхронные). Указанные прерывания вызываются появлением асинхронных событий, которые происходят вне прерываемого процесса. Например: прерывания от таймера, от внешнего устройства (прерывания по вводу/выводу), из-за нарушения питания, прерывания с пульта оператора вычислительной системы, от другого процессора или другой вычислительной системы. внутренние (синхронные). Данные прерывания вызываются появлением событий, которые связаны с функцией процессора и являются синхронными с его операциями. Например,нарушение адресации, наличие в поле адреса несуществующей инструкции, деление на нуль,переполнение или исчезновение порядка, ошибка четности, ошибка в работе различных аппаратных устройств. Данные программные прерывания срабатывают по соответствующей команде прерывания. По этой команде процессор осуществляет те же действия, что и при обычных внутренних прерываниях. Этот механизм введен для переключения на системные программные модули как обычное прерывание, а не как переход в подпрограмму, что обеспечивает автоматическое переключение процессора в привилегированный режим с возможностью выполнения всех команд. Сигналы, которые вызывают прерывания, формируются либо в процессоре, либо вне него. Они могут возникнуть одновременно. Процесс выбора одного из них происходит с учетом приоритетов, которые установлены для каждого их них. Самым высоким приоритетом обладают прерывания от схем контроля процессора. Учет приоритетов либо встроен в технические средства, либо может определяться операционной системой. Программно-аппаратное управление порядком обработки сигналов прерывания позволяет применять различные дисциплины обслуживания прерываний. Исходя из уровня приоритета, то есть от низкого к высокому, распределение прерываний выглядит следующим образом: программные; от внешних устройств: терминалов; от внешних устройств: сетевого оборудования; от внешних устройств: магнитных дисков; от системного таймера; от средств контроля процессора. Кроме того, процессор способен обладать средствами защиты от прерываний: отключение системы прерываний; маскирование (запрет) отдельных их видов. В большинстве случаев, операция прерывания осуществляется только после завершения выполнения текущей команды. Процесс возникновения сигналов прерывания происходит в произвольные моменты времени, в связи с этим, к моменту обработки возможно накопление нескольких сигналов. Им присваиваются приоритеты, и в первую очередь происходит обработка сигнала с более высоким приоритетом. Существующее программное управление специальными регистрами маски, то есть маскирование сигналов прерывания, способна реализовывать самые различные дисциплины обслуживания: с относительными приоритетами. В данном случае обслуживание не прерывается даже при наличии запросов с более высоким приоритетом. В программе обслуживания указанного запроса накладываются маски на все остальные сигналы прерывания или просто необходимо отключить систему прерываний; с абсолютными приоритетами. В этом случае, осуществляется обслуживание прерывания с наибольшим приоритетом. В программе обслуживания прерываний накладываются маски на сигналы прерывания с более низким приоритетом. Также, возможно многоуровневое прерывание - прерывание программы обработки прерывания, число уровней изменяется и зависит от приоритета запроса; по принципу стека (последним пришел - первым обслужен). В данном случае, запросы с более низким приоритетом способны прервать обработку прерывания с более высоким. В программе обслуживания прерываний не накладываются маски ни на один сигнал прерывания и отключают систему прерываний. Оперативная система осуществляет управление ходом выполнения задач, которая заключается в: организации реакций на прерывание; обмена информацией; предоставление необходимых ресурсов; динамике выполнения задачи; организации сервиса. Оперативная система определяет причины прерываний (супервизор прерываний) и осуществляет действия, которые необходимы при указанном прерывании и ситуации. Супервизор прерываний осуществляет действия: сохраняет в дескрипторе текущей задачи рабочие регистры процессора, которые определяют контекст прерванной задачи; определяет программу, которая обслуживает текущий запрос на прерывание; устанавливает необходимый режим ее обработки; передает управление подпрограмме обработки прерывания. По окончанию выполнения подпрограммы обработки прерывания управление передается супервизору в модуль управления диспетчеризацией задач. В момент появления запроса на прерывание система идентифицирует сигнал. В случае, если прерывание разрешено, то управление передается на соответствующую подпрограмму обработки прерываний. Подпрограмма обработки прерываний состоит их трех секций: 1) отключение прерываний, сохранение контекста прерванной программы, установка режима работы системы прерываний; 2) собственно тело программы обработки прерываний; 3) восстановление контекста прерванной ранее программы, установка прежнего режима работы системы прерываний. 1-я и 3-я секции подпрограммы обработки прерываний являются служебными, они сохраняют и восстанавливают контекст задач. Поскольку эти действия необходимо выполнять практически в каждой подпрограмме обработки прерывания, во многих ОС первые секции подпрограмм обработки прерываний выделяются в специальный системный модуль - супервизор прерываний. Таким образом, принимая во внимание выше изложенное, можно сказать, что прерывание является очень важным механизмом, который извещает процессор о возникновении какого-либо высокоприоритетного события. Программа, заставшая прерывание, останавливает свою работу в совершенно произвольном месте. После окончания прерывания, программа возобновляется с того момента, где прервалась, что очень удобно для пользователя персонального компьютера. Download 152.79 Kb. |
ma'muriyatiga murojaat qiling