1мс это real time или еще нет?

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение Olej » 22 фев 2021, 19:28

strap89 писал(а):
22 фев 2021, 18:58
либо используем однозадачную ос, получаем свой гарантированный, таймер 1мс без отказов, но живем в убогом окружении на корявом api.
Опыт тех контор, которые купились на такую, казалось бы, простоту, оказался - ... из тех проектов что попали в моё поле зрения - безнадёга.

Нет уже в природе "однозадачных ос" - все что были уже вышли...
strap89 писал(а):
22 фев 2021, 18:58
отбрасывая начальное утверждение: на linux писать real-time нельзя!
Так его нельзя писать и на всех этих "свистелказ с перделками" (откровенно говоря ;-) ), на которых строят все эти хлопчки из радиолюбителей "на коленкке", все эти RT... Это им только кажется, что у них там что-то такое "real-time" :lol:

Прогресс нельзя ни остановить, ни презреть его и отказаться ... и любые философии в пользу преимущества парового двигателя не сделают его средством передвижения. :roll:

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение strap89 » 22 фев 2021, 19:48

Olej писал(а):
22 фев 2021, 19:28
Опыт тех контор, которые купились на такую, казалось бы, простоту, оказался - ... из тех проектов что попали в моё поле зрения - безнадёга.
Я так понимаю, удач не было. Это печально. Но с другой стороны, мы то есть! Система у нас сделана уже больше 20 лет назад. Довольно хорошо известна (в узких кругах), работает устойчиво. Значит может быть и такое? И согласитесь - я имею опыт построения однозадачных, предсказуемых систем и не имею практического опыта построения semi-real-time систем. Где я имею шанс получить работающий результат, а где... безнадега? Если мы примем во внимание, что пока имеющиеся у меня кадры с linux работают кое-как, а когда я начинаю задавать вопросы о драйверах, user-space, планировщиках и пр. впадают в раздражение и посылают меня лесом, поскольку по их мнению, прицепив к моим платам драйвер китайского производства при помощи шаманских танцев и матерного слова, они автоматически получат работающую систему. А не работает? Поставим процессор по-мощней! И ведь я ничего им не смогу возразить, т.к. действительно заработает. Почти. И поди докажи, что так нельзя.

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение strap89 » 22 фев 2021, 20:02

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение Olej » 22 фев 2021, 20:59

strap89 писал(а):
22 фев 2021, 20:02
И что мне говорить?
Попробую подсказать. :lol:
strap89 писал(а):
22 фев 2021, 19:48
Я так понимаю, удач не было. Это печально. Но с другой стороны, мы то есть! Система у нас сделана уже больше 20 лет назад. Довольно хорошо известна (в узких кругах), работает устойчиво. Значит может быть и такое? И согласитесь - я имею опыт построения однозадачных, предсказуемых систем и не имею практического опыта построения semi-real-time систем. Где я имею шанс получить работающий результат, а где... безнадега?
20 лет назад ВАЗ "копейка" был за счастье, а на 9-ке ездили только "навороченные крутяки". Вы сегодня купите ВАЗ, ещё тех времён модели?
strap89 писал(а):
22 фев 2021, 19:48
по их мнению, прицепив к моим платам драйвер китайского производства при помощи шаманских танцев и матерного слова, они автоматически получат работающую систему.
Прицепив к подсистеме ввода-вывода (раз у вас есть драйвер, хоть он и китайский) почти дословно тот целевой код, который вы использовали 20 лет назад (потом вы его сможете и оптимизировать и улучшить) вы уже с большой вероятностью получите прототип (макет), который будет укладываться в вашу 1 мс. ... на процессоре который в 50 рез быстрее того, что был у вас 20 лет назад. На проработку такого макета, по моим грубым оценкам, нужно максимум 3 чел.*мес. работы.
strap89 писал(а):
22 фев 2021, 20:02
По их мнению плату я выбрал г., процессор для нее совсем г. Драйвера на платах г., потому что платы г., (и тут я с ними согласен).
Но писать драйвер для платы? Это нонсенс, это неправильно, так делать не надо.
И написать свой драйвер, если от поставщика не сгодится, ничего особенно "военного" нет - поскольку это у вас драйвер потокового ввода-вывода ... ну, DMA чуть-чуть усложняет. Я думаю, что посадите более-менее квалифицированного разработчика на C, и он вам через 2 месяца выкатит драйвер. Возьмите мои книжки-конспекты-лекции на этот счёт ... выберите самую свежую редакцию (текст дополнялся на протяжении 3-4 лет и вырос в 2 раза по объёму!), я не помню где свежее:
Драйверы и модули ядра Linux
Драйверы и модули ядра Linux
Практикум по Linux Kernel
Или здесь они же: http://flibusta.is/a/36262]
(там на всё разбирательство 2 мес. за глаза хватит ... мне, по крайней мере, хватило при полном отсутствии описаний - конспект писался весь "от экспериментов")

P.S. за то время, которое вы уже потратили со своими коллегами на дискуссии ("так кто же тут дурак?" ;-) ) вы могли бы уже: а). накатать начерно макет вашей системы на железке с её родными драйверами + б). написать свой собственный драйвер без всего что вам не нужно.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение Olej » 22 фев 2021, 21:03

strap89 писал(а):
22 фев 2021, 20:02
По их мнению плату я выбрал г., процессор для нее совсем г. Драйвера на платах г., потому что платы г.,
А какие же конкретно платы и процессоры вы выбрали?
Любопытно... + кой-чего, может, и я вам могу подсказать, из практического опыта - того как это влияет на время разработки.

P.S. Я ж так надеюсь, что это не Rapsberry Pi или Orange Pi ? :-o
strap89 писал(а):
22 фев 2021, 19:48
мы то есть! Система у нас сделана уже больше 20 лет назад. Довольно хорошо известна (в узких кругах), работает устойчиво.
К какой ценовой категории относится целиком вся ваша система, изделие? Со всеми перифериями, датчиками, исполнительными механизмами ... мехкреплением ;-) и всё-всё-всё.
Т.е. за сколько она продаётся? (то которое 20 лет)

От этого сильно зависит и выбор оборудования и то насколько долго и усердно можно (целесообразно) над ним бодаться в ходе разработки.

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение strap89 » 23 фев 2021, 08:53

Смотрите, вы очень много написали мне комментариев на один мой, я в них утонул совсем, если честно. Хотя клнечно приятно до чертиков.
Но сейчас я просто не понимаю вашу позицию. А я ведь для этого и затевал эту тему. С одной стороны linux это не real time система, писать безотказные (по скорости) приложения на них не стоит, real-time linux пока не отлажен (или уже нет?), но делать-то надо! И мот тут начинается откат: дос это старые жигули, rtos - корявая недоделка (почему кстати?), значит надо вертеть то что есть, т.е. преаращать, продолжая аналогию, наш небыстрый мерседес в бентли пошустрее? И это без уверенности (с моей стороны), что все получится.
По поводу ценовой категории я не слишком силен. Не знаю, в каких категориях вы меряете.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение Olej » 23 фев 2021, 21:59

strap89 писал(а):
23 фев 2021, 08:53
С одной стороны linux это не real time система, писать безотказные (по скорости) приложения на них не стоит
Стоит. Но стоит просто архитектурно так, чтобы приложения вписывались в архитектуру системы, и при том были и безотказными.
P.S. Пример: марсоход USA был построен на расхваленной-расхваленной, реалтайм-из-реалтаймов VxWorks ... при первой же сложности, посадке на Марс, отказал ... а VxWorks был кем-то там перекуплен списан в утиль.
strap89 писал(а):
23 фев 2021, 08:53
real-time linux пока не отлажен (или уже нет?), но делать-то надо!
Монолитные ОС в принципе не могут быть hard-realtime (все и везде), и это относится и ко всем расхваливаемым "поделкам на коленке" типа RTOS.
А микроядерные ОС ушли в небытие... по крайней мере по состоянию на сейчас.
strap89 писал(а):
23 фев 2021, 08:53
И мот тут начинается откат: дос это старые жигули, rtos - корявая недоделка (почему кстати?)
Корявые поделки потому, что все их разрабатывают и поддерживают 3 инвалида на коленке в старом гараже :-o :lol: ... они же и расхваливают его ка "риалтайм", хотя никто из серьёзных людей (контор) их экспертизе не подвергал, потому что это никого всерьёз не интересует ... радиолюбительство в самом плохом смысле этого слова. :lol:
Да и нет там никакого "риалтайма", в конце концов, кроме "мечтов" его разработчиков и их же рекламных обещалок.
А Linux доводили до сегодняшнего состояния тысячи разработчиков на протяжении 30 лет.
Вы чувствуете разницу между поделием за которым трудоёмкости всего-навсего три-с-половиной человеко-лет, и изделием с трудоёмкостью несколько десятков тысяч человеко-лет?
strap89 писал(а):
23 фев 2021, 08:53

По поводу ценовой категории я не слишком силен. Не знаю, в каких категориях вы меряете.
А что тут мерять? ;-)
1). Если вы работает над изделием, которое в базарный день продаётся, за всё про всё, за $100 - то у вас единственно разумный выбор компьютера в состав - это Orange Pi One на ARM ценой $9.
2). Если вы работаете над изделием продажной стоимостью под $1000, то уместно подумать о чём-то самом старшем из ARM или интегрированным одноплатным решением на x86 ... что и то и другое можно совсем прилично выбрать в пределах $50.
3). А если ваша система планируется под продажную стоимость >$3000 - то тут никаких сомнений быть не может, и это - интегрированное решение на x86, из числа самых развитых, стоимостью от $150 и далее...
(это если вас не жмут требования энергопотребления или подобные ... и тогда может быть и ARM и MIPS)

Потому что и в 1) и в 2) и в 3) с лёгкостью запихивается Linux, только на ARM вы потом на длительности и сложностях разработки потом любую экономию начальной стоимости железок спалите 5 раз! :-o :-(

P.S. Назовите высший предел стоимости платы с процессором (цифра!), которую вы сами себе установили - вот вам и "ценовая категория".

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение strap89 » 24 фев 2021, 09:04

Olej писал(а):
22 фев 2021, 13:02
Вообще то, в рамках Linux нельзя обеспечить hard realtime, нельзя в принципе!
А любые разговоры о soft realtime - это разговоры об "осетрине второй свежести".
Наверно я тупой совсем. Вот первый ваш ответ читаю.
Успокоен, пишу поэтому:
Olej писал(а):
23 фев 2021, 21:59
С одной стороны linux это не real time система, писать безотказные (по скорости) приложения на них не стоит
Стоит. Но стоит просто архитектурно так, чтобы приложения вписывались в архитектуру системы, и при том были и безотказными.
P.S. Пример: марсоход USA был построен на расхваленной-расхваленной, реалтайм-из-реалтаймов VxWorks ... при первой же сложности, посадке на Марс, отказал ... а VxWorks был кем-то там перекуплен списан в утиль.
Читаю ответ: нет неправильно понял. Теперь архитектурно надо писать, а не как я всегда, тупо и прямолинейно. Хотя вопрос-то мой был о другом: 1мс это hard real-time или нет? При заданных мною в меру способностей ТТХ.
Поскольку Вы считаете (насколько я понял), что надо отладить linux, я так понимаю - это все же не hard real-time.
Olej писал(а):
23 фев 2021, 21:59
Монолитные ОС в принципе не могут быть hard-realtime (все и везде), и это относится и ко всем расхваливаемым "поделкам на коленке" типа RTOS.
А микроядерные ОС ушли в небытие... по крайней мере по состоянию на сейчас.
strap89 писал(а): ↑
С такой точки зрения, вся моя деятельность - пустая трата времени на коленке. Как и у всех остальных. Ведь я писал код один, писал недолго. Запустил, отладил и забыл.
А теперь так нельзя - нужно использовать опыт "миллионов разработчиков". Но, опять напишу код (уже вдвоем с напарником), поскольку все надо делать на linux, делать будем гораздо дольше, но напишем. Запустим, отладим и забудем... И в чем принципиальная разница? Ошибок меньше не станет, тут и к бабке не ходи.
А от rtos я получу hard real-time, поскольку она изначально не многозадачна. Тут кстати вопрос, я хотел его задать раньше, но как-то постеснялся, наивный какой-то. Суть: сделать минимальную сборку linux, до предела минимальную. Цель: свести количество работающих процессов до минимальных цифр (2,3 процесса, в идеале 1). И тогда уже можно будет говорить о предсказуемости поведения системы в реальности.

strap89
Писатель
Сообщения: 24
Зарегистрирован: 23 июл 2020, 11:16
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение strap89 » 24 фев 2021, 10:31

По поводу ценовой категории. Там одного оборудования по миллион вышло. Плюс стойку собрать и пр. Сейчас мы работаем без договора, на чистом энтузиазме, соответственно я могу сидеть и не торопясь рассуждать real-time, не real-time. Будет договор, я просто сяду и сделаю, тут уж будет не до рассуждений. А цена - несколько миллионов, там одной стойкой не обойдешься.
На данный момент процессор стоит малохольный совсем, какой-то celeron простецкий, двух-ядерный. Для моих целей, на ontime, его с запасом хватает, в linux его естесно мало (да я и не думал всерьез о его использовании, до прихода молодой поросли).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 1мс это real time или еще нет?

Непрочитанное сообщение Olej » 24 фев 2021, 15:04

strap89 писал(а):
24 фев 2021, 09:04
Хотя вопрос-то мой был о другом: 1мс это hard real-time или нет?
Вернёмся к вопросу...
Ответ должен быть такой: абсолютная цифра величины задержки: 0.1 или 1 или 10 или 100 мс - не имеет вообще отношения к термину real-time, ... от слова никакого. ;-) Это вопрос относящийся к скорости обработки: берёте процессор в 10 раз быстрее - и получаете скорость быстрее ... хотя не обязательно пропорционально, не в 10 раз, медленнее, но всё же...

P.S. Хотя тут довольно сложный вопрос что считать как "скорость процессора" изначально? исходя из каких его характеристик: число ядер? тактовая частота? расширения системы команд? архитектуру? ... как вы сравните "скорость" процессоров x86, ARM, MIPS?

Сам вопрос поставлен неверно!
В литературе, публикациях, особенно периода 2000-2005г.г., относительно RTOS типа QNX или VxWorks, многократно обсуждалось, и считается признанны, что при прочих равных операционная система реального времени (RTOS) будет медленнее чем операционная система общего применения (GPOS).

Характеристика real-time (её софтверность или хардверность) имеет отношение не к скорости реакции, а к тому что называют timing jitter, к распределению задержек по времени, тому насколько они сконцентрированы вокруг центрального ожидаемого значения (по очень большому числу повторений) ... т.е. то, с какой частотой (вероятностью) время задержки будет выпадать за регламентируемое среднее ... ну, и насколько много будет превышение при этих выпаданиях.

P.S. Хотя минимальные задержки для не риалтайм системы будут ниже! (и на графике показанном ниже это отчётливо видно)

Вот интересная публикация вам в тему: Linux в режиме реального времени - особенно там картинка в конце:
Изображение
Или вот в этом отчёте Real Time Linux Scheduling Comparison графики на стр.16 хорошо это проясняют.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей