Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения


Скачать 1.73 Mb.
Название Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения
страница 9/15
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
1   ...   5   6   7   8   9   10   11   12   ...   15

Система прерываний 32-разрядных микропроцессоров i80x86.

Работа системы прерываний в реальном режиме

 

Вопросы

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

  2. 2.   Классификация прерываний

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

  •       Аппаратные средства

  •       Программные средства системы прерываний

  •       Таблица векторов прерываний

  1. 4.   Обработка прерывания в реальном режиме

 

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

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

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

Адрес программы-обработчика прерывания вычисляется по таблице векторов прерываний.

Механизм прерываний поддерживается на аппаратном уровне.

 

Классификация прерываний

В зависимости от источника, прерывания делятся на

  •       аппаратные - возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клавиатура, системные часы, клавиатура, жесткий диск и т.д.), по времени возникновения эти прерывания асинхронны, т.е. происходят в случайные моменты времени;

  •       программные - вызываются искусственно с помощью соответствующей команды из программы (int), предназначены для выполнения некоторых действий операционной системы, являются синхронными;

  •       исключения - являются реакцией микропроцессора на нестандартную ситуацию, возникшую внутри микропроцессора во время выполнения некоторой команды программы (деление на ноль, прерывание по флагу TF (трассировка)).

 

Общая классификация прерываний

  •       внешние - вызываются внешними по отношению к микропроцессору событиями

(по существу - это группа аппаратных прерываний) Вложенных прерываний нет!

  •       внутренние - возникают внутри микропроцессора во время вычислительного процесса (по существу - это исключительные ситуации и программные прерывания).

 

 

Внешние прерывания возникают по сигналу какого-нибудь внешнего устройства.

Внешние прерывания подразделяются на не­маскируемые и маскируемые.

В связи с тем, что существуют два специальных внешних сигнала среди входных сигналов процес­сора, при помощи которых можно прервать выполнение текущей программы и тем самым переключить работу центрального процессора. Это сигналы NMI (no mask interrupt, немаскируемое прерывание) и INTR (interrupt request, запрос на прерывание).

 

Маскируемые прерывания генерируются контроллером прерываний по заявке определенных периферийных устройств. Контроллер прерываний (выполнен в виде специальной микросхемы i8259A) поддерживает восемь уровней (линий) приоритета; к каждому уровню “привязано” одно периферийное устройство. Именно маскируемые прерывания часто называют аппаратными прерываниями.

В ПК, начиная с IBM PC AT, построенных на базе микропроцессора i80286, используются два контроллера прерываний i8259A; они соединяются последователь­но каскадным образом, что увеличивает количество внешних источников прерываний до 15 (каждая по 8).

Обратим внимание. Микросхема i8259А является программируемой.

 

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

 

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

 

Система прерываний. Аппаратные и программные средства системы прерываний

 

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

 

К аппаратным средствам системы прерываний относятся:

  •       выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI)

  •       INTR - вывод для входного сигнала запроса на прерывание,

  •       NMI - вывод для входного сигнала немаскируемого прерывания

  •       INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы конроллера 8259А;

  •       программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; обычно используют две последовательно соединенные микросхемы, поэтому кол-во возможных источников внешних прерываний до 15 плюс одно немаскируемое прер.; именно он формирует номер вектора прерывания и выдает его шину данных);

  •       внешние устройства (таймер, клавиатура, магнитные диски и т.п.)

 

 

К программным средствам системы прерываний Реального режима относятся:

  •       таблица векторов прерываний.

Занимает первый килобайт ОП (адреса 00000h-003FFh).

Она содержит адреса (векторы - «векторы», т.к. два значения для указания адреса) обработчиков прерываний и состоит из 256 (0..255) элементов по 4 байта каждый:

- 2 байта - новое значение для регистра IP

- 2 байта - новое значение для регистра CS.

Расположение таблицы векторов прерываний в процессорах i80286 и старше определяется значением регистра IDTR.

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

Каждый вектор имеет свой номер и называется номером прерывания.

  •       два флага в регистре флагов flags/eflags:

  •       IF (Interrupt Flag) - флаг прерывания. Предназначен для маскирования (запрещения) аппаратных прерываний. Если IF=1, микропроцессор обрабатывает внешние прерывания, если = 0, то игнорирует;

  •       TF(Trace Flag) - флаг трассировки. Если он=1, то микропроцессор переходит в режим покомандной работы. В этом режиме в микропроцессоре генерируется внутреннее прерывание с номером 1;

  •       машинные команды микропроцессора: int, into (прерывание по переполнению), iret, cli, sti

 

Обработка прерывания в реальном режиме

производится в три этапа:

  1. 1) прекращение выполнения текущей программы;

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

Обязательными для сохранения являются регистры cs, ip, flags (пара CS:IP содержит адрес команды, с которой необходимо начать выполнение после возврата, flags - состояние флагов после выполнения последней команды прерванной программы).

!!! Эти регистры сохраняются микропроцессором автоматически. Сохранение остальных регистров - должно обеспечиваться программистом !!!

 

Наиболее удобным местом хранения регистров является стек.

После сохранения регистров в стеке микропроцессор сбрасывает бит флага IF (т.е.=0) (!!! В стеке при этом записан регистр flags с еще установленным IF!!!) Этим предотвращается возможность возникновения вложенных внешних прерываний и порча регистров исходной программы вследствие неконтролируемых действий со стороны программы - обработчика вложенного прерывания. После того как необходимые действия по сохранению контекста завершены, обработчик аппаратного прерывания может разрешить вложенные прерывания командой sti.

 

  1. 2) переход к выполнению и выполнение программы обработки прерывания;

Здесь определяется источник прерывания и вызывается соответствующий обработчик прерывания.

В реальном режиме микропроцессора допускается 256 источников - по кол-ву элементов таблицы векторов прерываний.

Структура элемента:

  •       2 байта - значение смещения начала программы-обработчика прерывания от начала кодового сегмента

  •       2 байта - значение базового адреса сегмента, в котором находится программа-обработчик.

Как определить адрес, по которому находится вектор прерывания с номером N ?

смещение эл-та таблицы векторов прерываний = N * 4

Полный размер таблицы ? 4*256=1024

 

Итак на втором этапе микропроцессор

  1. 1.    По номеру источника прерывания определяет смещение в таблице векторов прерываний

  2. 2.    Помещает первые два байта в регистр IP

  3. 3.    Помещает вторые два байта в регистр CS

  4. 4.    Передыет управление по адресу CS:IP

Далее выполняется сама программа обработки прерывания.

(Она тоже может быть прервана поступлением запроса от более приоритетного источника. Все источники прерывания имеют приоритеты.)

 

3) возврат управления прерванной программе.

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

Последние команды в в обработчике прерывания - sti, iret

sti - разрешить аппаратные прерывания (устанавливает флаг IF=1, не имеет операндов).

iret - извлечь последовательно три слова из стека и поместить их соответственно в регистры ip, cs, flags.

 

 Лекция №13

Система прерываний 32-разрядных микропроцессоров i80x86.

Работа системы прерываний в защищенном режиме

 

Вопросы

  1. 1.    Отличия работы системы прерываний в защищенном режиме

  2. 2.    Классификация прерываний в защищенном режиме

  3. 3.    Таблица дескрипторов прерываний IDT

  4. 4.    Обобщенная схема обработки прерывания в защищенном режиме

  5. 5.    Шлюз ловушки

  6. 6.    Шлюз прерывания

  7. 7.    Шлюз задачи

  8. 8.    Резюме

 

 

Обработка прерываний в защищенном режиме отличается от обработки в реальном режиме так же сильно, как и защищенный режим отличается от реального.

Потому что:

  1. 1.    В защищенном режиме немного изменено распределение номеров векторов прерываний. (Можно самостоятельно посмотреть по таблицам, например, в книге Аssembler Юрова, Хорошенко на стр. 439-441)

  2. 2.    Принципиально иным является механизм обработки прерываний.

 

Классификация прерываний в защищенном режиме

 

Прерывания и исключения можно раз­делить на несколько групп:

  1. 1.    сбой;

  2. 2.    ловушка;

  3. 3.    аварийное завершение.

 

Это деление производится в соответствии со следующими признаками:

  •       какая информация сохраняется о месте возникновения прерывания (ис­ключения)?

  •       возможно ли возобновление прерванной программы?

Исходя из этих признаков, можно дать следующие характеристики вышепере­численным группам:

Сбой (ошибка) прерывание или исключение, при возникновении которо­го в стек записываются значения регистров cs: ip, указывающие на команду, вызвавшую данное прерывание. Это позволяет, получив доступ к сегменту кода, исправить ошибочную команду в обработчике прерывания и, вернув управление программе, фактически осуществить ее рестарт (вспомните, что в реальном режиме при возникновении прерывания в стеке всегда запоми­нается адрес команды, следующей за той, которая вызвала это прерывание).

Ловушка прерывание или исключение, при возникновении которого в стек записываются значения регистров cs: ip, указывающие на команду, сле­дующую за командой, вызвавшей данное прерывание.

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

Механизм ловушек похож на механизм прерываний в реальном режиме, хотя не во всем. Здесь есть один тонкий момент. Если пре­рывание типа ловушки возникло в команде передачи управления jmp, то со­держимое пары cs: ip в стеке будет отражать результат этого перехода, то есть соответствовать команде назначения.

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

 

Þ соответствующие программы-обработчики ошибок, ловушек и аварий будут отличаться алгоритмами работы.

 

Микропроцессор жестко определяет, какие прерывания являются ошибками, ловушками и авариями.

 

Замечания.

Для некоторых номеров прерываний в реальном режиме возможны 2 источника прерывания (развитие микропроцессоров).

Некоторые прерывания при своем воз­никновении дополнительно генерируют и записывают в стек так называемый код ошибки. Этот код может впоследствии использоваться для установления источника прерывания. Код ошибки записывается в стек вслед за содержимым регистров eflags, cs и eip.

Þ можно распознать истинный источник прерывания (если есть неоднозначность).

 

Таблица дескрипторов прерываний IDT

 

Вместо таблицы векторов прерываний система прерываний имеет дело с таблицей дескрипторов прерываний (IDT, interrupt descriptor table)

 

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

Элементами таблицы IDT являются дескрипторы - Размер дескриптора = 8 байтам.

(Т.е. формат таблицы IDT подобен формату GDT и LDT.)

Дескрипторы в таблице прерываний обычно называются шлюзами (иногда коммутаторами).

Шлюзы предназначены для указания точки входа в программу обработки пре­рывания.

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

  •       шлюз ловушки;

  •       шлюз прерывания;

  •       шлюз задачи.

Физически микропроцессор отличает шлюзы по со­держимому полей.

 

Особенности таблицы IDT:

  •      нулевой дескриптор используется для описания шлюза для программы обработки исключительной ситуации 0 (ошибка деления);

(в таблице GDT отсутствует)

  •      дескрипторы в таблице IDT строго упорядочены в соответствии с номерами прерываний.

В таблицах GDT и LDT порядок описания дес­крипторов роли не играет, хотя и допускается наличие некоторых соглаше­ний по их упорядоченности;

  •      размерность таблицы IDT — не более 256 элементов размером по восемь байт, по числу возможных источников прерываний.

В отдельных случаях есть смысл описывать все 256 дескрипторов этой таблицы, формируя для неиспользуемых номеров прерываний шлюзы-заглушки. Это позволит кор­ректно обрабатывать все прерывания, даже если они и не планируются к использованию в данной задаче. Если этого не сделать, то при незапланированном прерывании с номером, превышающим пределы IDT для данной зада­чи, будет возникать исключительная ситуация общей защиты (с номером 13 (ODh)).

 

Адрес и длина таблицы IDT содержатся в регистре idtr.

Заметим, что в реальном режи­ме регистр idtr также содержит адрес таблицы прерываний, но при этом каждый вектор занимает 4 байта и содержит 32-разрядный адрес в формате CS:IP. Начальное значение этого регистра равно нулю, но внего можно занести и другое значение.

!Þ Возможно произвольное размещение в памяти этой таблицы не только в за­щищенном режиме, но и реальном.

 

В защищенном режиме произвести загрузку регистра idtr может только код с максимальным уровнем привилегий.

!  

Доступ к таблице IDT со стороны пользовательских (прикладных) программ невозможен.

 
1   ...   5   6   7   8   9   10   11   12   ...   15

Похожие:

Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Техническое задание на разработку программного обеспечения, используемого...
Государственное образовательное учреждение высшего профессионального образования Академия народного хозяйства
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Инструкция по установке программного обеспечения ас «Поликлиника»
«Поликлиника» поставляется в виде исполняемых модулей и дополнительного программного обеспечения сторонних производителей на компакт-диске....
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Инструкция программное обеспечение для лазерного гравера Qualitech rdca 0
Система управления лазерным гравером включает в себя материнскую плату, lcd дисплей и программное обеспечение. Данная инструкция...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon 1. Коммерческие условия поставки программного обеспечения
Программное обеспечение Adobe, графические и видео редакторы, издательские системы, средства web-разработки 6
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon 1. Коммерческие условия поставки программного обеспечения
Программное обеспечение Adobe, графические и видео редакторы, издательские системы, средства web-разработки 7
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Техническое задание Предмет закупки: продление лицензий
Программное обеспечение для защиты рабочих мест пользователей от вредоносного программного обеспечения
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Лекция 1
Молчанов А. Ю. Системное программное обеспечение. Лабораторный практикум: – спб.: Питер, 2005. – 284 с
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Вопросы для подготовки к экзамену по профессиональному модулю пм....
Дисциплины: мдк. 09. 01 Установка и настройка системного программного обеспечения компьютерных систем и комплексов
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon 2 2 Ключевые вопросы сопровождения программного обеспечения 152
Программная инженерия и сущность инженерного подхода к созданию программного обеспечения 9
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Задачах программирования лабораторный практикум по дисциплине «Системное...
Методические указания предназначены для подготовки дипломированных специалистов направления 230100 «Информатика и вычислительная...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Порядок действий при утрате/повреждении ключа шифрования программного обеспечения ViPNet Client
Рением «. dst») программного обеспечения ViPNet Client производится в случае утраты ключевого носителя с записанным ключом шифрования...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Методические рекомендации по выполнению внеаудиторной самостоятельной...
ПМ. 01 Разработка программных модулей программного обеспечения для компьютерных систем
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Расчетов за услуги связи «Fastcom» версия 12 Руководство системного...
Бпо – Базовое программное обеспечение программное обеспечение фирмы oracle, необходимое для функционирования ппо

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск