'

Встроенные Системы

Понравилась презентация – покажи это...





Слайд 0

Встроенные Системы Часть 3. Прерывания Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov vvv@oktetlabs.ru http://www.oktetlabs.ru/~vvv/es-2004


Слайд 1

Внешние события Окружение ВС, как и сама система, вызывают события, на которые надо реагировать: Истек промежуток времени Обнаружено нажатие клавиши Произошло изменение состояния датчика Внешнее устройство готово передать данные. Многие другие.


Слайд 2

Как обнаружить событие? Опрос: время от времени проверять, не наступило ли событие. Хорошо: детерминизм Плохо: большие накладные расходы и время реакции. Прерывание: при наступлении события процессор передает управление программе обработки.


Слайд 3

Прерывание Прерывание (interrupt) – это асинхронное событие, приостанавливающее поток вычислений, производимых процессором, и передающее управление обработчику прерываний. Обычно, обработчик прерывания обеспечивает восстановление контекста вычислений после обработки прерывания. Обработчик прерывания Основная программа


Слайд 4

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


Слайд 5

Что делает программа-обработчик? Обработчик (handler) полностью сохраняет контекст (регистры и состояние процессора) для последующего возобновления. Если надо, производится создание контекста для вызова кода на ЯВУ. После завершения обработки, сохраненный контекст восстанавливается, и продолжается выполнение прерванной программы.


Слайд 6

Зачем запрещают прерывания? Обработчик прерываний и программа могут разделять общие данные – необходимо поддерживать их целостность. Обработчик прерывания может привести к смене потока выполнения: необходимо поддерживать целостность данных, разделяемых такими потоками.


Слайд 7

Особенности архитектуры: куда передается управление? По адресу из таблицы – вектора прерываний По фиксированному адресу (по нескольким фиксированным адресам в зависимости от типа прерывания) По фиксированному смещению относительно значения регистра VBR


Слайд 8

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


Слайд 9

Контроллер прерываний (прод.) CPU Int Ctrl . . . Int Ctrl . . . Запрос прерывания Уровень 1 Уровень 2 (каскадированный)


Слайд 10

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


Слайд 11

Уровень прерывания Процессор (или контроллер прерываний) может определять текущий уровень прерываний процессора. Если в некоторый момент процессор имеет уровень N, то его работа может быть прерван запросом уровня выше N. Обычно, при возникновении прерывания уровня N уровень процессора устанавливается в N.


Слайд 12

Запрос прерывания Устройство сообщает контроллеру прерывания о наступлении события изменяя логический уровень сигнала запроса прерывания. Событие наступает, когда: Уровень сигнала высокий (active high) Уровень сигнала низкий (active low) Уровень переходит с низкого на высокий (front edge) Уровень переходит с высокого на низкий (rear edge)


Слайд 13

Латентность прерываний Латентность прерывания (interrupt latency) – время между наступлением события и моментом его обработки. Латентность складывается из: Задержек контроллера прерывания и процессора Временем, в течении которого программа выполняется с запрещением обработки прерываний Временем работы обработчиков прерываний более высокого уровня. Накладными расходами на обработку прерывания (сохранение/восстановление контекста)


Слайд 14

Исключительные ситуации и синхронные прерывания Во время выполнения программы могут возникнуть непредсказуемые ситуации, например: Деление на 0, переполнение Обращение по несуществующему адресу Выполнение несуществующей команды Недоступность страницы виртуальной памяти Такие ситуации называют «исключительными» (exceptions), их обработка осуществляется примерно так же, как и прерываний.


×

HTML:





Ссылка: