Jump to content

Родос (операционная система)

Появляется
Логотип операционной системы реального времени Родос
Логотип Родоса
Разработчик Вюрцбургский университет – информатика 8
Написано в C , C++ и язык ассемблера
Исходная модель Открытый исходный код
Репозиторий Родос на GitLab
Платформы См. #Поддерживаемые архитектуры.
Лицензия Лицензия Apache версии 2.0
Официальный сайт Информация и загрузка

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

Rodos был разработан в Немецком аэрокосмическом центре и основан на операционной системе BOSS . Он используется для текущей микроспутниковой программы Немецкого аэрокосмического центра . Система работает на действующем спутнике ТЕТ-1 и будет использоваться для разрабатываемого в настоящее время спутника BiROS .

В дальнейшем Rodos совершенствуется и расширяется в Немецком аэрокосмическом центре , а также на факультете аэрокосмических информационных технологий Вюрцбургского университета .

Важным аспектом Rodos является интегрированное промежуточное программное обеспечение реального времени. Разработка программного обеспечения управления и полезной нагрузки на основе промежуточного программного обеспечения обеспечивает сегодня максимальную модульность. Приложения/модули можно разрабатывать независимо, и впоследствии очень просто обмениваться модулями, не беспокоясь о побочных эффектах, поскольку все модули инкапсулированы как строительные блоки (BB), и к ним можно получить доступ, а к другим ресурсам они могут получить доступ только через четко определенные интерфейсы.

Rodos был реализован как программная платформа на C++ с объектно-ориентированным интерфейсом приложений (API). он организован по уровням: самый нижний уровень (1) отвечает за управление аппаратным обеспечением встроенной системы (HAL: уровень абстракции оборудования). Ядро следующего уровня (2): управляет локальными ресурсами, потоками и временем. Поверх ядра у нас есть промежуточное программное обеспечение (уровень 3), которое обеспечивает связь между BB с использованием протокола многоадресной рассылки издатель-подписчик. А поверх промежуточного программного обеспечения пользователь может реализовать свои приложения (уровень 4) в виде распределенной программной сети простых ББ. API Building Blocks в верхней части промежуточного программного обеспечения представляет собой сервис-ориентированный интерфейс. BB взаимодействуют, предоставляя услуги другим BB и используя услуги других BB.

Как упоминалось ранее, первоначальной целью Родоса было управление спутниками. Он был разработан как мозг системы Avionic и впервые (2001 г.) представляет концепцию NetworkCentric. Базовая машина авионики networkCentric состоит из нескольких согласованных компонентов, которые работают вместе, чтобы простым способом реализовать надежные вычисления. В системе NetworkCentric у нас есть программная сеть, состоящая из BB, и аппаратная сеть, соединяющая транспортные средства (радиосвязь), компьютеры внутри транспортных средств (автобусы и каналы связи «точка-точка»), интеллектуальные устройства (подключенные к автобусам) и простые устройства, подключенные к внешним компьютерам. . Для связи с внешними блоками (узлами), включая устройства и другие вычислительные блоки, каждый узел обеспечивает шлюз в сеть, и к системе могут быть подключены несколько сетевых устройств (устройства ввода-вывода и вычислительные узлы). Обмен сообщениями, обеспечиваемый промежуточным программным обеспечением и шлюзами, является асинхронным с использованием протокола издатель-подписчик. Никакие фиксированные пути связи не устанавливаются, и систему можно легко переконфигурировать во время работы. Например, несколько копий одного и того же программного обеспечения могут работать на разных узлах и публиковать результаты в одной и той же теме, не зная друг друга. Избиратель может подписаться на эту тему и проголосовать за правильный результат. Приложение может мигрировать с узла на узел или даже на другие транспортные средства без необходимости перенастройки системы связи. Ядро промежуточного программного обеспечения распределяет сообщения только локально, но с помощью интегрированных шлюзов в сеть NetworkCentric сообщения могут достигать любого узла и приложения в сети. Связь во всей системе включает в себя программные приложения, вычислительные узлы и даже устройства ввода-вывода. Издатели публикуют сообщения по определенной теме. Подписчики (ноль, один или несколько) на данную тему получают все сообщения, опубликованные в этой теме. Как упоминалось ранее, для этой связи нет разницы, на каком узле (вычислительном блоке или устройстве) работают издатель и подписчики, и, кроме того, это может быть любая комбинация программных задач и аппаратных устройств! Чтобы установить путь передачи, издатель и подписчик должны использовать одну и ту же тему. Тема — это пара, состоящая из типа данных и целого числа, представляющего идентификатор темы. И программное обеспечение промежуточного уровня, и аппаратный сетевой коммутатор (называемый коммутатором промежуточного программного обеспечения) интерпретируют один и тот же протокол издателя/подписчика. [ 1 ]

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

Среди других возможностей Rodos предлагает: [ 2 ]

Привет, мир

[ редактировать ]

Типичный пример программы Hello world в Rodos выглядит следующим образом.

#include "rodos.h"

class HelloWorld : public StaticThread<> {
  void run(){
    PRINTF("Hello World!\n");
  }
} helloworld;

Класс Thread расширяется специальной процедурой run(), которая записывает Hello World в стандартный вывод с помощью PRINTF. Все компоненты Rodos, необходимые для разработки приложений, доступны через заголовочный файл Rodos.h.

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

Пример:

#include <rodos.h>

class HighPriorityThread: public StaticThread<> {
public:
  HighPriorityThread() : StaticThread("HiPriority", 25) { 
  }
  void run() {
    while (1) {
      PRINTF("*");
      suspendCallerUntil(NOW() + 1*SECONDS);
    }
  }
} highprio;

class LowPriorityThread: public StaticThread<> {
public:
  LowPriorityThread() : StaticThread("LowPriority", 10) { 
  }

  void run() {
    while (1) {
         PRINTF("."); 
    }
  }
} lowprio;

Поток LowPriorityThread постоянно записывает символ "." и каждую секунду прерывается потоком HighPriorityThread , который записывает символ «*».

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

Вот простой пример с одним издателем и одним подписчиком, которые используют тем1 счетчик , содержащий только одно целочисленное значение.

Пример:

#include <rodos.h>

Topic<long>    counter1(-1, "counter1");

class MyPublisher : public StaticThread<> {
public:
	MyPublisher() : StaticThread("SenderSimple") { }

	void run() {
		long cnt = 0;
		TIME_LOOP(3*SECONDS, 3*SECONDS) {
			PRINTF("Publish: %ld\n", ++cnt);
			counter1.publish(cnt);
		}
	}
} publisher;

class MySubscriber : public SubscriberReceiver<long> {
public:
    MySubscriber() : SubscriberReceiver<long>(counter1) { }
    void put(long &data) {
        PRINTF("Received: %ld\n", data);
    }       
}subscriber;

каждые Поток издателя три секунды публикует возрастающее значение счетчика, а поток подписчика просто отображает полученное целочисленное значение.

Поддерживаемые архитектуры

[ редактировать ]

Поддерживаемые архитектуры набора команд :

Кроме того, Rodos может работать в качестве гостя в операционной системе другого хоста.

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 63a22d0bbf50586f9f988fde1e6fb1a2__1708151520
URL1:https://arc.ask3.ru/arc/aa/63/a2/63a22d0bbf50586f9f988fde1e6fb1a2.html
Заголовок, (Title) документа по адресу, URL1:
Rodos (operating system) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)