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

Автор работы: Пользователь скрыл имя, 30 Марта 2015 в 20:51, курсовая работа

Описание работы

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

Содержание работы

Введение
Системы прерываний 4
Одноуровневые прерывания 6
Векторные прерывания 7
Приоритетные прерывания 10
Вложенные прерывания 11
Заключение 13
Литература 14

Файлы: 1 файл

курс раб.docx

— 42.83 Кб (Скачать файл)

 

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Негосударственное образовательное учреждение высшего профессионального образования «Университет управления «ТИСБИ»

 

 

 

 

 

Курсовая Работа

 

По дисциплине “Операционные системы”

Тема: “Системы прерывания - основа организации вычислительного процесса”

 

 

 

 

 

 

 

 

 

 

 

 

Студент:

Руководитель:

 

 

 

 

 

 

 

 

 

 

Казань 2014

 

Содержание:

Введение

  1. Системы прерываний 4
  2. Одноуровневые прерывания 6
  3. Векторные прерывания 7
  4. Приоритетные прерывания 10
  5. Вложенные прерывания 11

Заключение 13

Литература 14

Приложение 15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

Компьютер должен обладать способностью реагировать на события,  происходящие вне его микропроцессора,  например, воспринимать информацию, вводимую с клавиатуры.  

Существует два способа организации такой реакции.  Один способ состоит в постоянном ожидании события.  Такой способ называется "сканированием" или "опросом",  и такой  опрос  может  занимать  большую часть  времени компьютера.  Другой способ позволяет компьютеру спокойно выполнять свою работу,  пока не  произойдет  событие, требующее его внимания. Такой подход называется использованием "прерываний".  Прерывания и исключения — такие ситуации в операционной системе, в которых нормальный поток выполнения кода процессором прерывается. Эти ситуации обнаруживаются как программным, так и аппаратным обеспечением. 

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

 

    1. Системы прерываний

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

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

 

    1. Одноуровневые прерывания

Данная система прерываний реализована таким образом, что при возникновении прерывания процессор аппарата переходит к подпрограмме обработки прерываний, расположенной по некоторому фиксированному адресу (Приложение рис 1) . Чтобы упростить аппаратную часть системы прерываний, этот адрес обычно располагается либо в начале, либо в конце адресного пространства программной памяти. Поскольку для обработки ВСЕХ прерываний используется только ОДНА точка входа, то такая система прерываний получила название одноуровневой. В такой системе выявление источника прерываний путем опроса состояния флажков признаков прерываний в начале программы обработки прерываний. При обнаружении установленного флажка происходит переход к соответствующему участку процедуры. Чем больше возможных источников прерываний, тем больше времени необходимо для обнаружения источника прерывания. Такой метод обнаружения источника прерывания называется программным опросом  или поллингом (polling). Его недостатком является довольно большое время, затрачиваемое на поиск источника прерывания и, как следствие, замедленная реакция системы на внешние события. Его достоинство – простота реализации системы прерываний.

 

 

 

 

 

    1. Векторные прерывания

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

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

PIC vs. AVR vs. MSP vs mcs51. В контроллерах PIC16 реализована одноуровневая система прерывания. При возникновении прерывания, процессор переходит по адресу 0x0004 (точка входа по прерыванию). Далее, после контекстного сохранения регистров, выполняется программный опрос признаков прерываний (поллинг). Нужно также отметить, что при обнаружении источника прерывания требуется сбросить соответствующий установленный флажок запроса на прерывания.

В семействе PIC18 используется как одноуровневая (в режиме совместимости с PIC16), так и двухуровневая система прерываний. В режиме совместимости при возникновении прерывания процессор переходит к процедуре обработки прерывания по адресу 0x000008 и далее все происходит аналогично PIC16. При двухуровневой системе прерывания имеются два вектора перехода 0x000008 и 0x000018.  Присвоение уровня каждому из имеющихся источников прерывания задается программным путем, с помощью соответствующих признаков. Способ организации системы прерывания (одно- или двухуровневая) также определяется значением соответствующего разряда в регистре управления прерываниями.

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

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

В контроллерах семейства mcs51 система прерываний также является векторной, но для вектора прерывания зарезервирован довольно большой объем памяти (8 байт), что иногда бывает достаточно для его обработчика. Флаги прерывания сбрасываются автоматически при переходе к обработчику прерываний, если у прерывания возможен только один источник и несбрасываются если у прерывания может быть два и более источников. В последнем случае необходимо программно сбросить флаг вызвавший прерывание после выяснения причины прерывания (поллинга). Вектора располагаются в начальных адресах программной памяти.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    1. Приоритетные прерывания

Обычно, значимость тех или иных событий в системе неодинакова. Одни события более важны и требуют немедленной реакции, другие менее важны, и с ответом на них можно подождать. Естественно, что и соответствующие этим событиям прерывания должны иметь разный приоритет. (Приложение рис 2) При одновременном возникновении нескольких прерываний, процессор должен перейти к обработке прерывания, имеющего более высокий приоритет. Этот процесс происходит на аппаратном уровне ядра процессора и называется последовательностью опроса прерываний (interrupt polling sequence).

PIC vs. AVR vs MSP vs. mcs51. В семействе PIC16 приоритет опроса того или иного прерывания определяется очередностью опроса соответствующего флажка прерывания. Приоритет опроса прерывания будет выше у тех прерываний, у которых флажки запросов на прерывания будут опрашиваться в первую очередь. Порядок опроса флажков признаков прерывания целиком определяется программой обработки прерывания и может быть изменен при ее изменении.

В контроллерах PIC18 при двухуровневой системе прерывания более высокий уровень приоритета  имеют прерывания с вектором 0x000008. В пределах одного уровня приоритетность прерывания определяется программно, так же как и у PIC16.

В семействе AVR приоритета опроса жестко фиксирован и не может быть изменен. Чем меньше адрес вектора прерывания, тем выше уровень опроса прерывания ему соответствующего.

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

В семействе mcs51 приоритет опроса полностью анологичен контроллерам семейства AVR.

    1. Вложенные прерывания

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

PIC vs. AVR. В семействе PIC16 процедура обработки любого прерывания начинается с одного и того же адреса и реализовать вложенные прерывания крайне затруднительно, если это вообще возможно.

В контроллерах PIC18 при двухуровневой системе прерывания возможно прерывание процедур прерывания с низким уровнем приоритета прерываниями, имеющими более высокий уровень.

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

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

В семействе mcs51 аппаратно предусмотрена возможность вложенных прерываний. Для этого каждому типу прерывания может быть задан уровень приоритета high и прерывание с данным уровнем может прервать обработку другого прерывания с уровнем приоритета low. Приоритеты внутри одного уровня приоритета располагаются согласно последовательности опроса прерываний (interrupt polling sequence).

 

Заключение:

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

Использование прерываний позволяет наиболее эффективно организовать работу компьютера, поскольку время центрального процессора не расходуется вхолостую на ожидание. Устройства, управляемые на основе прерываний, позволяют операционной системе максимально полно использовать процессор. Без прерываний невозможно понять работу резидентных программ или драйверов устройств.

Система прерываний - это совокупность программных  и аппаратных средств, реализующих  механизм прерываний.

Информация о работе Системы прерывания - основа организации вычислительного процесса