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

Презентация:



Advertisements
Похожие презентации
Лекция 3. Исключения и прерывания в встроенных системах.
Advertisements

Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Системные механизмы Windows. Системные механизмы диспетчеризация ловушек, в т.ч. прерываний, DPC (deferred procedure call), APC (asynchronous procedure.
Встроенные Системы Часть 6. Функциональные блоки Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Проектирование центральных и периферийных устройств Преподаватель: Мельников Максим Игоревич.
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Встроенные Системы Часть 4. Шины, память, кэш, DMA Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
1 ЛЕКЦИЯ 1 ПРЕРЫВАНИЯ Прерывание – инициируемый определенным образом процесс, временно переключающий микропроцессор на выполнение другой программы с последующим.
Встроенные Системы Часть 5. Базовые Элементы Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Интерфейсы периферийных устройств. Определения Периферийные устройства (ПУ) - это устройства ЭВМ, не входящие в состав центральной части ВС и предназначенные.
Встроенные Системы Часть 7. Технология разработки и производства ИС Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Лекция 2 Управление задачами Процессы и потоки. Процесс Выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000.
Системы реального времени Лекция 4: процессы. Понятие процесса Процесс - фундаментальное понятие любой операционной системы С помощью процессов происходит.
Устройство 1 Цепочечная структура ЦП Устройство 0 Устройство К Адрес Данные Управление SYS. BUS Линия запросов INT Линия подтверждения INTA INTA INT Устройство.
Встроенные Системы Часть 9. ОС Реального Времени Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Процессор П1П2П3П4П2П1 Контроллер Завершение операции ввода-вывода Вызов операции ввода-вывода Операция ввода-вывода Синхронное выполнение операции ввода-вывода.
Основы современных операционных систем Лекция 4. (C) В.О. Сафонов, 2010 Архитектура компьютерных систем.
Транксрипт:

Встроенные Системы Часть 3. Прерывания Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov

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

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

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

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

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

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

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

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

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

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

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

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

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

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