LINUX.ORG.RU

Что такое реал-тайм?

 


3

3

Правильно ли я понимаю, что это программирование основанное на потоках? То есть, кеширование, статические оптимизации, там невозможны? Можно ли назвать RT, в каком-то смысле, потоковые редакторы, вроде ed, sed, ex, teco? И, еще интересует, возможно ли RT-программирование на языках высокого уровня, типа лиспа, js, tcl, perl и тд. в современных осях, типа unix, windows и тд?

Мог бы хотя бы википедию открыть:

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

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

kim-roader ★★
()

Правильно ли я понимаю, что это программирование основанное на потоках?

Каким же образом ты пришел к такой странной мысли?

anonymous
()

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

roof ★★
()

Реалтайм по определению — когда функция должна выполниться гарантированно за определенное время. На практике — это время обычно достаточно маленькое, поэтому нужны специальные операционные системы, какой попало язык не подойдет (например в ЖС запустится сборщик мусора посреди функции, стопнет всё, функция выполнится на 5 миллисекунд дольще, а пациенту глаз лазером сожжёт.

К потокам это не имеет отношения.

anonymous
()

И что интересно — все тут довольно правильно описали псевдореалтайм, а не настоящий реалтайм.

Goury ★★★★★
()

Правильно ли я понимаю, что это программирование основанное на потоках?

Нет, ибо в огороде бузина, в Киеве дядька.

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

В настоящем не время гарантировано, а ответ на следующий такт приходит. Там не может быть такого, что гарантировано 10мкс и оно пройдёт за 0-10мкс.
Там всегда Nмкс и без вариантов.
Вот такие контроллеры в нормальных двигателях и используются.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от Goury

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

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

RT - это гарантированное время реакции (не больше чем), выбирается при проектировании системы

Верно. Формально RT требования есть и у драйвера софтмодема и у писалки CD. Но так как цена ошибки невелика (обрыв связи или запоротая болванка), то никто особо не заморачивался.

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

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

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

Емнить держи - http://www.pic24.ru/doku.php
Теоретик иди книжки читай, даже у аналоговых RT систем есть время реакции. Цифра вообще не допускает идеальной модели, минимальное время один такт. Твой пример с ЭБУ вообще лажа, там время между событиями гигантское, можно усчитаться в усмерть.

anonymous
()

Царь уже не торт. Непривычно видеть, как он задаёт вопросы, а не размахивает сенсационными заявлениями.

anonymous
()

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

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

лол

это hard rt и soft rt

настоящий риалтайм... ты меня в каждом треде веселишь

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

Царь уже не торт.

А это он? Всё на колени упасть хотелось...

UVV ★★★★★
()
Последнее исправление: UVV (всего исправлений: 1)

RT - это контракт. Реализация может быть любой до тех пор, пока контракт выполняется. Другое дело что, как правило, трудно соблюсти контракт при условии, что какой-то компоненты системы его не соблюдает. Таким образом, если у тебя GC допускает вмешательство в процесс работы, об РТ речи не может быть. Еще непонятно, при чем щлесь потоковые редакторы.

anonymous
()

Ты мастдайку осью назвал? Не смеши мои тапочки!

А для RT нужны специальные операционки. Линукс не рассчитан на RT, это ж не QNX тебе.

А вообще, я не представляю себе, как можно в многопоточной системе реализовать RT!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Goury

Там всегда Nмкс и без вариантов.

Это вообще мистика какая-то! А прерывания ты куда выкинул?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от splinter

Почитал по-диагонали про этот зеномай: это не полноценный RT, а набор сисвызовов для обеспечения псевдо-RT, если это необходимо.

Eddy_Em ☆☆☆☆☆
()

анонiмус опять хвалится своей некомпетенцией. Молодца!

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

wiki

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

splinter ★★★★★
()
Последнее исправление: splinter (всего исправлений: 1)
Ответ на: комментарий от splinter

Не забываем еще про специально железо для. ACPI и всякие фирмвари не дремлют!

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

Хей, пример с ЭБУ мой. А почему лажа? Время относительно большое, да, но суть-то была в том, что превышать это время нельзя.

roof ★★
()

Пацанчик набрасывает, а ведущие оналитеки, лучшие умы ЛОРа скачут перед ним. Еще и друг-друга поливают. Лепота!

anonymous
()

Правильно ли я понимаю, что это программирование основанное на потоках? То есть, кеширование, статические оптимизации, там невозможны? Можно ли назвать RT, в каком-то смысле, потоковые редакторы, вроде ed, sed, ex, teco?

Ты действительно настолько тупой, что не можешь ни в гугл, ни в википедию, прежде чем нести такую ахинею? Я за бан.

mix_mix ★★★★★
()

И, еще интересует, возможно ли RT-программирование на языках высокого уровня... в современных осях...

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

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

Пацанчик набрасывает, а ведущие оналитеки, лучшие умы ЛОРа скачут перед ним. Еще и друг-друга поливают. Лепота!

а для чего лор еще нужен?

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

Ну и как это реализовать? Скажем, одновременно приходят N событий, каждое нужно обработать за время t[N]. Количество ядер в системе M < N+1. И чо делать, если каждое время t[N] не больше K[N] — времени, требуемого на выполнение обработчика. Ну и sum(K[N]/t[N]) > 1?

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

Блин, вот у тебя реально дети есть? Мне их иногда жаль...

Я бы такого папу просто вырос и убил.

anonymous
()

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

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

Если нужны микросекунды, то надо думать и о железе тоже. Доступ к диску - невозможен, потому что теряем десятки миллисекунд. Доступ в динамическую память - нежелателен, слишком много циклов процессова на это уйдет. Код и данные храним строго в статической памяти (быстрой и дорогой).

Ну и каналы передачи данных... Например, Wi-Fi вообще не подходит, так как время передачи пакета непредсказуемо. Используются специальные шины и протоколы.

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

qnx - в ее интегрированности и целостности что-то есть. работал с ней, очень понравилось, после нее linux выглядит зоопарком. специфика конечно, далеко не ОС общего назначения.

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

Вот и объясни анонимусу, что никакого рилтайма не будет. Особенно если у тебя по крону запустится какой-нибудь updatedb и убьет своим 12309 нафиг все!

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

Liu JWS: Real-time Systems, Prentice-Hall, Upper Saddle River, New Jersey 2000, 610 p. ISBN 0-13-099651-3.

Что? Как не читал? А я читал. Изыдиъ, лицеладонiе!

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

Очевидно, взять количество ядер больше N :)

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

ещё флеш в иксах вспомни, болезный

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

практически в любой рт системе ядер процессора/самих процессоров >1 и практически в любой рт системе есть спорадик джобс и нон-спорадик джобс (гуглить по теме рт не легко, заню, но что это такое, думаю, нагуглишь)

так вот, спорадики приходят и мочат все остальные, ибо они хард-рт, остальные либо справляются, либо нет (софт рт), но на них всем пох, ибо в практически любой рт системе не все процессы - рт

мммоок?

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

Никакого «какого-нибудь updatedb» на rt системе не будет. Если нужен updatedb (или аналог) - это будет спроектированая и штатная функциональность. В колхозный rt чего только не пихали, но никаких «чего-нибудь» - все строго под контролем и по требованию. И железо без всяких умных acpi, иначе ос просто теряет контроль, а процессор занят каким-то левым фирмварем, а левого ничего быть не должно. Поэтому простота и точность рулят - чем более жесткая риалтайм система нужна, тем меньше она будет, вся лишняя функциональность реализуется в другом слое, на других устройствах. Ну, наверно ты понимаешь, раз эмбеддовкой занимаешься.

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

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