Курсовая работа: Организация прерываний и прямого доступа к памяти в вычислительных системах, распределение ресурсов, технология Plug and Play. Министерство образования и науки РФФедеральное агентство по образованию. Государственное образовательное учреждение высшего профессионального образования. Иркутский государственный технический университет. Курсовая работапо Организации ЭВМ«Организация прерываний и прямого доступа к памяти в вычислительных системах, распределение ресурсов, технология Plug and Play»Выполнил: студент группы. Проверил: преподаватель. Иркутск 2. 01. 0г.
- Курсовая работа [182,4 K], добавлен 24.06.2009 Драйвер клавиатуры, реализующий функции музыкального синтезатора на клавиатуре для Windows.
- Драйвер клавиатуры, реализующий функции музыкального синтезатора на клавиатуре для Windows NT 5. При выполнении курсового проекта была проделана следующая работа: · Изучена структура драйверов модели WDM и WDF.
- К курсовой работе на тему: Драйвер клавиатуры, реализующий функции музыкального синтезатора на клавиатуре для Windows NT 5. В рамках данного курсового проекта реализован драйвер-фильтр и программа, которая управляет работой драйвера..
РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА. к курсовой работе на тему: Драйвер клавиатуры, реализующий функции музыкального синтезатора на клавиатуре для Windows NT 5.. Функциональные драйверы - драйверы, реализующие все операции, необходимые для поддержки работы.Включение и выключение режима расширения клавиатуры по нажатию заданной клавиши. При выполнении курсового проекта была проделана следующая работа. Курсовая работа в виде отпечатанного материала, сброшюрованная и подписанная студентом, Контроллер клавиатуры. представляющее микропрограммный автомат, реализующий различные варианты асинхронного. Финогенов К.Г. Основы разработки прикладных виртуальных драйверов. Скачать работу " Драйвер клавиатуры, реализующий функции музыкального синтезатора на клавиатуре для Windows NT 5" ( курсовая работа).
Содержание. 1. Прерывания и исключения. Основные принципы организации системы прерываний. Аппаратные средства системы прерываний Системный контроллер PIC (Programmable Interrupt Controller)4.
Обработка прерываний на основе контроллера 8. A5. Контроллер прерываний APIC (Advanced Programmable Interrupt Controller)6. Режим прямого доступа к памяти.
Распределение ресурсов, технология Plug and Play. Список литературы. Прерывания и исключения. Чтобы обработать запросы от внешних устройств, сообщить об ошибках или исключительных обстоятельствах необходимо прервать выполнение текущей программы и осуществить некоторые необходимые в данной ситуации действия.
Чем отличаются прерывания и исключения. Различия между прерываниями и исключениями состоят в том, что прерывания предназначены для обработки запросов от внешних устройств, а исключения для обработки ошибок, возникающих при выполнении команд. Программные прерывания также относятся к исключениям. С помощью команды INT n ( где n - номер прерывания) можно выполнить прерывание с любым номером в диапазоне от 0 до 2. Номера 0.. 3. 1 зарезервированы фирмой Intel для исключений. Прерывания, произведенные оборудованием, выполняются после выполнения текущей команды и происходят в результате каких- то внешних асинхронных (не связанных с текущим процессом) событий, нажатие клавиши, например.
После того, как программа обработки прерываний заканчивает обслуживание прерывания, выполнение прерванной программы продолжается с команды, которая следует сразу за командой, после которой произошло прерывание. Исключения классифицируются как ошибки, ловушки или прекращения (преждевременное прекращение выполнения программы). Источниками исключений являются три типа событий: генерируемые программой исключения, позволяющие программе контролировать определенные условия в заданных точках программы (INT0 - проверка на переполнение, INT3 - контрольная точка, BOUND - проверка границ массива); исключения машинного контроля, возникающие в процессе контроля операций внутри чипа и транзакций на шине процессора (справедливо для процессора Pentium 4); обнаруженные процессором ошибки в программе (деление на ноль, нарушение правил защиты, отсутствие страницы и т. Ошибки - это исключения, которые обнаруживаются и выполняются до выполнения команды содержащей ошибку.
Например, ошибка возникает в системе виртуальной памяти, когда процессор ссылается на страницу или сегмент, которые отсутствуют в оперативной памяти. Операционная система выберет страницу или сегмент с диска и разместит его в оперативной памяти, после чего процессор выполнит команду. Ловушки- это исключения, о которых сообщается немедленно после выполнения той команды, которая вызывает исключение (произведенное действие уже не исправить). Прекращения - это исключения, которые не позволяют определить точно команду, вызвавшую исключение.
Прекращения используются для сообщения о грубых ошибках, таких как аппаратная ошибка, неправильные значения в системных таблицах. В остальных случаях адрес возврата в текущую программу из программы, обрабатывающей исключение всегда укажет на команду, которая вызвала исключение. Все возможные прерывания сводятся в специальную таблицу ( до 2. В таблице каждому прерыванию или исключению сопоставляется вектор прерывания- это указатель на соответствующую программу обслуживания (вектор позволяет найти адрес программы, обрабатывающей прерывание).
Программные прерывания. Команда INT n в выполняемой программе заставляет процессор выполнять программу обслуживания, на которую указывает вектор n в таблице прерываний. Современные программы оперируют с преобразованными адресами памяти и программы прерывания служат обычно единственным средством для выхода из программы в операционную систему. Программные прерывания могут использоваться для доступа к сервисам операционной системы (например, INT $2. DOS, INT $8. 0 - сервисы Linux), функциям драйверов устройств (например, INT $3. INT $1. 0 - видео- сервис BIOS, INT $3. DPMI- сервис), INT $6.
EMS). Особым случаем программного прерывания INT с номером n является прерывание INT 3, или прерывание останова. Путем ввода данной команды в программу, пользователь имеет возможность устанавливать точки останова, как инструмент отладки программы. Еще один тип программного прерывания, применяемого при отладке, - прерывание пошагового режима.
Маскируемые прерывания. Маскируемые прерывания - наиболее общий способ ответа на асинхронные внешние сигналы от аппаратуры. Такое прерывание может быть разрешено или запрещено. Аппаратное прерывание разрешено тогда, когда бит флага прерываний разблокирован (установлен в 1). Процессор обслуживает разрешенное маскируемое прерывание только после выполнения текущей команды.
Он читает вектор прерывания, аппаратно установленный на шине данных, и определяет адрес программы обработки прерывания. Бит флага прерывания в регистре флагов (регистре состояния) может сбрасываться, когда обслуживается прерывание. Это позволяет предотвратить дополнительное прерывание во время обслуживания первого прерывания. Если флаг прерывания установлен, возможно прерывание программы обработки текущего прерывания и обработка другого прерывания, т.
Приоритетность прерываний. Поскольку прерывания распознаются только после выполнения текущей команды, запросить прерывание может более чем один источник прерывания.
В этом случае прерывания будут обслуживаться согласно (уровню) приоритету. Например, пусть заданная команда вызывает системное прерывание отладки и исключение "сегмент отсутствует". Процессор сначала отреагирует на исключение "сегмент отсутствует" (1. Затем программа обработки исключения 1. Использование приоритетов прерываний позволяет системотехнику отлаживать свои собственные обработчики исключений.
Немаскируемые прерывания (NMI — Non- Maskable Interrrupt)Немаскируемые прерывания обеспечивают обслуживание прерываний очень высокого уровня. Одним из распространенных примеров немаскируемых (NMI ) прерываний может служить прерывание по сбою питания. Во время процедуры обслуживания немаскируемых прерываний процессор не будет обслуживать другие прерывания ( запрос NMI или INT), до тех пор, пока не будет выполнена команда возврата из прерывания (IRET). Флаг блокировки прерываний устанавливается в начале выполнения немаскируемого прерывания.
Если другое немаскируемое прерывание (NMI) произойдет во время обслуживания немаскируемого прерывания, запрос будет сохранен для его обработки после первой команды возврата из программы обработки текущего немаскируемого прерывания. Обработка прерываний. Когда происходит прерывание, происходят следующие действия. Во- первых, адрес текущей команды и регистр флагов сохраняются в стеке, что позволяет возобновить прерванную программу. Затем, по вектору, который определяет соответствующий элемент в таблице прерываний определяется начальный адрес программы обработки прерывания. Выполняется программа обработки. И наконец, после команды возврата из программы обработки прерывания (IRET) восстанавливается прежнее состояние процессора и по адресу возврата (по адресу сохраненному в стеке) возобновляется выполнение программы.
Основные принципы организации системы прерываний. Можно выделить следующие классы прерываний: Внутрипроцессорные прерывания, вызванные событиями, происходящими в самом процессоре.
Внутрисистемные прерывания, определяемые событиями в системных устройствах компьютера. Прерывания в выполняемой программе, возникающие при обращении к системе BIOS. Межпроцессорные прерывания в мультипроцессорных системах, когда один процессор прерывает работу другого, организуя обработку программы прерывания. Реализация режима прерывания включает следующие шаги: Идентификация источника прерывания; Сохранение текущего состояния прерываемой программы; Запрещение повторных прерываний от установленного источника прерывания; Выполнение программы обработки прерывания; Восстановление состояния прерванной программы и продолжение вычислений.
Для взаимодействия программ с устройствами предусматривается несколько способов: при помощи вызовов функций операционной системы (прерывания DOS, API Windows и т. BIOS); непосредственно взаимодействуя с портами и памятью внешних устройств или контроллеров интерфейсов этих устройств. Обычный одноядерный процессор может выполнять только один процесс, передавая управление от инструкции к инструкции согласно исполняемой программе. При этом могут исполняться переходы, ветвления и вызовы процедур, но вся последовательность действий запрограммирована разработчиком программы. Теперь рассмотрим случай, когда во время этого процесса случается асинхронное (не связанное с выполняемым процессом)событие, требующее реакции компьютера. Рассмотрим нажатие клавиши на клавиатуре. Клавиатура по нажатию (и по отпусканию) любой клавиши генерирует специальную посылку, содержащую код этого события (скан- код клавиши).
Контроллер клавиатуры, находящийся на системной плате, принимает этот код в свой внутренний регистр и сигнализирует об этом двумя способами: устанавливает флаг готовности (бит в регистре состояния, который может быть прочитан процессором по адресу определенного порта ввода) и генерирует сигнал запроса прерывания (сигнал IRQ1). Этот сигнал поступает на вход контроллера прерываний. Контроллер прерываний формирует сигнал запроса, поступающий на вход маскируемого прерывания процессора. Если у процессора маскируемые прерывания разрешены, то он запросит у контроллера номер вектора прерывания, соответствующего данному источнику прерывания.