Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwww.oktetlabs.ru
1 Встроенные Системы Часть 3. Прерывания Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
2 Внешние события Окружение ВС, как и сама система, вызывают события, на которые надо реагировать: Истек промежуток времени Обнаружено нажатие клавиши Произошло изменение состояния датчика Внешнее устройство готово передать данные. Многие другие.
3 Как обнаружить событие? Опрос: время от времени проверять, не наступило ли событие. Хорошо: детерминизм Плохо: большие накладные расходы и время реакции. Прерывание: при наступлении события процессор передает управление программе обработки.
4 Прерывание Прерывание (interrupt) – это асинхронное событие, приостанавливающее поток вычислений, производимых процессором, и передающее управление обработчику прерываний. Обычно, обработчик прерывания обеспечивает восстановление контекста вычислений после обработки прерывания. Обработчик прерывания Основная программа
5 Что делает процессор? Передача управления может произойти только если обработка прерываний разрешена. Процессор сохраняет минимально необходимый контекст (обычно, адрес возврата и регистр состояния процессора на момент прерывания). Процессор начинает выполнять команды обработчика прерываний.
6 Что делает программа- обработчик? Обработчик (handler) полностью сохраняет контекст (регистры и состояние процессора) для последующего возобновления. Если надо, производится создание контекста для вызова кода на ЯВУ. После завершения обработки, сохраненный контекст восстанавливается, и продолжается выполнение прерванной программы.
7 Зачем запрещают прерывания? Обработчик прерываний и программа могут разделять общие данные – необходимо поддерживать их целостность. Обработчик прерывания может привести к смене потока выполнения: необходимо поддерживать целостность данных, разделяемых такими потоками.
8 Особенности архитектуры: куда передается управление? По адресу из таблицы – вектора прерываний По фиксированному адресу (по нескольким фиксированным адресам в зависимости от типа прерывания) По фиксированному смещению относительно значения регистра VBR
9 Контроллер Прерываний Процессорное ядро обычно поддерживает от одного до семи запросов прерываний. Количество источников асинхронных событий – много больше. Контроллер прерываний (Interrupt Controller) – устройство, отслеживающее возникновение событий, определяющее порядок и время их обработки.
10 Контроллер прерываний (прод.) CPU Int Ctrl Int Ctrl Запрос прерывания Уровень 1Уровень 2 (каскадированный)
11 Контроллер прерываний (прод.) Функции контроллера прерываний: Маскирование каждого источника по отдельности Вычисление номера источника прерывания, который должен быть обработан в данный момент с учетом приоритета источника. Вычисление множества запросов, ожидающих обработки.
12 Уровень прерывания Процессор (или контроллер прерываний) может определять текущий уровень прерываний процессора. Если в некоторый момент процессор имеет уровень N, то его работа может быть прерван запросом уровня выше N. Обычно, при возникновении прерывания уровня N уровень процессора устанавливается в N.
13 Запрос прерывания Устройство сообщает контроллеру прерывания о наступлении события изменяя логический уровень сигнала запроса прерывания. Событие наступает, когда: Уровень сигнала высокий (active high) Уровень сигнала низкий (active low) Уровень переходит с низкого на высокий (front edge) Уровень переходит с высокого на низкий (rear edge)
14 Латентность прерываний Латентность прерывания (interrupt latency) – время между наступлением события и моментом его обработки. Латентность складывается из: Задержек контроллера прерывания и процессора Временем, в течении которого программа выполняется с запрещением обработки прерываний Временем работы обработчиков прерываний более высокого уровня. Накладными расходами на обработку прерывания (сохранение/восстановление контекста)
15 Исключительные ситуации и синхронные прерывания Во время выполнения программы могут возникнуть непредсказуемые ситуации, например: Деление на 0, переполнение Обращение по несуществующему адресу Выполнение несуществующей команды Недоступность страницы виртуальной памяти Такие ситуации называют «исключительными» (exceptions), их обработка осуществляется примерно так же, как и прерываний.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.