- •Тула 2010
- •1.1 Принципы построения и основные требования. Особенности.
- •1.2 Ос рв qnx. Поддержка срв ос Linux.
- •1. 3 Функциональные требования к осрв
- •2. "Жесткие" и "мягкие" системы реального времени
- •3. Нити и приоритеты
- •4. Предсказуемость системных вызовов Win32 api
- •5. Управление прерываниями в nt
- •6. Управление памятью в nt
- •7. Может ли Windows nt использоваться в качестве ос рв?
- •Лекция №2.
- •Коммерческие решения, расширяющие nt возможностями обработки в реальном времени
- •Использование nt
- •3. Реализация Win32 api над другой ос рв
- •4. Совместная работа на одном процессоре nt и ос рв
- •5. Использование многопроцессорной архитектуры
- •6. Необходимые требования к ос для обеспечения предсказуемости
- •Лекция №3.
- •Лекция №4.
- •1. Разработка приложений жесткого реального времени
- •2. Модификация ядра
- •3. Модификация уровня аппаратных абстракций Windows nt (hal)
- •4. Применение ос рв
- •Лекция №5. Операционная система qnx. Системная архитектура.
- •Лекция № 6.
- •Лекция №7. Связь между процессами по сети посредством виртуальных каналов.
- •Лекция №8. Построение очереди процессов
- •Лекция №9. О работе в реальном времени
- •Лекция №10. Сопоставление и передача путей между процессами.
- •2. Префиксы управления вводом – выводом
- •5. Передача путей между процессами
- •2. Префиксы управления вводом – выводом
- •5. Передача путей между процессами
- •2. Относительные пути
- •3. Текущий рабочий каталог
- •Примечание относительно cd
- •4. Описатели файлов пространства
- •Лекция №12 Аппаратное и программное обеспечение промышленных систем реального времени (псрв)
- •Введение
- •1. Организация промышленных систем
- •2. Аппаратная архитектура
- •3. Стандарты шин
- •4. Технологии vme и pci
- •5. Мезонинные технологии
- •6. Полевые системы
- •7. Программное обеспечение промышленных систем
- •8. Управление производством
- •Лекция №13 Использование средства nt в качестве Web-сервера для iis (Internet Information Server)
- •Введение
- •Общие черты intranet-систем
- •3. Система управления доступом
- •4. Прикладное программирование в intranet
- •Лекция 14 Операционная система ос рв см эвм (rsx-11)
- •Введение
- •Основные компоненты системы ос рв
- •2. Диспетчер памяти
- •3. Многопользовательская защита
- •4. Выполнение задач под управлением ос рв
- •5. Внешние устройства и файловая система на дисках
- •Лекция 15 Управление прерываниями.
- •Вектора прерываний
- •Программирование контроллера прерываний 8259.
- •Запрет/разрешение отдельных аппаратных прерываний
- •Лекция 16 Управление Тема: прерываниями (продолжение).
- •Написание собственного прерывания
- •Дополнение к существующему прерыванию
- •Лекция 17 Синхронные методы проектирования срв
- •Система упорядоченного опроса
- •Основной цикл с прерываниями
- •Лекция 18 Синхронные методы проектирования срв (продолжение)
- •1 . Циклические планировщики
- •2. Выбор метода построения системы
- •3. Измерение быстродействия компьютера
- •4. Мультизадачный режим в операционной системе ms-dos
- •5. Условия существования мультизадачного режима в персональном компьютере ibm pc/at
- •X. Библиографический список рекомендуемой литературы
- •13.1 Ос рв usix: основные принципы построения и структура.
- •13.2 Поддержка рв в usix
- •13.3 Управление виртуальной памятью в usix
- •14.1 Процессы, связанные с выполнением программ
- •14.2 Функции ос рв usix, не связанные с управлением процессами
- •15.1 Программирование коммуникационных устройств.
- •15.2 Драйверы коммуникационных устройств
- •16.1 Файловая система
- •16.2 Средства защиты от несанкционированного доступа
- •16.3 Поддержка протоколов и окружений usix
Программирование контроллера прерываний 8259.
Для управления аппаратными прерываниями используется микросхема программируемого контроллера прерываний 8259. Поскольку в каждый момент времени может поступать не один запрос, микросхема имеет схему приоритетов. Имеется 16 уровней приоритетов у IBM AT (от IRQO до IRQ15 две микросхемы). Максимальный приоритет соответствует уровню О.
Аппаратные прерывания в порядке приоритета
IRQ О таймер
клавиатура
канал ввода/вывода
часы реального времени
программно переводятся в IRQ2
10 -12 резерв
математический сопроцессор
контроллер фиксированного диска
15 резерв
COM2
СОМ1
LPT2
контроллер дискет
LPT1
Прерыванию времени суток дан максимальный приоритет, поскольку если оно будет постоянно теряться, то будет неверными показания системных часов. Прерывание от клавиатуры вызывается при нажатии или отпускании клавиши; оно вызывает цепь событий, которая обычно заканчивается тем, что код клавиши помещается в буфер клавиатуры.
Микросхема 8259 имеет три однобайтовых регистра, которые управляют восемью линиями аппаратных прерываний. Регистр запроса на прерывание (IRR) устанавливает соответствующий бит, когда линия прерывания сигнализирует о запросе. Затем микросхема автоматически проверяет, не обрабатывается ли другое прерывание. При этом она запрашивает информацию регистра обслуживания (ISR). Дополнительная цепь отвечает за систему приоритетов. Наконец, перед вызовом прерывания проверяется регистр маски прерываний (IMR), чтобы узнать, разрешено ли в данный момент прерывание данного уровня. Как правило обращаются к регистру маски прерываний через порт 21Н и к командному регистру прерываний через порт 20Н.
Запрет/разрешение отдельных аппаратных прерываний
При программировании на ассемблере можно запретить перечисленные выше аппаратные прерывания. Это маскируемые прерывания; другие аппаратные прерывания, возникающие при некоторых ошибках (деление на ноль), не могут быть маскированы. Существуют две причины для запрета аппаратных прерываний. В первом случае все прерывания блокируются, чтобы критическая часть кода была выполнена целиком, прежде чем машина произведет какое-либо другое действие. Например, прерывания запрещают при изменении вектора аппаратного прерывания, чтобы избежать выполнения прерывания, когда вектор изменен только на половину.
Во втором случае маскируются только определенные аппаратные
прерывания. Это делается, когда некоторые прерывания могут взаимодействовать с операциями, критичными к временным интервалам. Например, точно рассчитанная по времени процедура ввода/вывода не может себе позволить быть прерванной длительным дисковым прерыванием.
Выполнение прерываний зависит от значений флага прерывания (бит 9) в регистре флагов. Когда этот бит равен 0, разрешены все прерывания, которые разрешает маска. Когда он равен 1, все аппаратные прерывания запрещены. Чтобы запретить прерывания, установив флаг в 1, используется инструкция CLI. Для очистки этого флага и восстановления прерываний используется инструкция STI. Необходимо избегать отключения прерываний на длительное время. Прерывание времени суток происходит 18,2 раза в секунду, и если к этому прерыванию был более чем один запрос в то время, когда аппаратные прерывания были запрещены, то лишние запросы будут отброшены и системное время будет определяться неправильно.
Машина автоматически запрещает аппаратные прерывания при вызове программных прерываний и автоматически разрешает их при возврате. При написании своих программных прерываний необходимо начинать программу с инструкции STI, если можно допустить аппаратные прерывания. Отметим также, что если за инструкцией CLI не следует STI, то это приведет к остановке машины, так как ввод с клавиатуры будет заморожен.
Для маскирования определенных аппаратных прерываний нужно послать требуемую цепочку битов в порт с адресом 21Н, который соответствует регистру маски прерываний (1MB).
Регистр маски на второй микросхеме 8259 для AT (IRQ8-15) имеет адрес порта А1Н. Установите те биты регистра, которые соответствуют номерам прерываний, выбранным вами для маскирования. Этот регистр можно только записывать. Приведенный ниже пример блокирует дисковое прерывание. Не забудьте очистить регистр в конце программы, иначе обращение к дискам будет запрещено и после завершения программы.
; маскирование 6-го бита регистра маски прерываний
MOV AL,01000000В ;маскируем бит 6
OUT 21H,AL ;посылаем в регистр маски
;прерываний
MOV AL,0
OUT 21H,AL ;очищаем IMR в конце программы