Какие языки используются для программирования систем реального времени? [закрытый]

Вы можете достичь этого, выполнив Задание Действия .

Рабочий может быть приложением, работающим на экземпляре Amazon EC2, функцией AWS Lambda, мобильным устройством: любым приложением, которое может устанавливать HTTP-соединение и размещаться где угодно. Когда пошаговые функции достигают состояния задачи действия, рабочий процесс ожидает, когда работник действия опрашивает задачу. Рабочий действия опрашивает пошаговые функции, используя GetActivityTask и отправляя ARN для связанной операции. GetActivityTask возвращает ответ, включающий ввод (строка ввода JSON для задачи) и taskToken (уникальный идентификатор для задачи). После того, как рабочий завершит свою работу, он может предоставить отчет об успехе или неудаче с помощью SendTaskSuccess или SendTaskFailure. Эти два вызова используют taskToken, предоставленный GetActivityTask, чтобы связать результат с этой задачей.

blockquote>

Шаг 3 должен быть заданием активности. Работник, вызванный на шаге 2, будет опрашивать активность, созданную на шаге 3, и после завершения своей работы он сообщит об активности шага 3, используя SendTaskSuccess или SendTaskFailure , в зависимости от вывода работника.

22
задан eKek0 30 March 2009 в 17:54
поделиться

5 ответов

Спецификация реального времени для Java теперь имеет несколько реализаций коммерческого уровня:

Эти продукты охватывают континуум от компиляции до нативного кода (Aonix) до J2ME (aicas, apogee), до полной J2SE (Sun, IBM). Большинство, если не все, видели развертывания в небольших количествах критически важных для безопасности систем, но импульс набирает обороты. Примеры включают в себя модернизацию радара космического наблюдения Eglin AFB и использование RTSJ ВМС США в DDG-1000 / Zumwalt эсминец . Sun также заявляет о развертывании в области обработки финансовых транзакций.

Если вы заинтересованы в RTSJ, я предлагаю Peter Dibble ' s Программирование в реальном времени на платформе , или Параллельное программирование и программирование профессора Веллингса в Java .

В связи с этим также ведется работа по обеспечению критического для безопасности профиля для языка программирования Java, построенного как подмножество RTSJ. Также была сформирована группа экспертов для изучения Распределенного RTSJ DRTSJ, но работа зашла в тупик.

21
ответ дан 29 November 2019 в 03:27
поделиться

Использование обложек книги Ada 95, Системы реального времени Java и расширений POSIX в реальном времени (запрограммированный в C). Ни один из них не непосредственно предметно-ориентированный язык.

Ada 95 является языком программирования, наиболее часто используемым в конце 90-х и (AFAIK), все еще широко используемого для программирования в режиме реального времени в оборонной и аэрокосмической промышленности. Существует по крайней мере один DSL, созданный сверху Ada - SparkAda - который является системой аннотаций, которые описывают системные характеристики к инструменту проверки программы.

Это интервью от 6 апреля 2006 указывает на некоторые классы и изменения виртуальной машины, которые составляют Систему реального времени Java. Это не упоминает расширений предметно-ориентированного языка. Я не столкнулся с использованием Java в режиме реального времени системы, но я не смотрел на виды систем, где я ожидал бы находить его (я работаю на аэрокосмическом моделировании, где это - C++, Фортран и иногда Ada для систем в цикле в реальном времени).

POSIX в реальном времени является рядом расширений средств операционной системы POSIX. Как расширения ОС, они не требуют ничего определенного на языке. Тем не менее я могу думать об одном C базирующийся DSL для описания встроенных систем - SystemC - но я понятия не имею, используется ли это также для генерации встроенных систем.

Не упомянутый в книге Matlab, который в последние несколько лет пошел от инструмента моделирования до модели управляемая система разработки для систем реального времени. Matlab/Simulink является, в действительности, DSL для линейного программирования, конечных автоматов и алгоритмов. Matlab может генерировать C или HDL для систем реального времени и встроенных систем. Очень редко видеть авиационную радиоэлектронику, EW или другую оборонную промышленность задание в реальном времени, рекламируемое, который не требует некоторого опыта Matlab. (Я не работаю на Matlab, но трудно по акценту, насколько повсеместный это действительно находится в промышленности),

12
ответ дан 29 November 2019 в 03:27
поделиться

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

Системы реального времени зависят только от этого критерии, как specificiations обычно говорят, что-то как 'Каждый x (промежуток времени) (сделайте что-то | проверяет что-то)'. Обычно это происходит, если системные интерфейсы с внешними датчиками и управляют спасительными или опасными для жизни системами.

Я работал над находящейся внутри автомобиля навигацией и системой развлекательно-информационной передачи, разработанной главным образом в C/C++ с операционной системой, настроенной конкретно для встречи ограничений реального времени для обеспечения навигации в реальном времени и воспроизведения медиа.

Но это не все к системам реального времени: Обычно выбор алгоритмов во всей системе сделан, чтобы иметь детерминированное время выполнения согласно Нотации "большого О", главным образом с помощью линейного или постоянного времени. Все остальное считают недетерминированным и таким образом не применимое для систем реального времени.

7
ответ дан 29 November 2019 в 03:27
поделиться

Все системы реального времени, с которыми я работал, были преимущественно записаны в C с некоторыми битами ассемблера или записаны главным образом в ассемблере с небольшими битами C. (В зависимости от того, говорим ли мы 90-е и вне, или 80-е, соответственно.) Однако некоторые системы реального времени, с которыми я работал, использовали - не точно DSLs - специальные генераторы кода собственной разработки.

6
ответ дан 29 November 2019 в 03:27
поделиться

Я инженер-программист авионики. Мне удалось поучаствовать в нескольких девелоперских проектах. В этих проектах я использовал следующие языки: C, C ++ и Java в реальном времени.

C отлично. C ++ не так уж и плох, но C / C ++ требует строгих стандартов кодирования из соображений безопасности, таких как DO-178B.

Я думаю, что Java в реальном времени - лучший вариант, но пока я не вижу много приложений для авионики.

Корейский реактивный учебно-тренировочный самолет Т-50 будет иметь командный компьютер, на котором будет запущено приложение RT Java, обслуживающее дисплеи HUD и MFD, а также все критически важные функции.

24
ответ дан 29 November 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: