- •Тула 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
Дополнение к существующему прерыванию
Хотя и не часто, но бывает полезно добавить код к существующему прерыванию. В качестве примера рассмотрим программы, которые преобразуют одно нажатие клавиши в длинные определяемые пользователем символьные строки (макроопределения клавиатуры). Эти программы используют тот факт, что весь ввод с клавиатуры поступает через функцию 0 прерывания 16Н BIOS. Все прерывания ввода с клавиатуры DOS вызывают прерывание BIOS для получения символов из буфера клавиатуры. Поэтому необходимо модифицировать лишь прерывание 16Н таким образом, чтобы оно служило шлагбаумом для макроопределений, после чего любая программа будет получать макроопределения независимо от того, какое прерывание ввода с клавиатуры она использует.
Рис. 8. Дополнение к существующему прерыванию
Модифицировать прерывания BIOS и DOS непросто (BIOS в ПЗУ, а DOS поступает без описания, и они ограничены размерами отведенной для них памяти), но можно написать процедуру, которая предшествует и/или следует за соответствующим прерыванием, и эта процедура может вызываться при вызове прерывания DOS или BIOS. Например, в случае прерывания 16Н необходимо написать процедуру и указать вектором прерывания для 16Н. Оригинальное значение вектора 16Н тем временем переносится в какой-либо неиспользуемый вектор, скажем 60Н. Новая процедура просто вызывает прерывание 60Н, чтобы использовать оригинальное прерывание 16Н; поэтому, когда программа вызывает прерывание 16Н, управление передается вашей процедуре; она затем вызывает оригинальное прерывание 16Н, которое по завершении снова возвращает управление вашей процедуре, а из нее вы возвращаетесь в то место программы, откуда поступил вызов прерывания 16Н. На рис. 8 показана диаграмма данной процедуры.
Таким образом, краткая сводка необходимых действий выглядит следующим образом:
Создать новую процедуру, вызывающую прерывание 60Н.
Перенести вектор прерывания для 16Н в 60Н.
Изменить вектор 16Н, чтобы он указывал на новую процедуру.
Завершить программу, оставляя ее резидентной
Лекция 17 Синхронные методы проектирования срв
План лекции:
Система упорядоченного опроса
Основной цикл с прерываниями
Система упорядоченного опроса
Мы будем рассматривать три синхронных метода: упорядоченного опроса (без прерываний), основного цикла с прерываниями циклических планировщиков. Как мы уже упоминали, синхронные методы требуют наличия только одного и задачи в системе для их реализации.
Система упорядоченного опроса состоит из главного цикла, в течение которого все устройства последовательно опрашиваются (или вызываются нужные процедуры) по одному. Программа для упрощенной системы домашнего контроля использует эту структуру, что демонстрируется программой.
В этой программе слова "wait_loop" обозначают программный цикл, в котором происходит ожидание в течение некоторого времени. В общем случае может потребоваться вводить "передышки" в системы опроса. Для того, чтобы понять необходимость введения таких "передышек", рассмотрим пример управления управляемой компьютером автомашины. Предположим, что компьютер решил повернуть машину в право и выдал команду: "поворот направо". Колеса начали выполнять поворот, но в этот момент, предположим, компьютер продолжает проверять и оценивать входные данные с все большей скоростью. И компьютер продолжает считать, что машина еще не поворачивает и повторно посылает команду поворота вправо. Прежде чем осознать, что машина уже поворачивает, компьютер успевает выдать несколько команд "поворота вправо", что приведет к заносу машины. Чтобы избежать подобной ситуации компьютер должен быть так запрограммирован, чтобы он имел возможность делать паузы после выдачи команд для их выполнения. Но в случае управления домашним хозяйством такие паузы недопустимы, так как обнаружение пожара требует немедленных, а не "отложенных" действий, как уже было упомянуто выше.
; ref_level - опасный уровень дыма forever:
call adjust_temp ;вызов стандартной подпрог-
;раммы
in al , smoke_port ;получить значение уровня
; дыма
cmp al , ref__level ;проверка наличия опасности
jl no_danger
call initiate_a1arm ;включить сигнал тревоги no_danger
call water_lawn ;вызов стандартной подпрог-
;раммы
call wait_loop ;пауза (отсутствие действий)
jmp forever wait_loop:
mov ex, Offh ;значение в сх определяет
;время ожидания wait :
loop wait
ret
Преимуществами описанного метода являются: простая конструкция системы . быстрое время ответа.
Недостатками же являются следующие:
. процессор всегда находится в занятом состоянии, поскольку он полностью посвящен опросу портов
. время циклов может стать чрезмерным по мере возрастания количества опрашиваемых устройств
. время тратится на опрос портов, большую часть времени находящихся в неактивном состоянии, например, датчиков дыма в нашем примере.