- •Тула 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
2. Выбор метода построения системы
Выбор структуры системы зависит от внешней среды, аппаратных средств, а также от временных требований, предъявляемых к системе. Выбор также зависит от того, будут ли использоваться только уже имеющиеся в наличии технические средства или планируется использование новых аппаратных средств. Если будут приобретаться новые устройства, то мы можем рассматривать и применение устройств, работающих под управлением прерываний, и устройств, работающих без прерываний. Если, однако, мы пользуемся только уже имеющимися аппаратными средствами, мы не можем выбирать: использовать или нет прерывания. Например, некоторое устройство может не предусматривать работу по прерыванию. Тогда мы сами должны применить метод упорядоченного опроса для этого устройства.
В некоторых прикладных программах выбор может диктоваться требованиями, предъявляемыми к временным характеристикам, как это делается в простом примере, предложенном ниже. Принятие решения о выборе метода построения системы на практике, конечно, является более сложным занятием.
Предположим, что мы будем работать в операционной системе MS-DOS под управлением процессора 8088, имеющего частоту 4,77 МГц. Предположим также, что нам нужно собирать данные со скоростью 35000 байтов в секунду. Отметим по предыдущей таблице 5, что при наличии прерываний максимальная скорость передачи данных равна 30 КГц. Это значит, что мы не можем использовать прерывания. Тем не менее, системы опроса могут работать с максимальной скоростью передачи данных, равной 60 КГц. Более того, данные могут храниться при этом в основной памяти.
И, наконец, если требуется, чтобы разные процедуры выполнялись с разной частотой, можно в этом случае применять циклические планировщики.
Все три рассмотренных метода являются синхронными (работающими только с одной задачей, то есть без мультизадачности). Ниже мы рассмотрим мультизадачный режим в операционной системе MS-DOS.
3. Измерение быстродействия компьютера
Изменение быстродействия основывается на использовании того, что работает с одной скоростью на компьютерах с разным быстродействием. Например, часы реального времени и таймер. Рассмотрим два подхода, хотя принципиальной разницы в них нет. Первый метод основан на вызове функции BIOS "отсчет интервала времени". Эта
функция через некоторое время, не зависящее от быстродействия, устанавливает бит - семафор. Для выполнения этой функции BIOS использует прерывание часов реального времени.
Функция вызывается с помощью прерывания 15Н. В регистре АН должен находиться номер функции 83Н. Функция имеет две подфункции: включение отсчета временного интервала и выключение отсчета временного интервала.
Для включения отсчета временного интервала используется подфункция ООН. Номер подфункции должен находиться в регистре AL, в регистрах ES:BX должен находиться адрес семафорного байта, в регистре СХ старшее слово микросекунд временного интервала, в регистре DX младшее слово микросекунд временного интервала. Седьмой бит байта семафора должен быть выключен. По истечении этого времени бит будет включен.
Перед вызовом функции желательно дождаться прерывания от часов реального времени, потому что функция может быть вызвана в любое время и возможно разное время до первого прерывания. Измерение ведется с некоторой погрешностью, но если этого не делать, то погрешность увеличится.
Дождаться прерывания можно с помощью функции ожидания. Эта функция не возвращает управление в программу сразу, а только после истечения указанного времени. Ее можно использовать для выполнения различных задержек, но в данном случае она нужна только потому, что также использует прерывание часов реального времени, и поэтому вызов следующей за ней функции включения отсчета временного интервала будет синхронизирован с тем же прерыванием.
Для вызова этой функции надо вызвать прерывание 15Н. В регистре АН должен находиться номер функции 86Н, в регистре СХ старшее слово микросекунд ожидания, в регистре DX младшее слово микросекунд ожидания. В нашем случае главное дождаться прерывания, поэтому достаточно минимального времени ожидания.
Обе эти функции имеют временное разрешение в период прерываний часов реального времени, что чуть меньше одной миллисекунды.
После замера быстродействия отсчет временного интервала нужно отменить. Для этого вызывается подфункция 01Н функции 83Н прерывания 15Н. Номер функции должен находиться в регистре АН, номер подфункции в регистре AL.
Второй метод основан на перехвате прерывания таймера. Он
удобнее в тех программах, которые используют для своей работы таймер. Программа перехватывает прерывание таймера и при его обработке уменьшает счетчик количества прерываний, оставшихся до конца измерения быстродействия. Цикл, считающий количество раз, которое он выполняется, проверяет значение этого счетчика. Этот метод дает меньшую погрешность, чем предыдущий.