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

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

Перехват прерываний

Работа сделанна в 2000 году

Перехват прерываний - Курсовой Проект, раздел Программирование, - 2000 год - Системы программирования и операционные системы Перехват Прерываний. В Архитектуре Процессоров 80Х86 Предусмотрены Особые Слу...

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

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

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

Ввиду того, что обработчики прерываний и исключений в DOS обычно не различают механизм вызова, с помощью команды INT можно передавать управление, как на обработчики прерываний, так и исключений. Как показано в главе 4, программные прерывания, то есть передача управления при помощи команды INT, являются основным средством вызова процедур DOS и BIOS, потому что в отличие от вызова через команду CALL здесь не нужно знать адреса вызываемой процедуры - достаточно только номера.

С другой стороны интерфейса рассмотрим, как строится обработчик программного прерывания. 2.5. Обработчики прерываний Когда в реальном режиме выполняется команда INT, управление передается по адресу, который считывается из специального массива, таблицы векторов прерываний, начинающегося в памяти по адресу 0000h0000h. Каждый элемент такого массива представляет собой дальний адрес обработчика прерывания в формате сегментсмещение или 4 нулевых байта, если обработчик не установлен.

Команда INT помещает в стек регистр флагов и дальний адрес возврата, поэтому, чтобы завершить обработчик, надо выполнить команды popf и retf или одну команду iret, которая в реальном режиме полностью им аналогична. После того как обработчик написан, следующий шаг - привязка его к выбранному номеру прерывания.

Это можно сделать, прямо записав его адрес в таблицу векторов прерываний. Хотя прямое изменение таблицы векторов прерываний и кажется достаточно удобным, все-таки это не лучший подход к установке обработчика прерывания, и пользоваться им следует только в исключительных случаях, например, внутри обработчиков прерываний. Для обычных программ DOS предоставляет две системные функции 25h и 35h - установить и считать адрес обработчика прерывания, которые и рекомендуются к использованию в обычных условиях.

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

Всего на персональных компьютерах используется 15 аппаратных прерываний, хотя теоретически возможности архитектуры позволяют довести их число до 64. IRQ1 INT 9 - прерывание клавиатуры, вызывается при каждом нажатии и отпускании клавиши на клавиатуре. Стандартный обработчик этого прерывания выполняет довольно много функций, начиная с перезагрузки по Ctrl-Alt-Del и заканчивая помещением кода клавиши в буфер клавиатуры BIOS. Самые полезные для программ аппаратные прерывания прерывания системного таймера и клавиатуры.

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

Разумеется, обработка прерываний не должна занимать много времени если прерывание происходит достаточно часто например, прерывание последовательного порта может происходить 28 800 раз в секунду, его обработчик обязательно должен выполняться за более короткое время. Если, например, обработчик прерывания таймера будет выполняться 132,4 секунды, то есть половину времени между прерываниями, вся система станет работать в два раза медленнее.

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

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

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

Системы программирования и операционные системы

Обработчик должен иметь механизм выгрузки из оперативной памяти встроенный в него самого. Также программа должна иметь защиту от повторной установки в оперативную… Такие программы носят названия программ, резидентных в памяти Terminate and Stay Resident, TSR, или просто резидентных…

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

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

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

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

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

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

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

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

Описание для пользователя
Описание для пользователя. Приведнная ниже программа осуществляет перехват прерывания от клавиатуры, и производит запись скэн-кодов клавиш и байта флагов клавиатуры в файл с именем scodef.txt. При

Описание для программиста
Описание для программиста. Программа пишется в формате СОМ, поэтому в ней предусматривается только один сегмент, с котором связываются сегментные регистры CS и DS в начале сегмента резервируется 25

Рекомендации по улучшению
Рекомендации по улучшению. Главным недостатком этой программы является неудобное визуальное восприятие записей в файле. Т.е. мы видим не ASCII-код который образовался в результате нажатия кл

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