- •Основные задачи курса
- •Классификация реализации систем реального времени
- •Классификация систем реального времени
- •Средства разработки систем рв
- •Проблемы проектирования систем
- •Построение алгоритма системы
- •Организация систем реального времени
- •Место систем рв в информационных системах
- •Общие характеристики систем реального времени
- •Задачи срв
- •Требования к системам реального времени
- •Планирование задач
- •Алгоритмы планирования спорадических и апериодических задач
- •Планировщик заданий
- •Алгоритм функционирования планировщика
- •Анализ таблиц
- •Классификация приложений систем реального времени
- •Моделирование систем реального времени
- •Проблема моделирования сетей при случайном доступе
- •Алгоритм оценки Позволяет понять: работоспособна система или нет.
- •Оптимизация системы сообщений
- •Применение модели реального времени
- •Надежность в срв
- •Проектирование систем жесткого реального времени
- •Обзор процесса проектирования
- •Учет особенностей жестких систем реального времени
- •Жизненный цикл жестких систем реального времени
- •Логическая архитектура
- •Наложение на проект условий для анализа
- •Физическая архитектура
- •Атрибуты объектов
- •Планировка
- •Контроль за временными ошибками
- •Операционные системы реального времени
- •Монолитная архитектура ос
- •Архитектура на базе микроядра
- •Принцип децентрализации функций ос
- •Объектно-ориентированная архитектура
- •Особенности функционирования ос рв
- •Виды операционных систем
- •Операционные системы реального времени для Windows
- •Расширения
- •Достоинства и недостатки операционных систем реального времени
- •Технология разработки собственной ос рв
- •Средства создания операторского интерфейса автоматизированных систем (scada-приложения)
- •Возможности и средства, присущие scada-пакетам
- •Программные компоненты
- •Утилиты администрирования
- •Классификация scada-приложений
- •Виды scada-приложений
- •Трейс моуд
- •Другие scada-приложения
- •Технология разработки scada-приложений
- •Базы данных рв
- •Принцип функционирования Industrial sql Server:
- •Функциональные возможности сервера базы данных
- •10. Простота использования.
- •11. Интеграция с другими компонентами комплекса.
- •12. Возможность организации клиент-серверной системы.
- •13. Возможность расширения.
- •Комплексные программные средства разработки приложений рв.
- •Инструменты разработчиков системы автоматизации.
- •Лабораторная работа №1
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
Контроль за временными ошибками
Описанная выше планировка может быть эффективна, если оценки/измерения верхней границы времени исполнения точны. В области временных характеристик определяются две стратегии для ослабления результатов ошибок в компонентах программ:
Не давать объекту вычислительного времени больше, чем ему нужно.
Не позволять объектам выполняться по истечении срока.
Операционные системы реального времени
Необходимы для обеспечения выполнения пользовательских задач и функций. Операционная СРВ базируется на планировщике задач (периодическом и апериодическом).
Имеет особенности по работе с объектами ввода/вывода. Любые ОС реального времени базируются на архитектуре. Существуют 3 основных архитектуры ОС:
(1) – монолитная,
(2) – на основе микроядра,
(3) – объектно-ориентированная.
Каждая из архитектур позволяет обеспечивать функционирование задач в режиме реального времени.
Монолитная архитектура ос
Саму ОС можно разделить на 5 основных частей (см. рис.23): задачи, интерфейс прикладных программ (И.П.П.), собственно ОС или ее ядро, драйверы (Д.), аппаратные средства (А.С.).
Рис. 23.
Самым простым примером является ОС DOS.
Достоинства: простота создания, простота управления задачами.
Недостатки: отсутствие гибкости в системе и возможности управления задачами в процессе функционирования систем; при зацикливании одного из блоков система блокируется и перестает функционировать.
Архитектура на базе микроядра
Рис. 24.
Принцип децентрализации функций ос
Все базовые функции – задача микроядра, то есть запуск системы, управление доступом к аппаратным средствам и т.д. Все остальные функции выделены в отдельные менеджеры. Каждый менеджер выполняет строго определённые функции.
Достоинства: более гибкая система
Недостатки: каждая задача зависит от микроядра и от его реализации.
Большинство операционных систем РВ реализовано на базе микроядра (QNX и т.д.)
Объектно-ориентированная архитектура
Вводится понятие объекта. Объект для ОС – это задача. Для каждой задачи была предложена реализация ядра пользователя. Каждый элемент архитектуры может взаимодействовать с любым другим. Виды и характер воздействия определяется конфигурацией ОС.
Рис. 25.
Каждая программа включает микроядро, которое обеспечивает выполнение основных функций, распределение приоритетов, загрузка задач и обеспечение взаимодействия с другими задачами. Взаимодействие с другими данными через потоки (обеспечивает передачу информации между программами и др.), то есть это буфер для обмена информацией. Для взаимодействия всех компонентов системы был реализован модуль «почтовый ящик». Это буфер системы (обеспечивает приём, обработку и передачу информации между компонентами). «Почтовый ящик» является сервером, он функционирует по запросу от других компонентов. Характер взаимодействия компонентов не влияет на «почтовый ящик» и другие модули.
Особенности функционирования ос рв
Ядро ОС обеспечивает выполнение следующих функций:
Планирование задач.
Синхронизация задач.
Межзадачная коммуникация.
Управление памятью.
Вспомогательные элементы:
Файловая система.
Сетевая поддержка.
Интерфейс с оператором.
Задача – готовая к выполнению программа, участвующая в вычислительном процессе.
Цель менеджера задач – определение последовательности выполнения задач пользователя. У менеджера задач есть ряд функций, которые называются функции ядра:
Планирование задач.
Циклическое планирование. Все задачи одна за другой. Нет возможности изменения функционирующей задачи по приоритетам.
Разделение времени.
1.2.1. Разделение времени на равные интервалы. Для каждой задачи выделяется интервал времени. Если задача не закончила своё исполнение в интервале, то выполняется в следующем доступном интервале (псевдопараллельное исполнение задач). Реальное параллельное выполнение задач возможно только при нескольких процессорах (вычислительных узлах).
1.2.2. Разделение времени с вытеснением. Разделение по времени, но при появлении более высокоприоритетной задачи более низкоприоритетная задача вытесняется.
2. Назначение приоритетов (см. алгоритм планирования).
3. Синхронизация задач – обеспечение согласованности действий программ на вычислительном узле.
Синхронизируются:
Связанность задач (то есть логическая последовательность задач).
Обеспечение доступа к общим ресурсам.
Обеспечение синхронизации с внешними событиями.
Обеспечение синхронизации по времени.
Связанность задач определяет последовательность функций реального объекта. Каждое действие в системе должно происходить последовательно в зависимости от предыдущих действий, должна сохраняться история. Для этих целей используется «почтовый ящик» - буфер и сортировщик сообщений. Принцип связности реализуется как алгоритм функционирования системы.
Обеспечение доступа к общим ресурсам необходимо для того, чтобы обеспечить доступ к разделяемым ресурсам для всех задач. Это физическое устройство или область памяти.
Рис. 26.
Проблемы возникают при использовании алгоритма «с вытеснением».
Если одна из задач захватит ресурс и не обеспечит доступ для всех остальных или не успеет выполнить все действия на устройстве, то возникают ошибки функционирования, связанные с «гонками». Их можно обнаружить только в процессе эксплуатации системы.
Способы решения проблем гонок.
1. Создание сервера ресурса, то есть задачи, отвечающей за доступ к ресурсу. Она обеспечивает планирование последовательности выполнения.
2. Запрет прерывания доступа к ресурсу на время его использования.
3. Принцип «семафора».
Реализация проблем «гонок» осуществляется в критических секциях – участках кода программ, где происходит обращение к разделяемым ресурсам. Для решения можно реализовать несколько потоков и только 1 поток отвечает за доступ к ресурсу.
Вторая проблема – «смертельный захват» (DeadLock). Возникает, если задачи не поделили между собой ресурс.
Пример:
Задача А → дисплей → клавиатура
Задача В → клавиатура → дисплей
захват требует
задачи зашли в тупик. Ситуация DeadLock.
Способы решения проблемы:
Принцип «либо всё, либо ничего». Только одна задача может претендовать на ресурсы. Вторая задача ожидает доступа только после освобождения обоих ресурсов первой задачей.
Организация сервера для доступа к ресурсу.
При требованиях доступа к занятому ресурсу задача, требующая ресурс отключается и ждёт выполнения задачи В.
«Инверсия приоритетов» - это ситуация, при которой задача с более высоким приоритетом не может выполняться из-за задачи с более низким приоритетом.
Пример:
А – высокоприоритетная задача.
В – среднеприоритетная задача.
С – низкоприоритетная задача.
С → захватывает ресурс.
В → выполняется.
С → останавливается (ресурс захвачен).
А → пытается захватить ресурс и останавливает В, но С уже захватила ресурс. В не выполнится пока А не выполнится.
Решение:
1. Сервер ресурсов. Выполняется задача с самым высоким приоритетом, и доступ к ресурсам будет освобождаться.
2. Перераспределение ресурсов. Ресурс выделяется той задаче, которая начинает выполняться в данный момент.
Для оптимизации поведения системы (выполнение алгоритма и не возникновение опасных ситуаций) необходимо для каждого ресурса выделить свой сервер с заданным приоритетом и методом доступа, который обеспечит взаимодействие ресурсов и задач.
Рис. 27.
Наименее проблемная архитектура по обеспечению доступа к ресурсам – это объектно-ориентированная (из-за буфера – «почтового ящика» и микроядра).
Синхронизация с внешними событиями
Это обеспечение реакции системы на действия, передающиеся из внешних систем и не являющихся частью вычислительного узла.
Обеспечение синхронизации возможно:
При организации распределённой системы и использовании сетевых компонентов.
Синхронизация с узлами, подключенными к внутренней шине вычислительного узла.
Синхронизация с внешними событиями используется для обеспечения алгоритма функционирования при распределении системы по разным вычислительным узлам.
Синхронность функционирования обеспечивается наличием общих характеристик вычислительных узлов системы.
Для реализации синхронизации с узлами, подключенными к внутренней шине вычислительного узла, используются 2 метода:
метод прерывания
метод опроса.
Метод прерывания более скоростной, но в нём большой поток лишней информации. Применяется для быстрых систем и систем с большой градацией приоритетов.
В методе опроса задача, которой нужна информация, отправляет запрос на другой вычислительный узел именно в тот момент, когда ей это необходимо. Уменьшается поток информации, но обычно этот метод используется для более медленных задач, так как метод опроса требует подтверждение. Запрос → ответ → готовность к приёму информации → передача информации → подтверждение приёма (необязательно).
Синхронизация по времени
Для этой цели задаётся квант времени. Он является эталонным измерителем и называется тиком. Фактически для операционной системы тик – это базовая единица измерения. Размер этого тика может быть различным для различных операционных систем и зависит от тех задач, которые в этой операционной системе исполняются. Размер тика определяется по таймеру, а также из механизма взаимодействия с таймером. Методы взаимодействия с таймером также могут быть различными в зависимости от операционной системы. Синхронизация задач по времени заключается в использовании этих таймеров. Таймеры бывают двух видов: программные и аппаратные. Количество аппаратных таймеров ограничено архитектурой вычислительного узла. Количество программных таймеров ограничено архитектурой операционной системы либо не ограничено. Одним из подвидов программных таймеров являются пользовательские таймеры. Пользовательский таймер – это некоторый счётчик и обработчик этого счётчика. Любой программный таймер основывается на аппаратных таймерах. Обычно на одном вычислительном узле бывает один аппаратный таймер, который функционирует по прерыванию. Для таймера существует понятие истечения таймера.
Рис. 28.
Синхронизация по времени обеспечивается по меткам прерывания. Выполнение каждой задачи реализуется по временному интервалу. Временной интервал определяется по таймеру. Любой программный таймер должен быть кратен аппаратному таймеру. Если это условие не выполняется, то синхронизация по времени для задач невозможна.
