Что такое система реального времени
Перейти к содержимому

Что такое система реального времени

  • автор:

Лекция 1. Системы реального времени. Виды ОС РВ. Требования к ОС РВ

Управление автоматическими или автоматизированными комплексами, предъявляющими высокие требования к времени выполнения задач осуществляется операционными системами реального времени. Они обеспечивают гарантированное время реакции на внешние события и минимальные задержки.

Операционная система реального времени, ОС РВ (англ. Real-Time Operating System) — тип операционной системы, как правило, специального назначения. Для этого термина есть различные определения, порой противоречащие друг другу:

  • ОС, в которой успешность работы любой программы зависит не только от её логической правильности, но и от времени, за которое она получила этот результат. Если система не может удовлетворить временным ограничениям, должен быть зафиксирован сбой в её работе
  • Стандарт POSIX 1003.1 даёт определение: «Реальное время в операционных системах — это способность операционной системы обеспечить требуемый уровень сервиса в определённый промежуток времени»
  • ОС, реагирующая в предсказуемое время на непредсказуемое появление внешних событий
  • Интерактивные системы постоянной готовности. В категорию ОС РВ их относят исходя из маркетинговых соображений и если интерактивную программу называют «работающей в реальном времени», то это лишь означает, что запросы от пользователя обрабатываются с задержкой, незаметной для человека.
  • Иногда понятие системы реального времени отождествляют с «быстрой системой», но это не всегда правильно, так как важно не время задержки реакции ОС РВ, а то, чтобы этого времени было достаточно для рассматриваемого приложения и оно было гарантированно.
  • Во многих специализированных сферах вводят свои понятия «реального времени». Например, процесс цифровой обработки сигнала называют идущим в реальном времени, если анализ и/или генерация данных может быть произведён за то же время, что и анализ/генерация тех же данных без цифровой обработки сигнала. Например, если при обработке аудио данных требуется 2,01 секунд на анализ 2,00 секунд звука, то это не процесс реального времени. Если же требуется 1,99 секунд, то это процесс реального времени.

Для систем реального времени характерно следующее:

  • гарантированное время реакции на внешние события (например на прерывания от оборудования);
  • жёсткая подсистема планирования процессов (высокоприоритетные задачи не должны вытесняться низкоприоритетными, за некоторыми исключениями);
  • повышенные требования к времени реакции на внешние события или реактивности (задержка вызова обработчика прерывания не более десятков микросекунд, задержка при переключении задач не более сотен микросекунд)

Классическим примером задачи, где требуется ОС РВ, является управление роботом, берущим деталь с ленты конвейера. Деталь движется и робот имеет лишь маленький промежуток времени, когда он может её взять. Если он опоздает, то деталь уже не будет на нужном участке конвейера, и следовательно, работа не будет сделана, несмотря на то, что робот находится в правильном месте. Если он спозиционируется раньше, то деталь ещё не успеет подъехать, и он заблокирует ей путь.

Виды ОС РВ

Динамические свойства программ реального времени принято характеризовать тремя определениями: программы «жесткого» (hard), «мягкого» (soft) и интерактивного («условного») реального времени.

Жесткое реальное время. Предусматривает наличие гарантированного времени отклика системы на конкретное событие, например, аппаратное прерывание, выдачу команды управления и т.п. Абсолютная величина времени отклика большого значения не имеет. Так, если необходимо, чтобы программа отработала некоторую команду за 1 миллисекунду, но она справляется с этим заданием лишь в 95% случаев, а в 5% не укладывается в норматив, такую систему нельзя охарактеризовать как работающую в жестком реальном времени. Если же команду нужно отработать в течение часа, что и происходит в 100% случаев – налицо жесткое реальное время.

В большинстве русскоязычной литературы такие системы называют системами с детерминированным временем. При практическом применении время реакции должно быть минимальным.

Мягкое реальное время. В этом случае ожидающееся время отклика системы является величиной скорее индикативной, нежели директивной. Конечно, предполагается что в большинстве случаев (процентов 80 — 90) отклик уложится в заданные пределы. Однако и остальные варианты – в том числе полное отсутствие реакции системы – не должны приводить к плачевным результатам. Обычно считается, что если временной норматив превышен на один порядок, то это еще терпимо .

Интерактивное реальное время. Является скорее психологической, нежели технической характеристикой. Определяет время, в течение которого оператор – человек – способен спокойно, без нервозности, ожидать реакции системы на данные им указания. В качестве примера можно привести весьма популярные сегодня игры из категории «стратегии реального времени» (real-time strategy, см. например квазар на основе Warhammer).

В системах реального времени необходимо введение некоторого директивного срока (в англоязычной литературе – deadline), до истечения которого задача должна обязательно (для систем мягкого реального времени – желательно) выполниться. Этот директивный срок используется планировщиком задач как для назначения приоритета задачи при ее запуске, так и при выборе задачи на выполнение.

Зачастую под СРВ безусловно понимают встроенные операционные системы, на деле же, существует различие между системами реального времени и встроенными системами. От встроенной системы не всегда требуется, чтобы она имела предсказуемое поведение, и в таком случае она не является системой реального времени. Однако даже беглый взгляд на возможные встроенные системы позволяет утверждать, что большинство встроенных систем нуждается в предсказуемом поведении, по крайней мере, для некоторой функциональности, и таким образом, эти системы можно отнести к системам реального времени.

Основные требования к ОС РВ

Мартин Тиммерман (директор компании-разработчика встраиваимых систем Dedicated Systems Experts) сформулировал следующие необходимые требования для ОС РВ:

  • ОС должна быть многозадачной и допускающей вытеснение (preemptable),
  • ОС должна обладать понятием приоритета для потоков,
  • ОС должна поддерживать предсказуемые механизмы синхронизации,
  • ОС должна обеспечивать механизм наследования приоритетов,
  • поведение ОС должно быть известным и предсказуемым (задержки обработки прерываний, задержки переключения задач, задержки драйверов и т.д.); это значит, что во всех сценариях рабочей нагрузки системы должно быть определено максимальное время отклика.

Особенности архитектуры ОС РВ

В течение последних 25-30 лет структура операционных систем эволюционировала от монолитной к многослойной структуре ОС и далее к архитектуре клиент-сервер. Эти решения в той или иной степени нашли применение и при разработке операционных систем реального времени.

Монолитная архитектура представляет систему, состоящую из набора взаимодействующих модулей. Приложения обращаются к системе через API модулей. Изменения одного модуля влияют на другие модули. Чем больше модулей, чем сложнее они связаны между собой, тем тем менее предсказуемо поведение такой системы в процессе эксплуатации. Кроме того, возникают трудности для использования ОС такого типа в распределенной многопроцессорной системе.

Монолитное ядро ОС

Рис.1. Монолитная архитектура ОС РВ

Многослойная архитектура описывает систему, состоящую из нескольких функциональных уровней. Приложение может обращаться к аппаратным ресурсам как через системные вызовы ядра и системные службы, так и через API уровней. Вообще-то, возможность обращения к нижележащим слоям минуя верхние уровни семантически неверно, но для систем реального времени такая организация позволяет увеличить предсказуемость системы и снизить время отклика. Недостатком многослойной архитектуры является то, что изменения одного слоя влияют на соседние слои. Еще один недостаток, свойственный многослойной архитектуре – отсутствие многозадачности. Однако, далеко не всегда и не всем системам реального времени требуется поддержка многозадачности. Например, сложно обосновать необходимость многозадачного режима для встроенной ОС промышленного робота, подающего детали на конвейер.

Многослойная архитектура ОС

Рис.2. Многослойная архитектура ОС РВ

Клиент-серверная архитектура ОС основана на минимизации количества функций, выполняемых ядром (точнее, микроядром) такой системы. Например, на уровне ядра выполняются только планировщик, примитивы синхронизации и служба сообщений. Вся остальная функциональность выносится на пользовательский уровень и реализуется через серверы. Приложения-клиенты обращаются к ним и получают от них ответы путем обмена сообщениям через службу сообщений уровня ядра.

Клиент-серверная архитектура на основе микроядра

Рис.3 Клиент-серверная архитектура ОС РВ

Клиент-серверная архитектура позволяет создавать масштабируемые ОС и упрощает распределение в многопроцессорной системе. При эксплуатации системы замена одного модуля не вызывает эффекта “снежного кома”; кроме того, сбой модуля не всегда влечет за собой отказ системы в целом. Появилась возможность динамической загрузки и выгрузки модулей. Главной проблемой в этой модели является защита памяти, поскольку серверные процессы должны быть защищены. При каждом запросе сервиса система должна переключаться с контекста приложения на контекст сервера. При поддержке защиты памяти время переключения с одного процесса на другой увеличивается.

Контрольные вопросы

  1. Дайте определение операционной системы реального времени
  2. Что такое deadline?
  3. В чем отличие «жесткого» реального времени от «мягкого»
  4. Сформулируйте основные требования к ОС РВ
  5. Укажите основные отличия в требованиях к ОС РВ от универсальных ОС
  6. Опишите модульную архитектуру
  7. Опишите многослойную архитектуру
  8. Опишите клиент-серверную архитектуру

Системы реального времени. Виды ОС РВ. Требования к ОС РВ

Как устроена RTOS — операционная система реального времени

Есть два основных вида операционных систем: общего назначения и реального времени. Системы общего назначения — это обычные операционные системы в привычном нам смысле: Windows, Linux и Mac OS. Они решают много задач сразу, но иногда могут зависать или тормозить. Но есть устройства и задачи, где на всё нужна моментальная реакция без права на ошибку или зависание. В них используют операционные системы реального времени. Про них и поговорим.

Что такое операционная система реального времени (RTOS)

RTOS — это аббревиатура от real-time operating system, операционная система реального времени. Главное отличие таких систем от всех остальных — в скорости обработки внешних сигналов и своевременном реагировании. В RTOS время реагирования и обработки сигнала должно быть таким, чтобы гарантированно успеть сделать всё, что нужно в данный момент. Чтобы было понятнее, поясним на фитнес-браслете.

Задача фитнес-браслета — отслеживать пульс во время тренировок, следить за физической активностью и точно отсчитывать время. А если тренировки сейчас нет — показывать время, управлять музыкой, будильниками и прочим хозяйством.

Представим ситуацию, что у нас браслет показывает время на экране постоянно — движутся стрелки, мигают цифры, всё как в обычных часах. Но как только мы нажимаем кнопку или касаемся экрана, браслет бросает всё и начинает обрабатывать наше нажатие — например запускать секундомер. Это значит, что браслет в режиме реального времени реагирует на все наши действия — без задержек и зависаний. При этом в фоне может идти обратный отсчёт, а датчики будут измерять пульс — всё это не должно мешать сразу реагировать на внешние действия.

Планировщик задач

В основе систем реального времени лежат системные часы и планировщик задач. Цель планировщика — обеспечить выполнение всех задач в нужное время и вовремя среагировать на внешнее событие.

Например, в нашем браслете одновременно работают такие задачи:

  • отображение времени на экране;
  • секундомер в фоне;
  • измерение пульса каждые 2 минуты.

Так как каждая задача должна работать в режиме реального времени, а процессор один, то планировщик распределяет эти задачи так:

  1. Выполняет одну команду из функции с отображением времени и ставит её на паузу.
  2. Переключается на секундомер, смотрит, сколько времени прошло, запоминает это и переключается обратно на отображение.
  3. Показывает время на экране, обновляет положение секундной стрелки и переключается на секундомер, и всё по новой.
  4. В этот момент планировщик получает уведомление от внутренних часов, что прошло 2 минуты. Он ставит все задачи на паузу, даёт команду датчику измерять пульс и снова переключается на выполнение других задач.
  5. Теперь планировщик по кругу перебирает уже три задачи: стрелки, секундомер и пульс.

Если это нарисовать в виде схемы, получится так:

Как устроена RTOS — операционная система реального времени

Жёсткие и мягкие системы

Смысл RTOS в том, чтобы система моментально отзывалась на любые события, независимо от того, что происходит у неё прямо сейчас. В зависимости от скорости реакции такие системы делят на жёсткие и мягкие.

Жёсткие системы гарантируют выполнение любой задачи вовремя, а сам процесс занимает не больше того времени, что прописан в регламентах задач. Например, часть систем автопилотов в авиации работает на таких системах — они должны укладываться в норматив по времени срабатывания в любых нештатных ситуациях. Аварийные системы управления тоже часто работают на RTOS, чтобы успевать вовремя реагировать на происходящее.

При тестировании жёсткой системы задержка выполнения считается ошибкой, и тест проваливается. Даже если потом система сделала всё правильно и вовремя, но не успела вовремя стартовать нужный процесс, тест не пройден и система отправляется на доработку.

Мягкие системы к задержкам относятся чуть проще: это неприятно, но терпимо, если она не превышает определённых значений (например, 0,3 секунды).

Большинство бытовых систем относится к мягким — если фитнес-браслет среагирует на нажатие на 0,1 секунду позже, ничего критичного не произойдёт. Но если от нажатия до реакции проходит пара секунд — беда. Дешёвые китайские умные часы часто тормозят именно по этой причине — чтобы не тратить время и деньги на оптимизацию, в часы ставят стандартный софт и не подгоняют его под конкретный процессор.

Почему RTOS — это надёжно

RTOS по большей части решает проблему зависаний.

Допустим, в системе перемкнуло датчик управления и одна из функций, которая за него отвечает, ушла в бесконечный цикл. В обычной ОС это привело бы к тому, что зависла бы программа или весь компьютер. В случае с RTOS это решается так:

  1. Планировщик выполняет по очереди команды и доходит до команды с бесконечным циклом.
  2. Выполняет одну команду оттуда, ставит эту задачу на паузу и идёт к другим задачам.

Получается, что бесконечный цикл тоже выполняется по очереди с другими — это значит, что он не будет мешать работе остальных задач. При этом, если планировщик достаточно умный, в какой-то момент он поймёт, что функция работает неправильно, и либо остановит её, либо перезапустит.

Благодаря тому, что система не зависает даже при попадании в бесконечный цикл, RTOS и получилась такой надёжной системой.

На чём пишут системы реального времени

Главные языки для RTOS — это C и C++ (то есть «Си» и «Си плюс плюс»). Они позволяют учесть особенности процессора и памяти и обеспечить нужное быстродействие.

Ещё RTOS пишут на ассемблерах — когда нужно выжать из железа максимум и сделать супербыструю реакцию на любые события. Но это уже высший пилотаж, и такое встречается редко.

Где применяются RTOS

Системы реального времени применяются везде, где нужна надёжность, скорость или простота.

Например, RTOS управляет системами защиты серверов, кардиостимуляторами, электронной тормозной системой в автомобиле, автопилотом, системами отслеживания биржевых котировок и бронирования билетов. А всё потому, что там нужна моментальная обработка запросов и полное отсутствие сбоев в любых условиях.

С другой стороны, RTOS в простейшем виде стоит в музыкальных брелках, синтезаторах, беспроводных колонках и игрушках — там, где нужно реагировать на действия пользователя, но требования к задержкам не такие критичные.

Апскиллинг, как говорится

Апскиллинг — это, например, переход с уровня junior на уровень middle, а потом — senior. У «Яндекс Практикума» есть курсы ровно для этого: от алгоритмов и типов данных до модных фреймворков.

Апскиллинг, как говорится Апскиллинг, как говорится Апскиллинг, как говорится Апскиллинг, как говорится

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Операционные системы реального времени для начинающих

Привет, Хабр!
Сегодня я расскажу о такой интересной штуке как операционная система реального времени(ОСРВ). Не уверен, что это будет интересно для бывалых программистов, но, думаю, новичкам понравится.

Что такое ОСРВ?

Если мы посмотрим в Википедию, то увидим аж 4 определения.
Если же говорить вкратце — то ОСРВ — это операционная система, реагирующая на внешние события в определенный промежуток времени. Отсюда мы и можем понять основное предназначение ОСРВ — приборы, в которых необходима быстрая реакция на события (однако ни в коем случае не путайте работу ОСРВ с прерываниями).

Зачем она нам нужна?

На то есть довольно много причин.
Во-первых ОСРВ поддерживает многозадачность, приоритеты процессов семафоры и многое другое.
Во-вторых она очень легкая и почти не требует ресурсов.
В-третьих все вышесказанное мы можем получить практически на любом железе (например, FreeRTOS запускается даже на 8-битных AtMega).
Ну и в-четвертых: просто поиграться и получить удовольствие.

Обзор 3 известных ОСРВ.

Внимание: дальше идет мое личное мнение.

FreeRTOS

Одна из самых популярных ОСРВ на сегодняшний день. Портирована на огромное количество железа. Оффициальный сайт.

Плюсы

1) Бесплатная
2) Портирована на большое количество железа
3) Мощный функционал
4) Есть различные библиотеки: графика, интернет и другое.
5) Хорошая документация.

Минусы

1)Довольно-таки сложный процесс портирования на новое железо.

Вывод: Это действительно профессиональная ОСРВ с хорошей документацией. Будет хороша для новичка, если на его железо уже есть порт.

KeilRTX

До последнего времени эта ОСРВ была коммерческой, но недавно стала открытой. Работает только на архитектуре arm. Оффициальный сайт.

Плюсы

1)Бесплатная
2)Легко портируется на новое железо( в пределах архитектуры arm).
3) Есть различные библиотеки: графика, интернет и другое.

Минусы

1)Работать на в Keil с ней практически нереально
2) Немного урезанный функционал
3) Поддерживается только arm.
4)(на личном опыте) Проигрывает многим ОСРВ по скорости.
Вывод: идеально подойдет для новичка и мелких проектов.

uc/os

Мощная коммерческая ОСРВ. Сайт.

Плюсы

1) Огромное количество функций и библиотек.
2) Поддерживает много железа

Минусы

1)Коммерческая.
2) Сложна в использовании.

Вывод: назвать ее ОСРВ для новичка можно с большой натяжкой.

Другие интересные ОСРВ

RTLinux ОСРВ на основе обычного Линукса.
QNX ОСРВ на основе Unix.

Особенности разработки с использованием ОСРВ

Ну во-первых надо понять следующее: ОСРВ- это не Windows. Его нельзя установить. Эта система просто компилируется с Вашей программой.
При написании программ с ОСРВ не используются функции в обычном их понимании. Вместо функций используются процессы( или таски).Отличие в том что процессы, в отличии от функций, являются бесконечными циклами и никогда не заканчиваются(если только кто-то или он сам его не убъет — то есть выгрузит из памяти).
Если включено несколько процессов, то ОСРВ переключает их, выдавая машинное время и ресурсы по очереди. Вот тут то и возникает понятия приоритета процесса- если двум процессам единовременно нужно машинное время, то ОСРВ даст его тому, у кого приоритет больше.
В ОСРВ есть специальные функции задержки- чтобы время зря не пропадало на время задержки одного процесса выполняется второй.
Теперь поговорим о такой вещи как семафор- эта такая штука, которая управляет доступом процесса к ресурсам приложения. Для каждого ресурса есть маркер — когда процессу нужен ресурс — он его забирает и пользуется данным ресурсом. Если маркера нет, то процессу придется ждать, пока его вернут. Приведу пример: разные процессы отправляют информацию по одному UART. Если бы не было семафора, то они бы отправляли байты по очереди и получилась бы неразбериха. А так первый процесс взял маркер на UART отправил сообщение и отдал второму( и так — до бесконечности).

Дополнительные библиотеки ОСРВ.

Часто ОСРВ предлагают различные библиотеки для работы, например, с графикой, интернетом и т.д. Они действительно удобны и не стоит брезгать их использовать. Однако, помните, что без ОСРВ, для которой они написаны, они работать не будут.
Вот примеры:
Для RTX графика интернет Файловая система

Во второй( и, наверное, последней ) части мы поговорим о мьютексах, буферах сообщений и попрактикуемся в их использовании.

Операционная система реального времени (RTOS): эффективное управление в мире мгновенной реакции

Операционные системы реального времени (RTOS) становятся неотъемлемым инструментом для эффективного управления процессами, требующими немедленной обработки и мгновенной реакции. Эта операционная система обеспечивает надежную и предсказуемую работу в решениях, где промедление или сбой могут иметь критические последствия.

Если хочешь начать зарабатывать онлайн и тебя привлекает сфера IT, записывайся на бесплатную персональную диагностику. На ней можно задать вопросы и получить инструкции по выходу на заработок в 300 тысяч рублей в месяц!

Что такое операционная система реального времени (RTOS)?

Операционная система реального времени (RTOS) – это специальная разновидность архитектуры, предназначенная для обработки задач в режиме настоящего, гарантированного тайминга. Она разрабатывается с учетом требований по работе в строго заданное время, а также гарантирует предсказуемость выполнения операций и обработки событий.

Эта операционка обладает особенностями, которые делают ее подходящей для широкого спектра приложений, включая автомобили, медицинское оборудование, промышленные контроллеры, аэрокосмическую, военную технику. Там, где нужны тяжелые и быстрые вычисления.

Принципы работы

Операционная система реального времени функционирует по основным принципам:

  1. Многозадачность: обеспечивает выполнение нескольких задач (иначе “потоки” или”процессы”) параллельно. Каждая операция имеет свой собственный контекст выполнения и время, выделенное для ее выполнения. RTOS эффективно распределяет вычислительные ресурсы между процессами, обеспечивая их конкурентное выполнение.
  2. Управление процессорными задачами: имеет механизмы управления таймингами, который позволяет задавать приоритеты, устанавливать ограничения и гарантировать, что потоки выполняются корректно.
  3. Обработка событий: обеспечивает эффективную работы с событиями, позволяя программам реагировать на воздействия в настоящем режиме. События программируются на вызов внешними датчиками, коммуникационными интерфейсами. РТОС позволяет определить приоритеты событий и устанавливать механизмы.

Особенности и преимущества

У технологии есть преимущества и особенности:

  1. Предсказуемость: гарантирует предсказуемость таймингов, что позволяет точно оценить и управлять временными ограничениями приложений. Это особенно важно в критических приложениях, где задержка непозволительна.
  2. Эффективное использование ресурсов: эффективно распределяет вычислительные ресурсы между задачами. Это помогает оптимизировать использование процессора, памяти, других комплектующих. Это обеспечивает высокую производительность и отзывчивость.
  3. Открытый интерфейс: РТОС предоставляет разработчикам открытый интерфейс для разработки приложений. Это позволяет создавать гибкие и масштабируемые решения, интегрировать различные компоненты и упрощает процесс разработки и отладки приложений.

Примеры ОС

Есть RTOS, разработанные для различных платформ и архитектур. Популярные:

  1. FreeRTOS: бесплатная и открытая, которая широко используется во многих встроенных системах и микроконтроллерах.
  2. QNX: мощная и надежная, которая часто применяется в автомобильной промышленности.
  3. VxWorks: коммерческая, предназначенная для широкого спектра приложений, включая аэрокосмическую и оборонную промышленность.
  4. uC/OS: легковесная с открытым исходным кодом, предназначенная для ограниченных ресурсов, интегрированных решений.

Заключение

Операционные системы реального времени (RTOS) играют ключевую роль в решениях, где требуется мгновенная реакция на события. Они обеспечивают эффективное управление задачами, предсказуемый ход выполнения и обработку событий в режиме “здесь и сейчас”.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *