- •Тула 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
13.2 Поддержка рв в usix
Для обеспечения режима реального времени в USIХ предусмотрен целый ряд возможностей, гарантирующих оптимальное время реакции:
приоритетная и круговая диспетчеризация;
динамическое и статическое назначение приоритетов пользовательским задачам;
захват ресурсов памяти для обеспечения быстрого переключения задач путем фиксации страниц в оперативной памяти;
возможность подключения к источникам прерываний для программирования нестандартных устройств;
возможность отображения в адресное пространство процесса пользователя любых объектов, включая файлы на дисках, физическую память, порты ввода-вывода;
синхронизация взаимодействия процессов пользователя с помощью традиционных механизмов UNIХ (семафоры, очереди сообщений, разделяемая память, именованные и неименованные программные каналы ввода-вывода) и дополнительных возможностей (сообщения USIХ, серверы, механизм событий).
В структуре ядра USIХ реализованы новые алгоритмы, ориентированные на поддержку реального времени. Среди них следует отметить полную прерываемость ядра системы и механизм обработки прерываний.
Традиционные UNIХ-системы не разрешают переключения процессов во время выполнения системной фазы ядра. Ядро является как бы одной большой критической секцией, которая должна быть выполнена до конца. Только после выполнения критической секции, что может потребовать значительного времени, возможно переключение на более приоритетный процесс.
В отличие от этого ядро USIХ является полностью прерываемым. Выполнение процесса может быть прервано независимо от его фазы (пользовательской или системной), и управление может быть передано процессу с более высоким приоритетом. При этом причинами прерываний могут быть следующие события:
истечение кванта времени владения процессором у текущего процесса;
наступление запланированных событий по времени;
прерывание от устройств ввода-вывода;
изменение приоритета процессов;
освобождение ресурсов ядра (двоичных семафоров);
посылка сообщения более приоритетному ожидающему процессу.
Таким образом, менее приоритетная задача во время выполнения системного вызова может быть прервана и управление передано более приоритетной задаче. Возможность переключения задач во время выполнения системного вызова является необходимым требованием для гарантированности времени реакции системы, однако недостаточным для гарантии минимального времени ответа.
Другим важным аспектом взаимодействия ОС с внешней средой является стратегия обработки внешних прерываний. В традиционных UNIX-системах программы обработки прерываний, как правило, имеют более высокий приоритет по отношению к пользовательским процессам. При этом если прерывание происходит в результате требования самого низкоприоритетного процесса (например, подсистемы вывода на печать), то даже самый приоритетный процесс будет прерван и отложен до окончания обработки прерывания.
Система же USIX предоставляет возможность приоритетного планирования программной обработки прерываний и разбиения обработки на этапы. Аппаратное прерывание может прерывать даже самый высокоприоритетный процесс, поскольку целый ряд устройств не допускает задержки обслуживания прерываний.
В системе USIX первоначальная программа обработки прерывания всегда выполняет только самые минимальные действия, диктуемые требованиями аппаратных средств. Далее информация о прерывании устанавливается в очередь отложенных прерываний к соответствующему серверу. Таким образом, высокоприоритетный процесс будет прерван лишь на время, требуемое для сохранения информации о прерывании. Дальнейшая обработка прерывания будет продолжена соответствующим сервером в соответствии с его приоритетом. Такой механизм обработки прерывания в сочетании с прерываемостью ядра и рядом других возможностей обеспечивает гарантированное время реакции системы на события реального времени.
Надежность. Система USIX использует все доступные аппаратные средства для локализации неисправностей аппаратуры. В рамках многопроцессорной системы отказ одного процессорного элемента (РЕ) не влечет за собой «развала» системы, так как планирование работы процессоров децентрализовано. В случае зависания или отказа РЕ встроенная система тайм-аутов позволяет вернуть все захваченные ресурсы ядра и, таким образом, обеспечивает плавную реорганизацию системы вместо полного отказа.
Ядро USIX поставляется пользователю в двоичном коде в виде отладочной версии и рабочей версии.
Отладочная версия USIX содержит 32 встроенных отладочных режима, позволяющих пользователю получить различные «срезы» выполнения задачи и, таким образом, быстро локализовать ошибки в своих программах. Среди таких «срезов» можно отметить отслеживание следующих действий:
выполнение системных вызовов;
обработку сигналов;
работу системы ввода-вывода;
порождение (fork), выполнение (ехес) и завершение (ехit) процессов;
работу подсистемы взаимодействия процессов (разделяемая память (shm), семафоры (sem), сообщения (msg).
Кроме того, отладочная версия содержит ряд встроенных проверок целостности внутренних данных ядра, что позволяет легко обнаруживать ошибки, допущенные пользователем при расширении системы (создание собственных серверов, драйверов ввода-вывода).
Рабочая версия USIX не содержит перечисленных отладочных возможностей и поэтому обеспечивает более высокую (на 20— 30%) производительность.
Соответствие стандартам. USIX является операционной системой семейства UNIX и относительно программного интерфейса соответствует международным стандартам Р0SIХ 1003.1, Р081Х 1003.2 и SVID (System V Interface Definition. Issue 3). Система USIX совместима на уровне исходных и двоичных кодов с системой UNIX System V и на уровне исходных кодов — с системой ВSD4.3. В приложении 6 приведен краткий перечень основных стандартов, связанных с ОС семейства UNIХ.