LINUX.ORG.RU

разработка под ОС реального времени


0

1

Разработка под ОСРВ отличается от онной под ОС общего назначения?

Для ОСРВ процесс должен выполниться за определённый промежуток времени, иначе он считается «битым» и система предпринимает по отношению к нему особые инструкции? Если так, то ОСВР должна как-то определять какой интервал на исполнение этого процесса нужно выделить, но как это достигается?


Требования по «реальному времени» к ОС. Она должна и кванты времени по таймеру выделять процессам и на прерывания железа реагировать с заданным временем реакции.

ilovewindows ★★★★★
()

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

m0rph ★★★★★
()

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

mm3 ★★★
()

Разработка под ОСРВ отличается от онной под ОС общего назначения?

Да, «реальное время» бывает мягким и жёстким, в зависимости от задач: подробности.

quickquest ★★★★★
()
Ответ на: комментарий от m0rph

Почему бы и нет? Если GUI отдан достаточно низкий приоритет, то проблем быть не должно.

x4DA ★★★★★
()
Ответ на: комментарий от mm3

Что за watchdog такой? Я знаю только watchdog timer, который ребутает систему, если в его регистр обновления «забыть» записать единичку.

x4DA ★★★★★
()
Ответ на: комментарий от v0r0n

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

ilovewindows ★★★★★
()
Ответ на: комментарий от x4DA

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

mm3 ★★★
()

Если так, то ОСВР должна как-то определять какой интервал на исполнение этого процесса нужно выделить, но как это достигается?

Это время задано заранее.

HerrWeigel ★★★★
()

Господа, всем спасибо за ответы. )

v0r0n
() автор топика

Ядро ОС реального времени в первую очередь даёт гарантию по верхней границе интервала времени, который пройдёт от получения внешнего события (прерывания, например) и началом работы обработчика этого события.

Есть ещё такие понятия как hard-realtime и soft-realtime, в первом случае время реакции жёстко ограничено сверху, а во втором случае как правило подразумевается детерминированность времени реакции, но нет гарантии на время реакции системы сверху.

Примеры ОС реального времени, которые изначально проектировались под задачи реального времени: QNX, FreeRTOS, eCOS и др.

Linux тоже может быть ОС реального времени (с некоторыми оговорками), если применять специальные патчи (Xenomai, RTAI) и писать специальные приложения, которые используют API реального времени, предоставляемый патчами. Оговорки же заключаются в том, что при некоторых конфигурациях железа и ядра могут возникать непредсказуемые задержки в обработке внешних событий.

Пример дистрибутив на базе RT ядра линукс: LinuxCNC (http://www.linuxcnc.org/). Он базируется на Ubuntu и предназначен для управления станками ЧПУ и роботами.

vasil_sd
()
Ответ на: комментарий от vasil_sd

ответьте, пожалуйста, на ряд вопросов:

1) Применяется ли в где-нибудь в экс-СССР ОС реального времени? (Кроме LinuxCNC - про него в новостях на ЛОР-е пишут иногда). Примечание: применяется == пишут ли под них программы, а не просто запупили банкоматы и прочитали инструкцию ;)

2) Между hard- и soft- realtime большая разница по надежности?

anonymous
()
Ответ на: комментарий от anonymous

1. Да, во многих проектах для микроконтроллеров используется RTOS. Я в своих задачах использую Linux с портированным мной Xenomai для S5PV210 SoC.

2. Большая. Soft-realtime не даёт гарантии на время реакции. Soft-realtime только позволяет рассчитать время реакции для определённых случаев. Например, к soft-realtime системам можно отнести ВМ (виртуальные машины) с real-time GC (сборщиком мусора реального времени, например инкрементальным копирующим GC с барьерами чтения и записи). В таких системах паузы, вносимые GC будут детерминированными и предсказуемыми (будут зависеть, например от соотношения между свободной и занятой объектами памятью), но гарантировать время реакции в произвольный момент времени будет нельзя.

vasil_sd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.