реклама на сайте
подробности

 
 
> Real-time и не-real-time - в одном флаконе или раздельно?
syoma
сообщение Oct 26 2017, 09:41
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет. Собственно вопрос из области начинающих по архитектуре процессорной системы. Делаем новый проект и возник вопрос.
С одной стороны есть программа, работающая в жестком реальном времени с коммуникацией, через CAN, SPI и RS485. Это основная функция системы.
С другой стороны есть куча других интерфейсов - SD card, Ethernet, USB и прочих, которые служат для вспомогательных функций - записи логов, параметрирования, обновления ПО, удаленного доступа через WEB и bluetooth, терминалки и т.д.

Если все это реализовывать на одном процессоре, то получается, что надо использовать RTOS, что требует определенных программистских навыков и не нравится то, что это уменьшает защиту системы от внешних хакерских атак. Если из-за Ethernetа зависнет основная программа - это будет очень-очень плохо. Т.е. в результате увеличиваем затраты на разработку, делаем сложную программу, но уменьшаем стоимость железа.
Поэтому у меня настрой такой, что основной процессор должен выполнять только основную real-time программу и все. При этом ему не нужна операционная система вообще, так как нужные интерфейсы реализуются как функции ввода/вывода - это уже реализовано и проверено.
А для всего остального поставить отдельный процессор или даже платку, на которой будет крутиться обыкновенный Linux со всеми нужными драйверами. И с основным процессором эта плата будет общаться только через CAN. В этом случае практически все функции будут уже реализованы в самом ядре и программисту надо будет сделать очень мало и хоть на питоне или джаве. То есть затраты на разработку будут гораздо меньше, имеем барьер от хакерских атак - если этот процессор зависнет, система будет прекрасно работать дальше, но увеличиваем стоимость железа.

Как думаете это нормальный подход сегодня?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Студент заборстр...
сообщение Nov 3 2017, 03:51
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



А какие проблемы-то? (я к вопросу темы)
Фоновый поток не реалтайм, а приоритетные потоки - реалтайм.
Тут нет никакой проблемы.
А проблема в том, чтобы при наличии вытесняющей многозадачности низкоприоритетным потокам тоже гарантировать пусть и бОльшее, чем высокоприоритетным потокам, но ГАРАНТИРОВАННОЕ время реакции.

Это проблема хоть и сложней, но вполне решаема.
Я в разработанной мной RTOS её решил
Go to the top of the page
 
+Quote Post
mantech
сообщение Nov 3 2017, 07:11
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Студент заборстроительного @ Nov 3 2017, 06:51) *
А проблема в том, чтобы при наличии вытесняющей многозадачности низкоприоритетным потокам тоже гарантировать пусть и бОльшее, чем высокоприоритетным потокам, но ГАРАНТИРОВАННОЕ время реакции.


Кто мешает делать критичные ко времени задачи на прерываниях? Никогда проблем с этим не было...
Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Nov 3 2017, 15:21
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(mantech @ Nov 3 2017, 10:11) *
Кто мешает делать критичные ко времени задачи на прерываниях? Никогда проблем с этим не было...

Если поток прерываний слишком большой, он "забьёт" более низкоприоритетные, но все равно реал-таймовые задачи.

Я пошёл по пути гарантированного тайм-слота для задач с приоритетами класса 2

Цитата(AlexandrY @ Nov 3 2017, 11:19) *
С ваши подходом можно и Windows 10 считать RTOS.

С цитированием по внимательней будьте.
Я так понял, это Вы к вот этому:
Цитата
Понятие "реальное время" перпендикулярно тому, через сколько времени ртось среагирует на событие.

Если ртось УСПЕВАЕТ ВОВРЕМЯ среагировать и обработать евент за ДЕТЕРМИНИРОВАННОЕ время и это время устраивает заказчика, значит это ртось. Даже если время реакции сотни милисекунд

К примеру если цикл ПЛК 0.5 секунды то нафига успевать среагировать и обрабатывать евент за микросекунды?

А не к тому, что процитировали

Изучив десятки RTOS, теорию их построения и перепробовав различные варианты построения RTOS я в конце концов вообще я отказался от использования прерываний.
Посколько с ними трудно динамически менять приоритет прерываний как тебе заблагорассудится и жесткий реалтайм для всех потоков трудно реализовать.
Точнее у меня работал только одно прерывание. Таймерное.
Все остальные прерывания работали по механизму поллинга их флагов.
Да получился большой оверхед. В том смысле, что процессор почти 70% времени проводил в таймерном прерывании.

Ну и что?
Проблему решил просто: взял проц с более высокой (на 500% выше чем нужно для моих задач) тактовой. И что? сейчас процессоры стоят дешевле грязи. А вот софт к ним стоит огого. Поэтому лучше купить проц подороже, но сэкономить на софте

Зато реализация RTOS получилась очень простой, красивой и надёжной. И жесткий реалтайм получился ГАРАНТИРОВАННЫМ при вытесняющей многозадачности

Более того.
У меня не только была реализована вытесняющая многозадачность. Но и отсутствие зависания даже самых низкоприоритетных потоков.
Посколько классу низкоприоритетных потоков все равно гарантировался тайм-слот

Проблема дедлоков тоже была решена за счет выбора архитектуры построения RTOS

Таким образом у моей RTOS был только один "минус": 70% времени процессора занимал микродиспетчер, находившийся в таймерном прерывании. Т.е. на диспетчеризацию уходило 70% процессорного времени, а на выполнение "полезной работы" - всего 30%. Но с этим можно смириться. Выбрав более мощный проц

Сообщение отредактировал Студент заборстроительного - Nov 3 2017, 15:24
Go to the top of the page
 
+Quote Post
mantech
сообщение Nov 3 2017, 17:39
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Студент заборстроительного @ Nov 3 2017, 18:21) *
Если поток прерываний слишком большой, он "забьёт" более низкоприоритетные, но все равно реал-таймовые задачи.

Я пошёл по пути гарантированного тайм-слота для задач с приоритетами класса 2


Сразу вижу противоречие. Т.е. если возьмем один и тот же процессор, и если у него не хватает быстродействия для обработки прерываний, и он забьет остальные прерывания, то это означает одно - неправильный выбор быстродействия проца, т.к. в этом случае ваша ОС просто пропустит это событие, находясь в другой задаче или в блоке переключения контекста.
Go to the top of the page
 
+Quote Post
Студент заборстр...
сообщение Nov 4 2017, 08:17
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334



Цитата(mantech @ Nov 3 2017, 20:39) *
Сразу вижу противоречие. Т.е. если возьмем один и тот же процессор, и если у него не хватает быстродействия для обработки прерываний, и он забьет остальные прерывания, то это означает одно - неправильный выбор быстродействия проца, т.к. в этом случае ваша ОС просто пропустит это событие, находясь в другой задаче или в блоке переключения контекста.

Поэтому я и пошёл по пути запрета всех прерываний кроме таймерного.
А другие прерывания опрашивал по механизму поллинга.
Я же писал: у меня проц больше 70% времени сидит в обработчике таймерного прерывания, а на "полезную работу" доступно менее 30% процессорного времени.

Кто-то скажет: это же не рационально, глупо, криво и т.п.
А я скажу: процессорное время стоит на ПОРЯДКИ дешевле, чем труд программиста.
И это мизерная цена за простоту и прозрачность кода и обеспечение жесткой реалтаймовости при вытесняющей многозадачности и многопоточности

Цитата(syoma @ Nov 3 2017, 21:17) *
хотя он, возможно, не самый эффективный по загрузке процессора - до 70%

Да плевать на загрузку процессора. Он же железный, вот и пусть пашет.
Труд программиста стоит на порядки дороже чем процессорные такты.
Я когда-то болел болезнью: экономить каждый такт CPU, старался писать код так, чтобы экономить такты. А потом понял, что моё время бесценно, а процессорное стоит копейки.
Go to the top of the page
 
+Quote Post
mantech
сообщение Nov 5 2017, 09:17
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Студент заборстроительного @ Nov 4 2017, 11:17) *
Да плевать на загрузку процессора. Он же железный, вот и пусть пашет.
Труд программиста стоит на порядки дороже чем процессорные такты.
Я когда-то болел болезнью: экономить каждый такт CPU, старался писать код так, чтобы экономить такты. А потом понял, что моё время бесценно, а процессорное стоит копейки.


В таком режиме о энергосбережении можно забыть навсегда. В АВРках или простеньких АРМ, на частоте до 100МГц - это наверно и нафиг не нужно, но на частотах 500+ это очень заметно получается.
На счет труда программиста - для себя не вижу никакой трудности использовать прерывания, нежели изврат с поллингом, но тут дело вкуса, конечно...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- syoma   Real-time и не-real-time - в одном флаконе или раздельно?   Oct 26 2017, 09:41
- - Kabdim   А RTOS у которой в кач-ве guestOS крутится тот же ...   Oct 26 2017, 10:36
- - k155la3   В промышленных контроллерах (PLC) практикуется ...   Oct 26 2017, 10:52
|- - AlexandrY   Цитата(k155la3 @ Oct 26 2017, 13:52) Собс...   Oct 26 2017, 12:24
|- - k155la3   Цитата(AlexandrY @ Oct 26 2017, 15:24) Да...   Oct 26 2017, 14:59
|- - AlexandrY   Цитата(k155la3 @ Oct 26 2017, 17:59) А ка...   Oct 26 2017, 17:08
|- - k155la3   Цитата(AlexandrY @ Oct 26 2017, 20:08) . ...   Oct 26 2017, 17:21
- - syoma   У нас как раз почти-промышленный контроллер - логи...   Oct 26 2017, 11:57
|- - Студент заборстроительного   Цитата(syoma @ Oct 26 2017, 14:57) У нас ...   Oct 28 2017, 17:56
|- - AlexandrY   Цитата(Студент заборстроительного @ Oct 28 20...   Oct 29 2017, 12:22
|- - mantech   Цитата(AlexandrY @ Oct 29 2017, 15:19) То...   Oct 29 2017, 12:25
||- - AlexandrY   Цитата(mantech @ Oct 29 2017, 14:25) Если...   Oct 29 2017, 12:27
|- - mantech   Цитата(AlexandrY @ Oct 29 2017, 15:22) Хм...   Oct 29 2017, 17:20
- - syoma   Ну вот с другой сторону смотрю на системы типа Twi...   Oct 26 2017, 12:44
|- - Lagman   Цитата(syoma @ Oct 26 2017, 15:44) что та...   Oct 26 2017, 13:39
|- - AlexandrY   Цитата(syoma @ Oct 26 2017, 15:44) Но там...   Oct 26 2017, 14:15
|- - syoma   Цитата(AlexandrY @ Oct 26 2017, 16:15) Ес...   Oct 26 2017, 14:38
- - syoma   ЦитатаОбслуживание цепей безопасности делают также...   Oct 27 2017, 07:50
|- - AlexandrY   Цитата(syoma @ Oct 27 2017, 10:50) Но тем...   Oct 27 2017, 08:26
|- - k155la3   Цитата(syoma @ Oct 27 2017, 10:50) . . . ...   Oct 27 2017, 10:17
- - syoma   ЦитатаПолучается большой черный ящик, с массой вхо...   Oct 27 2017, 15:20
|- - k155la3   Цитата(syoma @ Oct 27 2017, 18:20) . . . ...   Oct 27 2017, 15:47
|- - AlexandrY   Цитата(syoma @ Oct 27 2017, 18:20) Если д...   Oct 27 2017, 17:05
|- - mantech   Цитата(AlexandrY @ Oct 27 2017, 20:05) Да...   Oct 28 2017, 12:13
- - k155la3   У меня сейчас тоже проблема выбора OS или вообще б...   Oct 28 2017, 13:16
|- - AlexandrY   Цитата(k155la3 @ Oct 28 2017, 16:16) Дост...   Oct 28 2017, 14:03
||- - mantech   Цитата(AlexandrY @ Oct 28 2017, 17:03) В ...   Oct 28 2017, 15:41
|- - syoma   Цитата(k155la3 @ Oct 28 2017, 15:16) Собс...   Oct 28 2017, 14:04
|- - AlexandrY   Цитата(syoma @ Oct 28 2017, 17:04) так ка...   Oct 28 2017, 14:13
||- - syoma   Цитата(AlexandrY @ Oct 28 2017, 16:13) Эт...   Oct 28 2017, 15:42
|- - mantech   Цитата(syoma @ Oct 28 2017, 17:04) Допуст...   Oct 28 2017, 15:47
|- - k155la3   Цитата(syoma @ Oct 28 2017, 17:04) . . . ...   Oct 28 2017, 16:03
|- - mantech   Цитата(k155la3 @ Oct 28 2017, 19:03) Для ...   Oct 28 2017, 17:23
|- - k155la3   Цитата(mantech @ Oct 28 2017, 20:23) Шеде...   Oct 28 2017, 18:21
|- - mantech   Цитата(k155la3 @ Oct 28 2017, 21:21) Вы м...   Oct 28 2017, 18:28
- - syoma   ЦитатаВ любом нормально спроектированном софте не ...   Oct 29 2017, 09:35
|- - k155la3   >> В любом нормально спроектированном софте ...   Oct 30 2017, 21:21
|- - syoma   Цитата(k155la3 @ Oct 30 2017, 23:21) Можн...   Oct 31 2017, 10:52
|- - mantech   Цитата(k155la3 @ Oct 31 2017, 00:21) Можн...   Oct 31 2017, 14:10
- - syoma   ЦитатаХм, т.е. с одной стороны говорим - ой, какое...   Oct 29 2017, 19:33
|- - AlexandrY   Цитата(syoma @ Oct 29 2017, 21:33) Что зн...   Oct 30 2017, 06:46
|- - mantech   Цитата(AlexandrY @ Oct 30 2017, 09:46) Ру...   Oct 30 2017, 07:25
|- - gosha-z   Цитата(mantech @ Oct 30 2017, 10:25) Вы м...   Oct 30 2017, 07:34
|- - mantech   Цитата(gosha-z @ Oct 30 2017, 10:34)...   Oct 30 2017, 07:51
|- - gosha-z   Цитата(mantech @ Oct 30 2017, 10:51) Прав...   Oct 30 2017, 07:53
- - syoma   ЦитатаРушится обмен на всех шинах. Все слэйвы уход...   Oct 30 2017, 08:27
|- - AlexandrY   Цитата(syoma @ Oct 30 2017, 10:27) Можете...   Oct 30 2017, 08:53
- - Kabdim   Странно что никто еще не упомянул про формальную в...   Oct 31 2017, 08:21
|- - AlexandrY   Цитата(Kabdim @ Oct 31 2017, 10:21) Стран...   Oct 31 2017, 09:51
|- - Студент заборстроительного   Цитата(Kabdim @ Oct 31 2017, 11:21) Стран...   Oct 31 2017, 17:18
|- - AlexandrY   Цитата(Студент заборстроительного @ Oct 31 20...   Oct 31 2017, 19:31
- - Kabdim   Цитата(AlexandrY @ Oct 31 2017, 12:51) Са...   Oct 31 2017, 10:41
|- - AlexandrY   Цитата(Kabdim @ Oct 31 2017, 12:41) Вы не...   Oct 31 2017, 11:45
- - Kabdim   Если осилите HoL, то скорее всего вам не потребуют...   Oct 31 2017, 12:05
|- - AlexandrY   Цитата(Kabdim @ Oct 31 2017, 14:05) Если ...   Oct 31 2017, 12:27
- - Kabdim   Я даже готов с вами отчасти согласится о ненужност...   Oct 31 2017, 13:06
- - Kabdim   Ну хватит уже фантазировать о том что не осилили. ...   Nov 1 2017, 08:34
|- - AlexandrY   Цитата(Kabdim @ Nov 1 2017, 10:34) Ну хва...   Nov 1 2017, 08:53
- - Kabdim   Если бы вы прочитали первую ссылку, вас бы не приш...   Nov 1 2017, 09:04
|- - AlexandrY   Цитата(Kabdim @ Nov 1 2017, 11:04) Если б...   Nov 1 2017, 09:42
- - Kabdim   Так насчет вашего первого контраргумента что C код...   Nov 1 2017, 09:51
|- - AlexandrY   Цитата(Kabdim @ Nov 1 2017, 11:51) Так на...   Nov 1 2017, 10:40
|- - Kabdim   Цитата(AlexandrY @ Nov 1 2017, 13:40) По ...   Nov 1 2017, 10:55
- - syoma   Народ все это интересно, но может стоит обсуждать ...   Nov 1 2017, 10:59
|- - AlexandrY   Цитата(syoma @ Nov 1 2017, 12:59) Народ в...   Nov 1 2017, 11:07
||- - syoma   Цитата(mantech @ Nov 3 2017, 09:11) Кто м...   Nov 3 2017, 10:55
||- - AlexandrY   Цитата(Студент заборстроительного @ Nov 3 201...   Nov 3 2017, 17:03
|||- - Студент заборстроительного   Цитата(AlexandrY @ Nov 3 2017, 20:03) Это...   Nov 3 2017, 17:20
||- - Tarbal   Цитата(Студент заборстроительного @ Nov 4 201...   Nov 5 2017, 03:25
|||- - Студент заборстроительного   Цитата(Tarbal @ Nov 5 2017, 06:25) В двух...   Nov 5 2017, 07:44
|||- - AlexandrY   Цитата(Tarbal @ Nov 5 2017, 05:25) Еще ра...   Nov 5 2017, 08:43
||- - Студент заборстроительного   Цитата(mantech @ Nov 5 2017, 12:17) для с...   Nov 5 2017, 09:24
||- - mantech   Цитата(Студент заборстроительного @ Nov 5 201...   Nov 5 2017, 11:29
|- - AlexandrY   Цитата(Студент заборстроительного @ Nov 3 201...   Nov 3 2017, 08:19
|- - mantech   Цитата(AlexandrY @ Nov 3 2017, 11:19) У м...   Nov 3 2017, 08:57
|- - AlexandrY   Цитата(mantech @ Nov 3 2017, 10:57) Да ва...   Nov 3 2017, 09:32
- - Pavia   Для AlexandrY ЦитатаЭто не зависания оси, это пере...   Nov 3 2017, 14:39
- - syoma   Если говорить о многозадачности, то у меня будет R...   Nov 3 2017, 18:17
- - syoma   ЦитатаЕсли же прерывания не фрагменты задач, а неч...   Nov 5 2017, 09:05
|- - AlexandrY   Цитата(syoma @ Nov 5 2017, 11:05) Тут ест...   Nov 5 2017, 13:39
- - Rst7   Moderator: Уважаемые, настоятельно призываю верну...   Nov 6 2017, 09:23
- - syoma   ЦитатаТут вы сделали себе логичекую ловушку. Если ...   Nov 6 2017, 09:48
|- - AlexandrY   Цитата(syoma @ Nov 6 2017, 11:48) Не очен...   Nov 6 2017, 10:47
- - one_eight_seven   Цитатадопустили возможность прихода нового пакета ...   Nov 6 2017, 11:35
- - syoma   ЦитатаВы допустили возможность прихода нового паке...   Nov 6 2017, 11:38
|- - AlexandrY   Цитата(syoma @ Nov 6 2017, 13:38) Не, не....   Nov 6 2017, 13:51
|- - syoma   Цитата(AlexandrY @ Nov 6 2017, 16:51) Тог...   Nov 6 2017, 14:22
|- - Tarbal   Цитата(syoma @ Nov 6 2017, 18:22) Я собир...   Nov 7 2017, 04:18
|- - AlexandrY   Цитата(Tarbal @ Nov 7 2017, 06:18) Занима...   Nov 7 2017, 06:12
|- - Студент заборстроительного   Цитата(AlexandrY @ Nov 7 2017, 09:12) Она...   Nov 7 2017, 18:23
||- - AlexandrY   Цитата(Студент заборстроительного @ Nov 7 201...   Nov 7 2017, 20:29
|- - Tarbal   Цитата(AlexandrY @ Nov 7 2017, 10:12) Ссы...   Nov 8 2017, 00:37
- - syoma   Цитатапогибнут люди или угробится оборудование сто...   Nov 8 2017, 09:58
- - Tarbal   Цитата(syoma @ Nov 8 2017, 12:58) Все-так...   Nov 9 2017, 00:34
2 страниц V   1 2 >


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 04:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.02225 секунд с 7
ELECTRONIX ©2004-2016