- •Тула 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
Лекция №9. О работе в реальном времени
План лекции.
1. Задержка прерывания
2. Планирование задержки
3. Накопление прерываний
Как сильно бы мы не желали этого, скорость компьютеров не бесконечна. В системах реального времени чрезвычайно важно, чтобы процессор не работал впустую. Так же важно чтобы проходило минимум времени между внешним событием и непосредственным исполнением кода. Это время называется задержка.
В QNX возможны следующие виды задержек.
1. Задержка прерывания
Задержка прерывания это время между приходом аппаратного прерывания и выполнением первой инструкции программного обработчика прерываний. QNX оставляет прерывания полностью задействованными практически постоянно, поэтому задержка прерываний обычно незначительна. Но некоторые части кода требуют временного отключения прерываний. Максимальное время такого отключения является самым худшим случаем задержки — в QNX это очень мало.
Эта диаграмма иллюстрирует ситуацию, в которой аппаратное прерывание обрабатывается установленным обработчиком. Обработчик либо просто вернет, либо вернет и активирует proxy.
Задержка прерывания (Тil) является минимальной задержкой которая происходит при полностью задействованных прерываниях. Максимальная задержка равна этому времени плюс максимальное время на которое QNX, или процесс выполняемый QNX отключает прерывания CPU.
2. Планирование задержки
В некоторых случаях обработчик низкоуровневых аппаратных прерываний должен планировать работу процессов с более высоким уровнем. По такому сценарию обработчик вернется и покажет, что надо активировать proxy. Это является второй формой задержки - задержка планирования.
Задержка планирования это время между прекращением обработки прерывания и выполнением первой инструкции процесса драйвера. Это обычно то время, которое необходимо для сохранения контекста текущего процесса и восстановления контекста требуемого процесса драйвера. Хотя эта задержка и больше чем задержка прерывания в системе QNX она относительно мала.
Обработчик прерывания прекращается и активирует proxy. Дано время для 20Mhz 386 процессора в защищенном режиме.
Важно запомнить, что большинство прерываний прекращаются без активации proxy. В большинстве случаев обработчик прерываний может позаботиться обо всех аппаратных проблемах. Активация proxy с целью запуска процесса - драйвера более высокого уровня случается только когда происходит значительное событие. Например, обработчик прерываний для последовательного устройства передает один байт данных устройству каждый раз, когда приходит прерывание на передачу, и запустит процесс высокого уровня (Dev) только когда буфер вывода освободится.
3. Накопление прерываний
Поскольку микрокомпьютерная архитектура позволяет задавать приоритеты аппаратным прерываниям, прерывание с высоким приоритетом может вытеснить прерывание с низким.
Этот механизм полностью поддерживается в QNX. Предыдущие сценарии описывают простейшие—и самые распространенные—ситуации когда происходит только одно. Фактически похожее распределение времени верно для прерываний с наивысшим приоритетом. Расчеты времени самых длительных задержек для низкоуровневых прерываний должны учитывать время необходимое для обработки всех прерываний с высоким приоритетом, поскольку в QNX прерывания с высоким приоритетом вытесняют прерывания с низким.
Пример накопления прерываний. Выполняется процесс А. Прерывание IRQx запускает обработчик Intx, но он вытесняется IRQy и его обработчиком Inty. Inty активирует proxy запуская тем самым процесс В, и Intx активирует proxy запуская процесс C.