Управление прерываниями
Сущность прерывания как сигнала, заставляющего ЭВМ изменить обычный порядок выполнения потока команд. Процесс классификации на внутренние и внешние. Главные отличия от вызова подпрограммы. Процессорная обработка прерываний. Основные задачи контроллера.
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | лекция |
| Язык | русский |
| Дата добавления | 09.10.2013 |
| Размер файла | 33,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Лекция
Управление прерываниями
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
Каждый контроллер обслуживает 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
Подобные документы
Обработка прерываний - сигналов о совершении некоторых событий в компьютере. Механизм обработки прерываний. Обработка исключений, описание реакции программы на ошибки выполнения. Общее понятие и виды исключительных ситуаций во время выполнения программы.
реферат [192,2 K], добавлен 10.11.2014Проектирование механизма обработки прерываний. Контроллер прерываний Intel 82C59A. Ввод-вывод по прерыванию. Программируемый контроллер интерфейса Intel 82C55A. Роль процессора в обработке прерывания ввода-вывода. Обзор алгоритма обработки прерывания.
контрольная работа [8,0 M], добавлен 19.05.2010Прерывание и его природа. Контролер прерываний. Обработка прерываний в реальном режиме. Характеристики реального режима работы микропроцессора. Схема обработки прерываний в реальном режиме. Написание собственного прерывания. Разработка в общем случае.
доклад [347,0 K], добавлен 22.09.2008Характеристика регистров памяти как устройств временного хранения данных. Различия между прерываниями и исключениями команд, их обработка. Вычисление производительности ЭВМ. Программа с использованием отложенного запуска команд. Виды компьютерных сетей.
контрольная работа [24,9 K], добавлен 09.11.2010Принципы организации и особенности обработки прерываний на основе контроллера 8259A. Общая характеристика аппаратных средств системы прерываний PIC (Programmable Interrupt Controller). История разработки и порядок работы с технологией Plag and Play.
курсовая работа [305,1 K], добавлен 29.07.2010Выбор и обоснование направления проектирования. Каскадное включение контроллеров. Интерфейс программы, шифратор приоритетов. Неадресуемый конец прерывания. Расчет затрат на оборудование и материалы, отчислений на страховые взносы, на заработную плату.
дипломная работа [1,4 M], добавлен 29.12.2013Сущность и структура ПК. Техпроцесс в центральных и графических процессорах. Тенденции современного рынка процессоров. Понятие прерывания и основные виды прерываний. Модели различных компаний производителей, их основные характеристики и достоинства.
курсовая работа [81,5 K], добавлен 07.11.2014Разновидности и задачи подпрограмм в языке Турбо Паскаль, их локальные и глобальные параметры. Использование процедуры для выполнения законченной последовательности действий. Формат объявления функции, особенности рекурсивного оформления подпрограммы.
реферат [20,0 K], добавлен 08.02.2012Организация центрального процессора. Подключение интерфейсных программируемых БИС. Методы адресации и примеры команд. Программирование таймера и контроллера прерываний. Программная модель микропроцессорной системы. Программирование на языке ассемблера.
реферат [82,6 K], добавлен 05.12.2010Подключение периферийных устройств к ЭВМ. Синхронизация выполнения программы с внешними процессами. Прерывания. Реализация механизма прерывания в х86. Прямой доступ к памяти. Шины, магистраль PCI. Процесс загрузки компьютера. Клавиатура, системный таймер.
презентация [7,1 M], добавлен 14.12.2013
