1.1.2. Операционные системы реального времени
Все операционные системы реального времени (ОСРВ) сегодня являются многозадачными системами. Задачи делят между собой ресурсы вычислительной системы, в том числе и процессорное время.
Внутренняя архитектура ОСРВ3
Четкой границы между ядром и операционной системой нет. Различают их, как правило, по набору функциональных возможностей. Ядра предоставляют пользователю такие базовые функции, как планирование и синхронизация задач, межзадачная коммуникация, управление памятью и т. д. Операционные системы в дополнение к этому имеют файловую систему, сетевую поддержку, интерфейс с оператором и другие средства высокого уровня.
Одним из первых принципов построения архитектуры операционных систем является монолитность ОС (рис. 2.1), заключающийся в представлении ОС как набора модулей, взаимодействующих между собой различным образом внутри ядра системы и предоставляющих прикладным программам входные интерфейсы для обращений к аппаратуре. Главным недостатком такой архитектуры является плохая предсказуемость ее поведения, вызванная сложным взаимодействием модулей системы между собой.
Рис. 2.1. Архитектура монолитной ОС
Большинство современных ОС, как реального времени, так и общего назначения, строятся именно по этому принципу.
В задачах автоматизации широкое распространение в качестве ОСРВ получили уровневые ОС (рис 2.2). В системах этого класса прикладные приложения могли получить доступ к аппаратуре не только посредством ядра системы или ее резидентных сервисов, но и непосредственно. По такому принципу строились ОСРВ в течение многих лет. По сравнению с монолитными ОС такая архитектура обеспечивает значительно большую степень предсказуемости реакций системы, а также позволяет осуществлять быстрый доступ прикладных приложений к аппаратуре. Недостатком таких систем является отсутствие в них многозадачности. В рамках такой архитектуры проблема обработки асинхронных событий сводилась к буферизации сообщений, а затем к последовательному опросу буферов и обработке. При этом соблюдение критических сроков обслуживания обеспечивалось высоким быстродействием вычислительного комплекса по сравнению со скоростью протекания внешних процессов.
Прикладная программа
Системные сервисы
Драйвера устройств
Аппаратура ПК
Рис. 2.2. Архитектура уровневой ОС
Одной из наиболее эффективных архитектур для построения операционных систем реального времени считается архитектура клиент-сервер. Общая схема ОС работающей по этой технологии представлена на рис. 2.3. Основным принципом такой архитектуры является вынесение сервисов ОС в виде серверов на уровень пользователя, а микроядро выполняет функции диспетчера сообщений между клиентскими пользовательскими программами и серверами – системными сервисами. Такая архитектура дает массу плюсов с точки зрения требований к ОСРВ и встраиваемым системам. Среди этих преимуществ можно отметить:
1. Повышается надежность ОС, т.к. каждый сервис является, по сути, самостоятельным приложением и его легче отладить и отследить ошибки.
2. Такая система лучше масштабируется, поскольку ненужные сервисы могут быть исключены из системы без ущерба к ее работоспособности.
3. Повышается отказоустойчивость системы, т.к. «зависший» сервис может быть перезапущен без перезагрузки системы.
Файл менеджер
Менеджер сети
Прикладная программа
Менеджер памяти
Менеджер дисплея
Уровень пользователя
Уровень ядра
Микроядро
Рис. 2.3. Построение ОС с использованием архитектуры клиент-сервер
На сегодняшний день не много ОС реализуется по принципу клиент-сервер. Среди известных ОСРВ реализующих архитектуру микроядра можно отметить OS9 и QNX.
Планирование и запуск задач
Важной частью любой ОСРВ является планировщик задач, чья функция – определить, какая из задач должна выполняться в системе в каждый конкретный момент времени. К основным методам планирования обычно относят: циклический алгоритм (в стиле round robin), разделение времени с равнодоступностью (time sharing with fairness), кооперативную многозадачность. Наиболее часто используемый в ОСРВ принцип планирования – приоритетная многозадачность с вытеснением. Основная идея состоит в том, что высокоприоритетная задача, как только для нее появляется работа, немедленно прерывает (вытесняет) низкоприоритетную. Однако диапазон систем реального времени весьма широк, начиная от полностью статических систем, где все задачи и их приоритеты заранее определены, до динамических систем, где набор выполняемых задач, их приоритеты и даже алгоритмы планирования могут меняться в процессе функционирования. Существуют, например, системы, где каждая отдельная задача может участвовать в любом из трех алгоритмов планирования или их комбинации (вытеснение, разделение времени, кооперативность). Кроме того, приоритеты тоже можно назначать по-разному. В общем случае алгоритмы планирования должны соответствовать критериям оптимальности функционирования системы. Однако, если для систем жесткого реального времени такой критерий очевиден «ВСЕГДА и ВСЕ делать вовремя», то для систем мягкого реального времени это может быть, например, минимальное максимальное запаздывание или средневзвешенная своевременность завершения операций. В зависимости от критериев оптимальности могут применяться алгоритмы планирования задач, отличные от рассмотренных. Например, может оказаться, что планировщик должен анализировать момент выдачи критичных по времени управляющих воздействий и запускать на выполнение ту задачу, которая отвечает за ближайшее из них (алгоритм earliest deadline first, EDF).
Хотя каждая задача в системе, как правило, выполняет какую-либо отдельную функцию, часто возникает необходимость в согласовании (синхронизации) действий, выполняемых различными задачами. Такая синхронизация необходима, в основном в следующих случаях:
1. Функции, выполняемые различными задачами, связаны друг с другом. Например, если одна задача подготавливает исходные данные для другой, то последняя не выполняется до тех пор, пока не получит от первой задачи соответствующего сообщения. Одна из вариаций в этом случае - это когда задача при определенных условиях порождает одну или несколько новых задач.
2. Необходимо упорядочить доступ нескольких задач к разделяемому ресурсу.
3. Необходима синхронизация задачи с внешними событиями. Как правило, для этого используется механизм прерываний.
4. Необходима синхронизация задачи по времени. Диапазон различных вариантов в этом случае достаточно широк, от привязки момента выдачи какого-либо воздействия к точному астрономическому времени до простой задержки выполнения задачи на определенный интервал времени. Для решения этих вопросов, в конечном счете, используются специальные аппаратные средства, называемые таймером.
Связные задачи
Взаимное согласование задач с помощью сообщений является одним из важнейших принципов операционных систем реального времени. Здесь можно встретить такие понятия, как сообщение (message), почтовый ящик (mail box), сигнал (signal), событие (event), прокси (proxy) и т.п. Один и тот же термин для разных ОСРВ может обозначать разные вещи. Объем информации, передаваемой в сообщении, может меняться от одного бита до всей свободной емкости памяти системы. Во многих ОСРВ компоненты операционной системы, также как и пользовательские задачи, способны принимать и передавать сообщения. Сообщения могут быть асинхронными и синхронными. В первом случае доставка сообщений задаче производится после того, как она в плановом порядке получит управление, а во втором случае циркуляция сообщений оказывает непосредственное влияние на планирование задач. Например, задача, пославшая какое-либо сообщение, немедленно блокируется, если для продолжения работы ей необходимо дождаться ответа, или если низкоприоритетная задача шлет высокоприоритетной задаче сообщение, которого последняя ожидает, то высокоприоритетная задача, если конечно, используется приоритетная многозадачность с вытеснением, немедленно получит управление. Иногда сообщения передаются через буфер определенного размера (почтовый ящик). При этом, как правило, новое сообщение затирает старое, даже если последнее не было обработано.
Однако наиболее часто используется принцип, когда каждая задача имеет свою очередь сообщений, в конец которой ставится всякое вновь полученное сообщение. Стандартный принцип обработки очереди сообщений по принципу «первым вошел, первым вышел» (FIFO) не всегда оптимально соответствует поставленной задаче. В некоторых ОСРВ предусматривается такая возможность, когда сообщение от высокоприоритетной задачи обрабатывается в первую очередь (в этом случае говорят, что сообщение наследует приоритет пославшей его задачи).
Общие ресурсы
Ресурс – это общий термин, описывающий физическое устройство или область памяти, которые могут одновременно использоваться только одной задачей. Например, несколько задач пытаются одновременно выводить данные на принтер – на распечатке результата увидим страшную мешанину. Иногда может возникнуть ситуация, когда одна задача не вовремя прерывает другую, от которой зависит правильность выполнения исходной задачи. В результате может возникнуть серьезная ошибка. Упомянутые проблемы обусловлены времязависимыми ошибками (time dependent error), и характерны для многозадачных ОС, применяющих алгоритмы планирования с вытеснением.
Вот возможные пути решения этой проблемы:
1. Не использовать алгоритм планирования задач с вытеснением. Это решение, правда, не всегда приемлемо.
2. Использовать специальный сервер ресурса, то есть задачу, ответственную за упорядочивание доступа к ресурсу. В этом случае запрос на изменение значения глобальных данных посылается этому серверу в виде сообщения. Аналогичный подход применим и для физических устройств. Так, например, задача может послать данные на печать в виде сообщения, направленного к серверу принтера.
3. Запретить прерывания на время доступа к разделяемым данным. Кардинальное решение, которое, впрочем, не приветствуется в системах реального времени.
4. Использовать для упорядочивания доступа к глобальным данным семафоры. Наиболее часто применяемое решение, которое, впрочем, может привести в некоторых случаях к инверсии приоритетов. Семафор – это средство, которое часто используется для синхронизации доступа к ресурсам. В простейшем случае семафор представляет собой битовую переменную, принимающую значение 0 или 1. Задача, перед тем как использовать ресурс, захватывает семафор, после чего остальные задачи, желающие использовать тот же ресурс, должны ждать пока семафор (ресурс) освободится. Существуют так называемые счетные семафоры, где семафор представляет собой счетчик. Предположим, что у нас имеется N одинаковых ресурсов (например, принтеров). Используя семафор с инициализационным значением N, можно произвести синхронизацию доступа множества задач к группе из N ресурсов.
Синхронизация с внешними событиями
Известно, что применение аппарата прерываний является более эффективным методом взаимодействия с внешним миром, чем метод опроса. Разработчики систем реального времени стараются использовать этот факт в полной мере. При этом можно проследить следующие тенденции:
1. Попытка обеспечить максимально быструю и детерминированную реакцию системы на внешнее событие.
2. Стремление добиться минимально возможных периодов времени, когда в системе запрещены прерывания.
3. Подпрограммы обработки прерываний выполняют минимальный объем функций за максимально короткое время. Это обусловлено несколькими причинами. Во-первых, не все ОСРВ обеспечивают возможность «вытеснения» во время обработки подпрограмм прерывания. Во-вторых, приоритеты аппаратных прерываний не всегда соответствуют приоритетам задач, с которыми они связаны. В-третьих, задержки с обработкой прерываний могут привести к потере данных.
Как правило, закончив необходимые действия, подпрограмма обработки прерываний генерирует в той или иной форме сообщение для задачи, с которой это прерывание связано, и немедленно возвращает управление. Если это сообщение привело задачу в разряд готовых к исполнению, планировщик в зависимости от используемого алгоритма и приоритета задачи принимает решение о том, необходимо или нет немедленно передать управление получившей сообщение задаче.
Синхронизация по времени
Как правило, в ОСРВ задается эталонный интервал (квант) времени, который используется в качестве базовой единицы измерения времени. Размерность этой единицы для разных ОСРВ может быть разной, как, впрочем, разными могут быть набор функций и механизмы взаимодействия с таймером. Функции по работе с таймером используют для приостановки выполнения задачи на какое-то время, для запуска задачи в определенное время, для относительной синхронизации нескольких задач по времени и т.п. Множество задач одновременно могут запросить сервис таймера, поэтому если для каждого такого запроса используется элемент в таблице временных интервалов, то накладные расходы системы по обработке прерываний от аппаратного таймера растут пропорционально размерности этой таблицы и могут стать недопустимыми. Для решения этой проблемы можно вместо таблицы использовать связный список и алгоритм так называемого дифференциального таймера, когда во время каждого тика уменьшается только один счетчик интервала времени.
- Автоматизированные информационно-управляющие системы Учебное пособие
- Оглавление
- Часть I. Автоматизированные информационно-управляющие системы Основные понятия
- Глава 1. Информационно-управляющие системы реального времени §1.1. Особенности информационно-управляющих систем реального времени
- 1.1.1. Определение и основные характеристики информационно-управляющих систем реального времени
- 1.1.2. Операционные системы реального времени
- 1.1.3. Обзор систем реального времени
- §1.2. Построение информационно-управляющих систем реального времени на базе операционной системы qnx
- §1.3. Scada – системы
- §1.4. Scada – система trace mode
- 1.4.1. Обзор системы trace mode
- 1.4.2. Функциональная структура пакета
- 1.4.3. Обзор внедрения системы trace mode
- §1.5. Программно-технический комплекс DeltaV
- 1.5.1. Обзор системы DeltaV
- 1.5.2. Концепции системы DeltaV
- 1.5.3. Программные приложения DeltaV
- §1.6. Программно-технический комплекс Квинт
- 1.6.1. Описание
- 1.6.2. Структура программно-технического комплекса Квинт
- 1.6.3. Архитектура
- 1.6.4. Контроллеры
- 1.6.5. Рабочие станции
- 1.6.6. Сети
- 1.6.7. Система автоматизированного проектирования асу тп
- 1.6.8. Примеры внедрения
- §1.7. Системы автоматизации фирмы Siemens8
- 1.7.1. Состав программно-технического комплекса Totally Integrated Automation
- 1.7.2. Примеры автоматизации технологических процессов9
- §1.8. Системы автоматизации фирмы авв10
- 1.8.1. Основные направления деятельности
- 1.8.2. Системы управления, предлагаемые авв Автоматизация в России
- Глава 2. Обеспечивающие подсистемы информационно-управляющих систем и их характеристики §2.1. Программное обеспечение управления процессами
- 2.1.1. Реализация языков программирования стандарта мэк 6-1131/3 в системе trace mode
- 2.1.2. Описание языков программирования
- 2.1.3. Реализация регуляторов и объектов управления в scada-системе TraceMode
- §2.2. Программное обеспечение секвенциально-логического управления
- 2.2.1. Программируемые логические контроллеры
- 2.2.2. Языки программирования логических контроллеров
- 2.2.3. Пример реализации секвенциально-логических алгоритмов в trace mode
- §2.3. Средства идентификации и оптимизации
- 2.3.1. Идентификация характеристик технологических объектов
- 2.3.2. Идентификация характеристик технологических объектов с использованием стандартных методов Excel
- 2.3.3. Решение задачи оптимизация технологических объектов
- §2.4. Средства интеллектуального анализа данных
- 2.4.1. Общие представления о Data Mining13
- 2.4.2. Задачи Data Mining
- 2.4.3. Классы систем Data Mining
- 2.4.4. Основные этапы Data Mining
- Глава 3. Проектирование информационно-управляющих систем §3.1. Основные проблемы, системный подход и последовательность разработки
- §3.2. Адаптация информационно-управляющих систем к области применения
- §3.3. Информационные технологии проектирования иус
- §3.4. Концепции информационного моделирования
- Часть II. Примеры автоматизированных информационно-управляющих систем в управлении энергетической эффективностью технологических процессов
- 1. Оперативное управление технологическими процессами с прогнозом показателей энергетической эффективности16
- 2. Оперативное управление потоками энергетических ресурсов в производственных сетях с учетом динамики их аккумулирования19
- 3. Автоматизированная система диспетчерского управления теплоснабжением зданий на основе полевых технологий20
- 4. Паспортизация промышленных потребителей топливно-энергетических ресурсов с использованием средств автоматизации21
- 5. Оперативное управление экономичностью водяных тепловых сетей на основе макромоделирования22
- Подсистема автоматизированного анализа режимов теплоснабжения
- Методика анализа режимов тепловых сетей на основе макромоделирования
- Программное обеспечение анализа режимов тепловых сетей на основе макромоделирования
- 6. Оперативное регулирование экономичности горения в энергетических котлах24
- 7. Автоматизированный мониторинг тепловой экономичности оборудования электрических станций 27
- Резервы тепловой экономичности котлов
- Показатели энергетических ресурсов турбоагрегатов
- Резервы тепловой экономичности турбоагрегатов
- Оптимальное использование пара
- 8. Оптимизация нагрузки параллельно работающих турбоагрегатов по данным эксплуатации при неполных исходных данных28
- Постановка задачи оптимизации
- Решение задачи оптимизации
- Программа «тг-пар»
- Пример работы программы
- 9. Автоматизированная информационная система мониторинга остаточного ресурса энергетического оборудования30
- Методика оценки обобщенного остаточного ресурса энергетического оборудования
- Алгоритм оперативной оценки обобщенного остаточного ресурса энергооборудования с учетом состояния металла
- Программное обеспечение аис «Ресурс»
- 10. Автоматизированное управление процессами в охладительных установках электрических станций35
- Факторы, влияющие на охлаждение
- Устройство и основные характеристики градирен
- Оптимизация работы башенных градирен
- 11. Автоматизированная компрессорная установка41
- Математическое описание объекта управления
- Анализ вариантов установки пароструйного компрессора для подачи пара в деаэраторы энергокорпуса
- Автоматизированная система управления пароструйным компрессором
- 12. Лингвистический подход к оптимизации управления вельц-процессом45
- Алгоритм выделения области Парето-оптимальных режимов в информационной базе данных
- Нечеткие зависимости (лингвистические правила) в управлении процессом вельцевания
- 13. Энергетический менеджмент производства огнеупоров48
- Приложение. Обзор промышленных сетей
- 1. Протокол передачи данных modbus50
- 2. Протокол передачи данных bitbus
- 3. Протокол передачи данных anbus
- 4. Протокол передачи данных hart
- 5. Протокол передачи данных profibus52
- 5.1. Независимые от поставщика взаимодействия между промышленными объектами (Fieldbus Communication).
- 5.2. Семейство profibus
- 5.3. Основные характеристики profibus-fms и profibus-dp
- 5.3.1. Архитектура протокола profibus
- 5.3.2. Физический Уровень (1) протокола profibus
- 5.4.1. Прикладной Уровень (7)
- 5.4.2. Коммуникационная модель
- 5.4.3. Объекты коммуникации
- 5.4.4. Сервисные функции fms
- 6. Полевая шина foundation Fieldbus53