Управление прерываниями
Сущность прерывания как сигнала, заставляющего ЭВМ изменить обычный порядок выполнения потока команд. Процесс классификации на внутренние и внешние. Главные отличия от вызова подпрограммы. Процессорная обработка прерываний. Основные задачи контроллера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лекция |
Язык | русский |
Дата добавления | 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Типы команд, синтаксис ассемблера и код операции, по которому транслируется команда. Команды вычисления и непосредственной пересылки данных между регистрами. Поле для определения операции вычисления. Управление последовательностью выполнения программы.
реферат [29,1 K], добавлен 13.11.2009Архитектура микроконтроллеров семейства Mega. Организация памяти. Способы адресации памяти данных. Энергонезависимая память данных. Таблица векторов прерываний. Счетчик команд и выполнение программы. Абсолютный вызов подпрограммы. Сторожевой таймер.
дипломная работа [213,9 K], добавлен 02.04.2009Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.
курсовая работа [348,7 K], добавлен 22.12.2014Написание алгоритма приема 10 пакетов по 12 байт из последовательного порта и размещение их в памяти PRAM. Создание управляющего блока PTSCB для режима блоковой передачи данных. Аппаратная обработка прерываний в режима аналого-цифрового сканирования.
практическая работа [2,0 M], добавлен 25.04.2012Разработка прикладного программного обеспечения для решения задачи для персонального компьютера. Структура подпрограммы, механизмы передачи параметров и возврат результатов из подпрограммы. Вызов подпрограммы на выполнение. Отладка программы на языке С.
курсовая работа [818,1 K], добавлен 03.01.2014Предотвращение или выявление ошибочных ситуаций в ходе выполнения программы. Стандартная обработка исключений, программные средства. Назначение программных блоков try, catch, final. Главные особенности конфигурирования исключений с помощью флажков.
лекция [387,6 K], добавлен 09.12.2013Обработка детерминированного сигнала. Классификация измерительных сигналов. Формула исходного сигнала. Построение спектра амплитуд и спектра фаз. Точность спектрального анализа. Нормальный закон распределения. Спектральный анализ случайного сигнала.
курсовая работа [616,8 K], добавлен 07.07.2013Создание приемника команд RC5 для персонального компьютера на основе микроконтроллера ATmega8. Особенности написания файла прошивки и симулирование устройства. Порядок выполнения сборки собственной схемы и характеристика полученного микроконтроллера.
курсовая работа [2,0 M], добавлен 24.11.2013Изучение элементов структуры микропроцессора i80386 и алгоритмов выполнения множества команд. Разработка проекта структуры АЛУ и структуры микро-ЭВМ на базе гипотетического процессора. Описание и создание программы эмуляции по выполнению заданных команд.
курсовая работа [484,4 K], добавлен 07.09.2012Схема речеобразования у человека. Запись и считывание данных из речевого сигнала в MATLAB. Синтаксис вызова функции. Операции над звуковыми файлами. Исследование мужского и женского голосов. Спектрограммы голосов. Обработка речи в Simulink, Wavelet.
контрольная работа [2,2 M], добавлен 18.04.2013