Автор работы: Пользователь скрыл имя, 15 Декабря 2010 в 22:24, курсовая работа
Компьютер должен обладать способностью реагировать на события, происходящие вне его микропроцессора, например, воспринимать информацию, вводимую с клавиатуры.
Существует два способа организации такой реакции. Один способ состоит в постоянном ожидании события. Такой способ называется "сканированием" или "опросом", и такой опрос может занимать большую часть времени компьютера. Другой способ позволяет компьютеру спокойно выполнять свою работу, пока не произойдет событие, требующее его внимания. Такой подход называется использованием "прерываний". Прерывания и исключения — такие ситуации в операционной системе, в которых нормальный поток выполнения кода процессором прерывается. Эти ситуации обнаруживаются как программным, так и аппаратным обеспечением.
•Введение………………………………………………………………….3
•1. Общий механизм прерываний………………………………………..4
•2. Классификация прерываний………………………………………….8
2.1. Виды прерываний…………………………………………….8
2.2.Уровни запросов программных прерываний………………..9
2.3. Предопределенные IRQL……………………………………11
2.4. Общая классификация прерываний………………………...12
•3. Средства системы прерываний………………………………………14
3.1. Аппаратные средства системы прерываний………………..14
3.2. Программные средства системы прерываний ………..……14
3.3. Обработка прерывания в реальном режиме ………………..15
3.4. Обработка прерываний в защищенном режиме …..………. 17
3.5. Классификация прерываний в защищенном режиме………18
3.6. Диспетчеризация прерываний……………………………….20
3.7. Обработка аппаратных прерываний…………………………20
3.8. Таблица дескрипторов прерываний IDT…………………….23
3.9. Особенности таблицы IDT……………………………………24
3.10. Обобщенная схема обработки прерывания в защищенном режиме………………………………………………………………25
•Вывод………………………………………………………………………29
•Библиографический список………………………………………………31
Федеральное агентство общего и профессионального образования РФ
Тульский государственный университет
Кафедра
автоматики и телемеханики
Контрольно-курсовая работа по дисциплине: «Операционные системы»
на тему:
«Система
прерываний Windows 2000»
Выполнил
Проверил
Тула 2009
Содержание
2.1. Виды прерываний…………………………………………….8
2.2.Уровни запросов программных прерываний………………..9
2.3. Предопределенные IRQL……………………………………11
2.4. Общая
классификация прерываний………………
3.1. Аппаратные
средства системы прерываний………
3.2. Программные средства системы прерываний ………..……14
3.3. Обработка прерывания в реальном режиме ………………..15
3.4. Обработка прерываний в защищенном режиме …..………. 17
3.5. Классификация
прерываний в защищенном
3.6. Диспетчеризация прерываний……………………………….20
3.7. Обработка аппаратных прерываний…………………………20
3.8. Таблица
дескрипторов прерываний IDT………
3.9. Особенности таблицы IDT……………………………………24
3.10. Обобщенная
схема обработки прерывания в
защищенном режиме…………………………………
Введение
Компьютер должен обладать способностью
реагировать на события, происходящие
вне его микропроцессора, например,
воспринимать информацию, вводимую с клавиатуры.
Существует два способа организации такой
реакции. Один способ состоит в постоянном
ожидании события. Такой способ называется
"сканированием" или "опросом",
и такой опрос может занимать
большую часть времени компьютера.
Другой способ позволяет компьютеру спокойно
выполнять свою работу, пока не
произойдет событие, требующее его
внимания. Такой подход называется использованием
"прерываний". Прерывания и исключения
— такие ситуации в операционной системе,
в которых нормальный поток выполнения
кода процессором прерывается. Эти ситуации
обнаруживаются как программным, так и
аппаратным обеспечением.
Использование прерываний позволяет наиболее
эффективно организовать работу компьютера,
поскольку время центрального процессора
не расходуется вхолостую на ожидание.
Устройства, управляемые на основе прерываний,
позволяют операционной системе максимально
полно использовать процессор, совмещая
основную обработку с обслуживанием ввода-вывода.
Выдав запрос на ввод-вывод, поток может
заняться другой работой, пока устройство
выполняет запрошенную операцию. Закончив,
устройство генерирует прерывание, и процессор
переключается на обслуживание этого
устройства. Прерываниями управляются,
как правило, координатные устройства,
принтеры, клавиатуры, дисковые устройства
и сетевые платы.
1.
Общий механизм прерываний
Прерывание - это кратковременное приостановка текущей процедуры программы, позволяющая выполнить другую процедуру. После завершения прерывания прерванная программа продолжает выполняться так, как будто бы ничего не происходило. Эти две процедуры могут быть несвязанными - и прерывание не окажет никакого воздействия на прерванную процедуру. Они могут быть взаимозависимы - прерванная программа может быть модифицирована процедурой обработки прерывания. Прерывание может быть вызвано внешним по отношению к выполняемой программе событием или в результате действий самой программы. Прерывание может быть вызвано аппаратно или командой из программы.
Механизм прерывания работает следующим образом: каждому из основных типов прерываний присвоен свой номер. Например, прерывание таймера имеет номер 8, гибкие диски, используют номер 14. В самом начале оперативной памяти хранится таблица с адресами программ, которые должны вызываться при возникновении различных прерываний. Эти адреса иногда называются векторами прерываний. Прерывание с номером 0 имеет вектор, хранящийся в ячейке с нулевым адресом, прерывание 1 имеет свой вектор в ячейке 4 и так далее. Когда происходит прерывание номер "X", вектор, хранящийся по адресу 4*X, загружается в регистры адреса программы, т.е., регистры CS и IP, и компьютер начинает выполнять программу обслуживания прерывания, которая размещается по этому адресу.
Когда обработка прерывания заканчивается, программа обработки возвращает управление программе, которая выполнялась в момент возникновения прерывания, с помощью специальной команды IRET или "возврат из прерывания". Чтобы такой возврат мог быть выполнен, необходимо сохранить в стеке текущие адреса программы до загрузки в регистры CS и IP вектора прерывания.
В компьютере IBM/PC имеется 256 различных прерываний, с номерами от 0 до 0хff. Для хранения их адресов зарезервирована память с адресами от 0 до 0х400.
Некоторые из прерываний определены для использования процессором. Например, прерывание 0 возникает при делении на 0. Другие определены для вызова функций BIOS, третьи - для использования DOS.
Иногда бывает необходимо, чтобы работа процессора не прерывалась, например, при выполнении какой-либо критической операции. Для этого у микропроцессора имеется специальная команда, которая позволяет отложить обслуживание прерываний, запоминая их, и парная ей команда, восстанавливающая нормальный режим обслуживания прерываний. Когда прерывания запрещаются, запрос прерываний не теряется, он запоминается, и будет обслуживаться, как только будут разрешены прерывания.
Обычно прерывания не запрещаются на сколько-нибудь продолжительное время. Прерывания допустимо запрещать лишь на очень короткие промежутки времени, необходимые для выполнения некоторых внутренних операций процессора, состоящих из небольшого числа команд. Типичным примером таких операций, которые не могут быть прерваны на полпути, может служить загрузка нового набора значений в регистры сегментов. Поскольку эти регистры необходимы для правильной работы любой программы, нарушение согласованности загрузки в них значений может привести к полной неразберихе, поэтому необходимо запретить прерывания на время загрузки в них новых адресов.
Существуют три типа прерываний, которые получили названия аппаратных, логических и программных. Между ними нет принципиальной разницы, но использование разделяет их на три отдельных категории.
Аппаратные прерывания вырабатываются устройствами, требующими внимания процессора. Таких прерываний несколько. Во-первых, имеется так называемое немаскируемое прерывание, используемое для сообщения об отказе питания, оно имеет номер 2. Далее, прерывание 8 используется таймером, номер 9 - клавиатурой и 14 - контролером гибких дисков.
Имеется также семь зарезервированных номеров прерываний, 6, 7, с 10 по 13 и 15, которые могут быть использованы в дальнейшем, если возникнет необходимость в дополнительных аппаратных прерываниях. Два из этих семи прерываний уже нашли свое назначение, прерывание 12 зарезервировано для адаптера связи, а прерывание 15 - для интерфейса устройства печати.
Логические прерывания формируются самим процессором, когда он встречает какое-либо необычное условие. Таких прерываний предусмотрено четыре. Прерывание 0 возникает при попытке деления на ноль. Прерывание 1 используется для управления пошаговым режимом работы микропроцессора, при котором команды выполняются по одной. Это прерывание выставляется отладчиками для пошагового выполнения программ. Прерывание 3 вырабатывается командой установки "контрольных точек", которая также используется при отладке. Прерывание 4 формируется при возникновении условия переполнения, например, если результат арифметической операции не помещается в регистр. Таким образом, четыре логических прерывания распадаются на две пары: одна для арифметических операций (деление на ноль и переполнение) и вторая для отладки программ (шаговый режим и контрольные точки).
Программы прерывания вызываются как процедуры другими программами. Для вызова процедуры программа должна знать ее адрес, а вызываемая процедура может не знать адреса вызывающей программы, поскольку механизм вызова автоматически генерирует адрес возврата, который будет использован вызываемой программой после завершения ее выполнения.
Программные прерывания обеспечивают такую возможность путем выработки прерывания самой программой. Например, если программе необходимо вычислить время дня, ей совершенно не требуется знать адрес программы подсчета времени - достаточно знать только, что программа подсчета времени дня запускается программным прерыванием 26.
Программные
прерывания используются для вызова
всех служебных функций, представляемых
обычным пользователям. Эти функции
включают все процедуры системы BIOS и ПЗУ
и служебные процедуры DOS.
2.
Классификация прерываний
2.1.
Виды прерываний
В зависимости от источника, прерывания делятся на:
· аппаратные - возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клавиатура, системные часы, клавиатура, жесткий диск и т.д.), по времени возникновения эти прерывания асинхронны, т.е. происходят в случайные моменты времени. При аппаратном прерывании или исключении процессор записывает статусную информацию, необходимую для возврата к исходной точке в потоке управления и продолжает выполнение команд так, будто ничего не произошло. Для этого процессор создает в стеке ядра прерванного потока фрейм ловушки (trap frame), в котором сохраняет информацию о состоянии выполняемого потока, фрейм ловушки обычно является подмножеством полного контекста потока.
Например, исключение «bus error» (ошибка шины) возникает из-за аппаратной ошибки.
· программные - вызываются искусственно с помощью соответствующей команды из программы, предназначены для выполнения некоторых действий операционной системы. Программное прерывание ядро обрабатывает либо
при обработке аппаратного прерывания, либо синхронно — при вызове по-
током функции
ядра, относящейся к данному
·
исключения - являются реакцией микропроцессора
на нестандартную ситуацию, возникшую
внутри микропроцессора во время выполнения
некоторой команды программы (например,
деление на ноль, прерывание по флагу TF
(трассировка)).
2.2.Уровни
запросов программных
прерываний
Хотя контроллеры прерываний различают уровни приоритетов прерываний,
Windows 2000
использует свою схему