Управление прерываниями
Определение, необходимость и использование прерываний. Сигналы, заставляющие ЭВМ изменить порядок выполнения потока команд. Отличие привилегий процесса и обработчика. Привилегированные команды доступные только ОС. Недостатки многократных прерываний.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лекция |
Язык | русский |
Дата добавления | 08.09.2013 |
Размер файла | 42,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Лекция
Управление прерываниями
1. Определение. Необходимость и использование прерываний. Типы прерываний
прерывание команда обработчик сигнал
Прерывание - сигнал, заставляющий ЭВМ изменить обычный порядок выполнения потока команд.
Вызов прерывания похож на вызов подпрограммы.
Отличия:
1) вызов прерывания скрыт от текущего процесса
2) чаще привилегии процесса и обработчика отличаются
Без использования прерываний при работе с ПУ (rolling - периодический опрос) при слишком частом или редком опросе возникают потери либо процессорного времени, либо ПУ времени. Прерывания не имеют такого недостатка.
Прерывания можно разделить на 2 класса:
внутренние
внешние
Внешние - (асинхронные) при I/O срабатывании, таймеры и т.д.
Внутренние возникают при внештатных ситуациях (переполнение, div 0, неверная команда и т.д.).
В некоторых ситуациях могут существовать привилегированные команды доступные только ОС. Доступ к ним можно получить при помощи программного вызова прерывания.
2. Процессорная обработка прерываний
Процесс можно разделить на 5 стадий:
Необходимость решить, когда нужно дисксировать прерывания:
Немедленно (без ожидания завершения текущей команды). Хорошо для критичных по времени событий.
Просто, но нехорошо. Может быть промежуточный вариант: часть так, часть иначе.
Запоминается состояние текущего процесса, которое определяется счетчиком команд, словом состояния машины, процессора и т.д. На некоторых ЭВМ они организуются аппаратно. Если нужно организовать сохранение больших объемов: часть аппаратно, а часть программно.
В счетчик команд заносить фиксированный адрес.
Выполнение обработчика.
Возобновление нормальной работы.
Обычно 3 первые шага реализуются аппаратно, а 4 и 5 програмно.
Обработчики могут быть самыми разными по сложности от установки флага события до повторного чтения данных с ВЗУ при ошибке. Некоторые прерывания должны обрабатываться быстро, поэтому их обработчики должны постоянно находится в ОЗУ. Если их размер велик или/и их много, то будет переход памяти. В этом случае обработчик делится на 2 части - резидентную и транзитную, которые на диске.
3. Многократные прерывания
Что делать, если срабатывают одновременно 2 прерывания, или во время обработки первого срабатывает второе. Существует 2 подхода:
исходя из определения нелогично прерывать обработчик для обработки для другого прерывания. Однако это нехорошо для критичных по времени обработчиков. Например, при обработке ошибке I/O можно многократно потерять информацию от системных часов.
Обработчик рассматривается как обычный процесс
Такие вложенные прерывания называют многократными. Здесь есть недостатки. Если при переходе по обработчику вся информация 2-й стадии предыдущего пункта сохранилась в стеке текущего процесса, он может переполниться и кроме того это “дыра” в системе защиты, позволяющая повысить свои привилегии. Поэтому данные при переходе сохраняются в специальной области памяти. Но для многократных прерываний каждый следующий обработчик будет затирать предыдущие данные.
В системе прерывания также применяется приоритет, на основании которого из несколько одновременно возникших прерываний выбирается одно. Они могут быть реализованы аппаратно, либо программно.
Видов прерываний может быть много, и выделять каждому из них свой приоритет, особенно когда многие из них похожи, нецелесообразно. Поэтому их объединяют в классы. Например: 1-й вызов программой ядра (ОС), 2-й программой прерываний, 3-й от таймера (прерывный таймер - аппаратный счетчик с занесением, с каждым тиком из него вычитается 1 и при 0 прерывается ), 4-й прерывание I/O. Приоритет понижается с ростом номера класса. В этом примере приоритет определяет PSP, который часто состоит из отдельных полей.
MODE - однобитовое поле, которое определяет в каком режиме находится процессор.
ID - идентификатор текущего процесса.
KODE - код прерывания, для каждого класса содержит свою интерпретацию (1-й номер запроса, 2-й номер ошибки, 4-й номер перифирийного устройства).
MASK - 4 бита (в нашем примере) каждый должен соответствовать одному классу прерывания. Если бит в 1 - прерывание данного класса не распознается. При этом MASK распознает приоритет. В пределах одного приоритета необходимо помнить о существовании других прерываний, особенно для данных обработки или обработки 2 го уровня. В этом случае обработчик может изменять маску.
4. Система прерываний в ПК IBM
Аппаратные Внутренние Программные
Маскируемые Немаскируемые
1-е обрабатывает 8259А NMI
Каждый контроллер обслуживает 8 маскируемых аппаратных прерываний. За каждым прерыванием закреплен свой вектор и приоритет:
INT8 - IRQ0
INT9 - IRQ1 клавиатура
INT0А - IRQ2 видеоадаптер
INT0В - IRQ3 COM2
INT0C - IRQ4 COM1
INT0D - IRQ5 HD1
INT0E - IRQ6 FD
INT0F - IRQ7 LPT1
В АТ прерывания включены каскадно:
INT70н - IRQ8 - RTC
INT70н - IRQ9
INT70н - IRQ10 резерв
INT70н - IRQ11
INT70н - IRQ12 мышь PS/2
INT70н - IRQ13 ошибка сопроцессора
INT70н - IRQ14 HD
INT70н - IRQ15 резерв
Все можно запретить CLI.
Кроме того можно замаскировать отдельные аппаратные прерывания IMR для Slave port -71H для Master -- 21H.
Приоритет и вектора прерываний можно изменять, программируя контроллер 8259А.
INT 2 -- от NMI (ЦП) запретить нельзя. Используется для отслеживания системных ошибок: сбой по питанию, сбой паритета памяти и т.д. иногда используется отладчиками.
Размещено на Allbest.ru
...Подобные документы
Изучение понятия, векторов и механизмов обработки прерываний; их классификация в зависимости от источника происхождения. Особенности реагирования аппаратной и программной частей операционной системы на сигналы о совершении некоторого события в компьютере.
реферат [995,8 K], добавлен 22.06.2011Принципы организации и особенности обработки прерываний на основе контроллера 8259A. Общая характеристика аппаратных средств системы прерываний PIC (Programmable Interrupt Controller). История разработки и порядок работы с технологией Plag and Play.
курсовая работа [305,1 K], добавлен 29.07.2010Обработка прерываний - сигналов о совершении некоторых событий в компьютере. Механизм обработки прерываний. Обработка исключений, описание реакции программы на ошибки выполнения. Общее понятие и виды исключительных ситуаций во время выполнения программы.
реферат [192,2 K], добавлен 10.11.2014Прерывание и его природа. Контролер прерываний. Обработка прерываний в реальном режиме. Характеристики реального режима работы микропроцессора. Схема обработки прерываний в реальном режиме. Написание собственного прерывания. Разработка в общем случае.
доклад [347,0 K], добавлен 22.09.2008Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.
курсовая работа [348,7 K], добавлен 22.12.2014Проектирование механизма обработки прерываний. Контроллер прерываний Intel 82C59A. Ввод-вывод по прерыванию. Программируемый контроллер интерфейса Intel 82C55A. Роль процессора в обработке прерывания ввода-вывода. Обзор алгоритма обработки прерывания.
контрольная работа [8,0 M], добавлен 19.05.2010Структура процессора Pentium, суперскалярность, основные особенности архитектуры. Организация конвейера команд, правила объединения. Дополнительные режимы работы процессора. Источники аппаратных прерываний. Формат ММХ команды. Процессор Pentium 4, схемы.
лекция [4,0 M], добавлен 14.12.2013Типы команд, синтаксис ассемблера и код операции, по которому транслируется команда. Команды вычисления и непосредственной пересылки данных между регистрами. Поле для определения операции вычисления. Управление последовательностью выполнения программы.
реферат [29,1 K], добавлен 13.11.2009Создание и компиляция программ на ассемблере. Структура программ, использование специальных директив резервирования и инициализации данных. Организация ввода-вывода на ассемблере и организация вычислений. Команды передачи управления и обработки строк.
методичка [104,8 K], добавлен 02.12.2009Написание алгоритма приема 10 пакетов по 12 байт из последовательного порта и размещение их в памяти PRAM. Создание управляющего блока PTSCB для режима блоковой передачи данных. Аппаратная обработка прерываний в режима аналого-цифрового сканирования.
практическая работа [2,0 M], добавлен 25.04.2012Генерация звука и обработка прерываний. Создание системы с использованием средств языка программирования Ассемблер. Установка и чтение таймера. Программирование микросхемы таймера 8253/8254. Максимальный программируемый интервал времени для системы.
реферат [21,4 K], добавлен 10.05.2011Организация центрального процессора. Подключение интерфейсных программируемых БИС. Методы адресации и примеры команд. Программирование таймера и контроллера прерываний. Программная модель микропроцессорной системы. Программирование на языке ассемблера.
реферат [82,6 K], добавлен 05.12.2010Исследование приемов управления работой печатающих устройств в MS-DOS. Изучение принципа действия матричного принтера, механизма печати литер, команд, позволяющих осуществить вывод символов на печать. Анализ реализации программных кодов на языке BASIC.
курсовая работа [825,7 K], добавлен 23.06.2011Архитектура микроконтроллеров семейства Mega. Организация памяти. Способы адресации памяти данных. Энергонезависимая память данных. Таблица векторов прерываний. Счетчик команд и выполнение программы. Абсолютный вызов подпрограммы. Сторожевой таймер.
дипломная работа [213,9 K], добавлен 02.04.2009Характеристика регистров памяти как устройств временного хранения данных. Различия между прерываниями и исключениями команд, их обработка. Вычисление производительности ЭВМ. Программа с использованием отложенного запуска команд. Виды компьютерных сетей.
контрольная работа [24,9 K], добавлен 09.11.2010Установка привилегий доступа определенного пользователя, виды привилегий и ключевые слова в операторе. Лишение пользователя права назначать привилегии. Структура данных и алгоритм, описание работы программы, имя пользователя, пароль и создание прав.
курсовая работа [207,2 K], добавлен 12.08.2011Изучение механизма работы программных инструментов как трудная часть отладочного процесса. Отладчики пользовательского режима, их основные типы. Автоматический запуск приложений в отладчике. Быстрые клавиши прерываний. Отладка ядра операционной системы.
реферат [260,0 K], добавлен 25.11.2016Создание приемника команд RC5 для персонального компьютера на основе микроконтроллера ATmega8. Особенности написания файла прошивки и симулирование устройства. Порядок выполнения сборки собственной схемы и характеристика полученного микроконтроллера.
курсовая работа [2,0 M], добавлен 24.11.2013Изучение элементов структуры микропроцессора i80386 и алгоритмов выполнения множества команд. Разработка проекта структуры АЛУ и структуры микро-ЭВМ на базе гипотетического процессора. Описание и создание программы эмуляции по выполнению заданных команд.
курсовая работа [484,4 K], добавлен 07.09.2012Файлы IO.SYS и MSDOS.SYS; командный процессор DOS. Базовая система ввода-вывода, загрузчик, диалог пользователя с DOS, команды. Недостатки языка програмирования с++. Создание и описание программы, позволяющей работать с файлами в среде DOS, ее алгоритм.
курсовая работа [24,4 K], добавлен 02.12.2009