LINUX.ORG.RU
ФорумTalks

ПО для SpaceX разработано на С++

 , ,


2

5

"Управляющее полётом Falcon 9 ПО написано на C/C++ и запускается параллельно на каждом из трёх компьютеров. Три дублирующих компьютера необходимы для обеспечения должного уровня надёжности за счёт многократного резервирования. Результат каждого решения сравнивается с результатом, полученным на остальных компьютерах, и только при совпадении на всех трёх узлах команда принимается микроконтроллером, управляющим двигателями и решётчатыми рулями.

В доставляемом на орбиту пилотируемом космическом корабле Crew Dragon также используется Linux и полётное ПО на C++."

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

Перемещено leave из development


Ответ на: комментарий от AntonI

Только вот код стал компактнее и понятнее.

А когда этот компактный код накрывается медным тазом в рантайме, стало понятнее как искать причины, по которым тот или иной объект стал невалиден?

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

Итак, у тебя система из трех компов, считает одно и то же. На компе #1 вдруг ошибка. Компы #2 и #3 дают одинаковый результат. Дальше ты пересчитываешь, и опять на компе #1 ошибка, и опять компы #2 и #3 дают одинаковый результат. Дальше ты пересчитываешь, и опять …

Так что ли?

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

Нафиг тут троирование? Берешь один процессор, и на нем пересчитываешь до усрачки.

Чтоб максимально упростить точку отказа - арбитра.

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

Там (если верить ответам того реддита 7 лет назад, где они грозились через 5-10 лет на марс во всей красе полететь) еще как минимум C# и LabView, но это видимо наземный софт.

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

Чтоб максимально упростить точку отказа - арбитра.

В системе с одним процессором арбитр максимально упрощен, т.к. не из чего выбирать и его просто нет. Что посчитал - то и берешь.

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

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

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

Так что ли?

Зависит от. Если время есть то ждешь. Если времени нет то берешь результат от #2 и #3 а #1 в зависимости от ситуации отключаешь/ребутишь/оставляешь как есть.

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

Ну вот он все время выдает неправильный ответ, ты его все время берешь и ракета летит в болото.

Точнее, летит назад к разработчикам ПО.

anonymous
()

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

Один проц сбойный и вся система уходит в бесконечный пересчёт

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

Проблема может быть в железе а не в ПО, да мало ли там источников ошибок…

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

Точнее, летит назад к разработчикам ПО.

«Чтобы пацанам понятно было» /как говорит Царь/ - домой летит.

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

В системе с одним процессором …

… арбитр должен уметь считать и хранить промежуточные результаты для сравнения.

А компаратор на побитном XOR можно выполнить железно.

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

… арбитр должен уметь считать и хранить промежуточные результаты для сравнения.

Арбитр чего именно, если поцессор один, а не два и не три?

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

Почти. Что бы сломать модуль памяти на ферритовых кольцах или беаксах надо там поворошить ломом и то не факт что поможет.

Такая шутка весит много, считает медленно, стоит дорого но отказов не дает. Вот МК делают на сверхнадежной элементарной базе, но расчеты ему отдавать накладно.

Этому баяну уже дцать лет, ЕМНИП еще первые реактивные самолеты со схемой утка (полностью аэродинамически неустойчивая схема) летали на таких принципах.

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

… арбитр должен уметь считать и хранить промежуточные результаты для сравнения.

И все равно не поможет, условия то меняются, результаты будут разные…

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

Один проц сбойный и вся система уходит в бесконечный пересчёт

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

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

И все равно не поможет, условия то меняются, результаты будут разные…

Я еще хотел добавить «хранить исходные данные для вычислений», но не успел, или поленился по новой решать гуглокапчи.

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

Раз открыла тред - должна знать.

Отвечаю.

Why three processors? That’s because, as explained on StackExchange Space Exploration, SpaceX uses an Actor-Judge system to provide safety through redundancy. In this system, every time a decision is made, it’s compared to the results from the other cores. If there’s any disagreement, the decision is thrown out and the process is restarted. It’s only when every processor comes up with the same answer that a command is sent to the PowerPC microcontrollers.

It’s only when every processor comes up with the same answer that a command is sent to the PowerPC microcontrollers.*

Значит получается, я права, три процессора должны выдать одинаковый результат.

Lzzz
() автор топика
Ответ на: комментарий от seiken

Арбитр чего именно, если поцессор один, а не два и не три?

Хочешь еще, чтобы контроль правильности выполнялся на контролируемом процессоре?

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

А, так да, можно. Правда если результаты не совпадают, опять непонятно что отказало - хранилище входных параметров, вычислитель или еще чего?

И все равно неясно что делать если этот вычислитель отказал - кондер там гикнулся от вибраций или кристалл треснул или еще чего…

Интересно кстати, у них для каждого процессора свой источник входных данных (набор датчиков и вот этого всего) или общий?

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

И все равно неясно что делать если этот вычислитель отказал - кондер там гикнулся от вибраций или кристалл треснул или еще чего…

ИМХО набор автоматных, взаимосвязанных таблиц переходов.

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

так нельзя делать: надежность в три раза упадет.

там система мажорирования «два из трех»

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

Смотря с чем сравнивать, если с ракетой имени Королева, то ее уже 60 лет вылизывают. Через 60 лет у СпейсХ аварий тоже будет меньше.

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

ИМХО набор автоматных, взаимосвязанных таблиц переходов.

Это если есть резервирование. А если нет то только падать - переходить то некуда.

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

А, так да, можно.

И арбитр становиться гением-специалистом по всему - и хранить, и считать до 3, да еще сравнивать. А как же bus factor - единственная точка отказа?

Интересно кстати, у них для каждого процессора свой источник входных данных (набор датчиков и вот этого всего) или общий?

Ты же знаешь ответ на этот вопрос.

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

И союзы тоже отказывают несмотря на 60 лет вылизывания. На самом деле там все сложнее, устаревшие компоненты приходится рано или поздно заменять, а для новых компонент нужно делать полный цикл испытаний и пр.

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

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

Чего нет? Переведи тогда фразу:

The point of this triple «tell-me three times» redundancy is to give the fault tolerance it needs without having to pay for expensive space-specific chips. Modern planes, like the newer Airbus planes, use a similar approach in their fly-by-wire systems.

Lzzz
() автор топика
Ответ на: комментарий от AntonI

только падать - переходить то некуда

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

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

А как же bus factor - единственная точка отказа?

Это к @seiken вопрос, это его идея.

Ты же знаешь ответ на этот вопрос.

Нет.

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

Чего нет?

вот это нет:

Значит получается, я права, три процессора должны выдать одинаковый результат.


Переведи тогда фразу: …

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

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

пришлось менять носитель на что то более современное, а это довольно серьезное изменение

20 лет прошло и все меняют?

Lzzz
() автор топика
Ответ на: комментарий от AntonI

В переводе это звучит "Смысл этой тройки «доложите мне три раза»…, если нет, решение не принимается. Ты в НАСА работаешь, чтобы это утверждать, может там совсем другой сценарий запускается при несовпадении ответов?

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

если нет, решение не принимается.

Где там слова про «решение не принмается»?

Ты в НАСА работаешь, чтобы это утверждать,

Я просто немножко знаю про оптимальное управление, Вы этого пока не проходили. Но если и дальше вместо подготовки к сессии будете хамить на лоре преподавателям, то и не пройдете…

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

Только нужно оператвики докупить и вообще проапгрейдится давно пора

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

В том что «если три компьютера выдают разные результаты то решение не принимается», это не повышает а понижает надежность (см. теорию вероятности). Выше по треду уже все разжевали:

  1. для принятия решения достаточно двух совпавших результатов;

  2. если один из компьютеров слишком часто сбоит (отличается от остальных) то с ним что то делают (отключают/перегружают и т.д.).

AntonI ★★★★
()
Ответ на: комментарий от anonymous
И младенец в колыбели
Слыша баюшки баю
Отвечает "мать твою!"
Вот такая молодежь 
Не задушишь, не убьешь```
AntonI ★★★★
()
Ответ на: комментарий от anonymous

От вас запомнилось только «пузыри в лужу» …

Впрочем в «Опубликована система команд Эльбрус (Aceler)» пузырей в лужу набросал много.
Главное, чтобы «пузырей» было меньше /но от них не уйти/.

Владимир

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