Мегаобучалка Главная | О нас | Обратная связь


Лекция 3. Контроллер прерываний, таймер и порты



2019-07-03 234 Обсуждений (0)
Лекция 3. Контроллер прерываний, таймер и порты 0.00 из 5.00 0 оценок




Контроллер прерываний

Возможность прерывания программ – важное свойство ВС, позволяющее существенно повысить эффективность использования ее ресурсов, а также использовать компьютеры для управления в системах реального времени. Для реализации прерываний должны существовать соответствующие программные и аппаратные средства, называемые системой прерывания программ.

Классификация прерываний

Прерывание – событие в вычислительной системе, на возникновение которого предусмотрена стандартная реакция аппаратуры. Посредством аппаратных прерываний аппаратура информирует процессор о том, что произошло какое–либо событие, требующее немедленной реакции (например, пользователь нажал клавишу). Важный тип аппаратных прерываний прерывания таймера, которые генерируются периодически через фиксированный промежуток времени. Прерывания от таймера используются операционной системой для планирования выполнения процессов. Количество различных типов прерываний ограничено и определяется при разработке аппаратуры компьютера.

Классы прерываний. Существует три класса прерываний: внутренние, внешние (аппаратные) и программные.

Внутренние прерывания возникают в случае, если процессор не может выполнить очередную команду, например деление на ноль.

Внешние (аппаратные) прерывания инициируются сигналами, подаваемыми в процессор другими компонентами системы (клавиатура, таймер). Аппаратное прерывание – это асинхронное событие, то есть оно возникает вне зависимости от того, какой код исполняется процессором в данный момент.

Программные прерывания инициируются специальной командой int (с числовым аргументом) выполняющейся программы. Программные прерывания являются синхронными событиями, поскольку выполняются в контексте программы. По команде int процессор осуществляет те же действия, что и при аппаратных прерываниях. Данный механизм был специально введен для того, чтобы переключение на системные программные модули происходило не просто как переход на подпрограмму, а точно таким же образом, как и в аппаратных прерываниях. В многозадачных ОС тем самым обеспечивается автоматическое переключение процессора в привилегированный режим с возможностью исполнения любых команд.

Многие процессоры используют механизм, родственный прерываниям, для обработки событий, называемых исключениями. Исключительные ситуации возникают в результате попытки выполнения программой команды, которая по каким–то причинам не смогла быть выполнена. Примерами таких команд могут быть попытки доступа к ресурсу при отсутствии достаточных привилегий, делении на ноль, арифметическом переполнении или, например, выходе значения операнда за допустимый диапазон. Исключительные ситуации можно разделить на исправимые и неисправимые. В случае серьезных ошибок ОС реагирует завершением программы. Возникновение в процессе работы операционной системы исправимых исключительных ситуаций считается нормальным явлением. Многие языки высокого уровня реализуют те или иные средства для обработки исключений. Уровень этих средств различен в разных языках программирования, начиная от пары функций setjmp() и longjmp() в Си и заканчивая операторами try/catch и throw в C++.

Аппаратные прерывания

Аппаратные прерывания нужны, чтобы при обслуживании процессором внешних устройств, требующих управления или обмена информацией, избежать циклов опроса устройств. В компьютерах первого поколения все внешние устройства опрашивались процессором периодически и последовательно на предмет того, требуют ли они обслуживания. На это уходило много процессорного времени, а также требовалась программная поддержка циклов опроса для всех программ, работающих на компьютере. Современная схема обработки прерываний была реализована гораздо позже в системе IBM/360.

В современных ОС программа сама уже не заботится об обработке прерываний. Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения — специальными модулями ядра ОС, а программные прерывания — процедурами ОС, обслуживающими системные вызовы. Кроме этих модулей, в ОС может использоваться специальный модуль, так называемый диспетчер прерываний, который координирует работу отдельных обработчиков прерываний.

Каждое аппаратное прерывание имеет собственный номер IRQ с числовым аргументом, однозначно определяющий источник прерывания. IRQ расшифровывается как Interrupt Request, или запрос на аппаратное прерывание. Каждому номеру соответствует адрес программы, предназначенной для обработки прерывания. Такую программу так и называют – программой обработчиком прерывания (Interrupt Service Routine, ISR). Адреса программ обработчиков прерываний находиться в таблице, которая называется таблицей векторов прерываний. В процессорах Intel х86 предусмотрена возможность применения 256 программ обработки прерываний. Инициализация таблицы происходит во время загрузки ОС. Номер прерывания является индексом в таблице из 256 адресов подпрограмм обработки прерываний, один из которых и используется для перехода к программе обработчику прерывания.



2019-07-03 234 Обсуждений (0)
Лекция 3. Контроллер прерываний, таймер и порты 0.00 из 5.00 0 оценок









Обсуждение в статье: Лекция 3. Контроллер прерываний, таймер и порты

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (234)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)