-
- Одна единственная Ваша задача может расходовать все 100% (ну ладно, пусть будет 99,9%) вычислительной мощности. Каждая следующая задача или прерывание будет откусывать себе скокато. Так что вопрос в принципе некорректен. Сама RTOS потребляет процессор только на прерывание таймера. Переключение контекста и средства синхронизации можно отнести к накладным расходам самих задач и это в сущности копейки. - =AlexD=(30.10.2023 08:01)
- Вопрос, ИМХО, слишком широко поставлен. Сама по себе фриртось процессор почти не жрёт. Процессор жрут прерывания (включая таймер) и вызванные этими прерываниями переключения задач. Для определённого ответа надо понимать тип процессора, его частоту и частоту прерываний для худшего случая. - LightElf(29.10.2023 22:32)
- если все делать правильно получите больше. рискну предположить -
если перепроектируете прилагуху, получите еще больше, накладные
расходы покроются "выпрямлением" кода который приходится писать для
взаимодействия сущностей в рукописном планировщике. 1МГц системный
все не сожрет. у меня были опыты с такой скоростью переключения.
все нормально если тактовая процессора более 100 МГц тактовой. там
жеж еще приоритеты есть - упоротый поток может похать пока все не
сделеат. и klen(30 знак., 29.10.2023 19:50)
- Можно все :) При таковой 100 МГц и 1 МГц прерываний (если нет
банков регистров) можно тактовый КПД процессора вычислить :) - Evgeny_CD(29.10.2023 19:50)
- Обычно, время на переключение контекстов - известная величина. - Cкpипaч(29.10.2023 19:53)
- Я и говорю - можно растактовку написать. Вот у нас 100 тактов.
Нырнули, поработали, вынырнули, поработали. Hardcore
программирование! - Evgeny_CD(29.10.2023 20:00)
- Это-ж как оголодать нужно :) На практике, частенько бывает нужно понимать, через какое время начнет реально выполняться код обработчика прерывания (его нижняя часть, так скажем). - Cкpипaч(29.10.2023 20:04)
- Еще чуть-чуть, и прерывания не нужны! Временные события подгоняем
по растактовке команд :) зато сколько тактов на переключение
контекста съэкономим :) - Evgeny_CD(29.10.2023 20:03)
- Много лет назад на этот факт мне тут открыл глаза Dir. Весьма было
неожиданно, после того как лет десять кодил для RTOS :) Cкpипaч(329 знак., 29.10.2023 20:09)
- да. действительно.... зачем они придумали прерывания, глупость и
пошлый ажиотаж! берем процессор с частотой 100500 ГГц ... золотой
ключег в кармане. можно писать на бейсике... а ОСРВ так вообще
ерись! Анафему на них всезх!!! - klen(29.10.2023 20:42)
- Не так. На моих atmega8 есть несколько таймеров, АЦП и UART. Причем кроме UART, все задачи - в сетке единиц секунд. Cкpипaч(700 знак., 30.10.2023 09:56)
- ну я писал. на бейсике. управление станками в реальном времени. на
синклере. все работало лет 20. и чо? сжечь меня теперь? - Alex68(29.10.2023 22:56)
- писал на бейсике, и чем это все закончилось? покажи нам этот станок
и что он сейчас делает. я повзрослел и понял на собственном примере
- те кто не умеют делать работу по уму, изобретают подвиги которые
никому не нужны и этим пахвалюятся, для почесывания ущербного
ЧСВ(исключение - начальство творческие дебилы) - klen(29.10.2023 23:06 - 23:09)
- он резал пластины керамические по заданным размерам. то есть было
управление шаговиками и обработка данных с енкодеров. а другой
станок был упаковочным автоматом - сваривал пакет из полиетилена,
отмерял\взвешивал сыпучий продукт, засыпал его в пакет и заваривал,
потом на транспортере отправлял на склад. - Alex68(29.10.2023 23:09)
- ну и хорошо что работал. это здорово. я про то что нужно грамотно
выбирать инструмент - если не хватает денег или мозгов, нужно
отложить и заняться деньгами и своими мозгами я считаю. - klen(30.10.2023 00:09)
- это было сделано примерно в 97-99 годах. выбор того, на чем можно
было бы сделать, был крайне мал. а до того многое
автоматизировалось с помощью "Электроника-60" - Alex68(30.10.2023 00:13)
- У нас пытались ДВК-2 приспособить для управления монохроматором и счетчиком фотонов. Типа спектры в автоматическом режиме обрабатывать. А перед этим Д3-28 для этих же целей, но этот "большой калькулятор" чаще ломался, чем работал. - reZident(30.10.2023 00:42)
- дайте понудеть хоть разок. 1986 год РК-86 и ассемблер! питон на нем было первое в моей жизни что было компутером.. - klen(30.10.2023 00:28)
- это было сделано примерно в 97-99 годах. выбор того, на чем можно
было бы сделать, был крайне мал. а до того многое
автоматизировалось с помощью "Электроника-60" - Alex68(30.10.2023 00:13)
- ну и хорошо что работал. это здорово. я про то что нужно грамотно
выбирать инструмент - если не хватает денег или мозгов, нужно
отложить и заняться деньгами и своими мозгами я считаю. - klen(30.10.2023 00:09)
- он резал пластины керамические по заданным размерам. то есть было
управление шаговиками и обработка данных с енкодеров. а другой
станок был упаковочным автоматом - сваривал пакет из полиетилена,
отмерял\взвешивал сыпучий продукт, засыпал его в пакет и заваривал,
потом на транспортере отправлял на склад. - Alex68(29.10.2023 23:09)
- +1 Аналогично! ;)>>> SERGHIO(1 знак., 29.10.2023 23:02, ссылка)
- писал на бейсике, и чем это все закончилось? покажи нам этот станок
и что он сейчас делает. я повзрослел и понял на собственном примере
- те кто не умеют делать работу по уму, изобретают подвиги которые
никому не нужны и этим пахвалюятся, для почесывания ущербного
ЧСВ(исключение - начальство творческие дебилы) - klen(29.10.2023 23:06 - 23:09)
- да. действительно.... зачем они придумали прерывания, глупость и
пошлый ажиотаж! берем процессор с частотой 100500 ГГц ... золотой
ключег в кармане. можно писать на бейсике... а ОСРВ так вообще
ерись! Анафему на них всезх!!! - klen(29.10.2023 20:42)
- Много лет назад на этот факт мне тут открыл глаза Dir. Весьма было
неожиданно, после того как лет десять кодил для RTOS :) Cкpипaч(329 знак., 29.10.2023 20:09)
- Я и говорю - можно растактовку написать. Вот у нас 100 тактов.
Нырнули, поработали, вынырнули, поработали. Hardcore
программирование! - Evgeny_CD(29.10.2023 20:00)
- Обычно, время на переключение контекстов - известная величина. - Cкpипaч(29.10.2023 19:53)
- Можно все :) При таковой 100 МГц и 1 МГц прерываний (если нет
банков регистров) можно тактовый КПД процессора вычислить :) - Evgeny_CD(29.10.2023 19:50)
- о каком таймауте допустимом идет речь ? если о гарантированной
реакции 1 мс - то 100% сможете 50% получить на полезную нагрузку... sav6622(149 знак., 29.10.2023 19:23)
- В строго говоря, это не реальное время. У меня там одна задача - ввод отсчетов сигнала, вторая - обработка, третья - вывод результата. Еще по мелочам - работа с клавиатурой, дисплеем и проч. Мне кажется,.что переключатся раз в 10-30 мс будет достаточно. Главное, не пропускать отсчеты на входе. - st256(29.10.2023 19:46)
- Ну во первых. ФрееРтос не просто тупой планировщик в нем хорошо
оптимизировано переключение задач в зависимости от состояния
очередей где с одной стороны очередь обрабатывается прерыванием а с
другой стороны висит задача на ожидании наполнения очереди. В этом
случае в холостую не передается управление задачам для которых еще
нет данных. Во вторых вытеснение это параметр можно переключить в
кооперацию. - framer(29.10.2023 19:09)
- То, что Вы сказали, это прекрасно. Но смогу ли я при столь
блестящих фичах отжать у этих фичей 50% на что-то полезное? И это,
прерывания в ОСРВ не нужны. Представляете? - st256(29.10.2023 19:14)
- Не очень представляю себе систему где скажем 10 параллельных задач
без остановки что то делают и не обмениваются информацией. С
прерываниями был просто пример. Если принять что нет прерываний то
и так механизмы предоставляемые фреертос очень упрощают жизнь и при
этом не перегружают систему на переключение контекста. Конечно
зависит от того как написана программа. Если в лоб переносить
программу то результат может быть не очень. - framer(29.10.2023 19:26)
- Задачи могут обмениваться данными без прерываний. Для этого
используют флаги (они же мьютексы, они же семафоры). Кстати, а
нафига эта ОСРВ в принципе? Щоб було? - st256(29.10.2023 19:50)
- исходя из названия, ОСРВ в том или ином виде, как полная,
настоящая, так и "доморощенная" - незаменимы для своевременного реагирования на какие-либо события, требующие реагирования в реальном времени. Но это да, 5-10% от общих задач, а то и сильно меньше. Всё
остальное обрабатывается разными планировщиками с семафорами,
системой сообщений и т.п. Adept(319 знак., 30.10.2023 11:14)
- Все, для чего нужна ОСРВ - запустить несколько задач в параллель.
Представляете, это все... - st256(30.10.2023 11:55)
- Отличие ОС от РТОС исключительно в планировщике. В ОС всем задачам стараются выделить равное количество процессорного времени чтобы никто не ушёл обиженным, поэтому нет детерминизма времени выполнения конкретной задачи. В РТОС планировщик работает строго по приоритетам, поэтому можно прогнозировать время выполнения и вручную вписаться в требуемые параметры латентности. =AlexD=(135 знак., 30.10.2023 13:17)
- не путайте многозадачную ОС и ОСРВ (которая тоже может быть
мнрогозадачной). "реальное время" нужно для адекватного и своевременного реагирования на событие (к примеру, срабатывание датчика, или
достижения какого-то параметра) и это не должно нарушаться никакими
непредвиденными действиями системы. Всё должно быть строго прогнозируемо и предсказуемо. В этом и есть смысл ОСРВ - Adept(30.10.2023 12:03)
- Я ничего не путаю. ОСРВ это Операционная система разделенного
времени. Я просто долго живу и помню, как оно называлось раньше. st256(1 знак., 30.10.2023 12:45, ссылка)
- Такой умный но такой дурак. ОСРВ - это калька с английского
Real-Time Operating System (RTOS), чем и является FreeRTOS, а то
что ты пишешь - это окаменелости юрского периода, про которые уже
все забыли. - =AlexD=(30.10.2023 13:07)
- Все сказал? - st256(30.10.2023 13:14)
- Всё прочитал? - =AlexD=(30.10.2023 13:18)
- Все сказал? - st256(30.10.2023 13:14)
- Такой умный но такой дурак. ОСРВ - это калька с английского
Real-Time Operating System (RTOS), чем и является FreeRTOS, а то
что ты пишешь - это окаменелости юрского периода, про которые уже
все забыли. - =AlexD=(30.10.2023 13:07)
- Я ничего не путаю. ОСРВ это Операционная система разделенного
времени. Я просто долго живу и помню, как оно называлось раньше. st256(1 знак., 30.10.2023 12:45, ссылка)
- Все, для чего нужна ОСРВ - запустить несколько задач в параллель.
Представляете, это все... - st256(30.10.2023 11:55)
- RTOS необходима для более эффективного расходования процессорного
времени, внезапно. - =AlexD=(30.10.2023 08:03)
- не-а... - st256(30.10.2023 10:26)
- Вы просто не умеете их готовить, либо не делали по настоящему
сложных программных систем. - =AlexD=(30.10.2023 11:01)
- Ну, либо Вы чего-то не знаете. - st256(30.10.2023 11:53)
- Да, либо Вы чего-то не знаете. - =AlexD=(30.10.2023 13:08)
- Ну, либо Вы чего-то не знаете. - st256(30.10.2023 11:53)
- Вы просто не умеете их готовить, либо не делали по настоящему
сложных программных систем. - =AlexD=(30.10.2023 11:01)
- не-а... - st256(30.10.2023 10:26)
- исходя из названия, ОСРВ в том или ином виде, как полная,
настоящая, так и "доморощенная" - незаменимы для своевременного реагирования на какие-либо события, требующие реагирования в реальном времени. Но это да, 5-10% от общих задач, а то и сильно меньше. Всё
остальное обрабатывается разными планировщиками с семафорами,
системой сообщений и т.п. Adept(319 знак., 30.10.2023 11:14)
- Задачи могут обмениваться данными без прерываний. Для этого
используют флаги (они же мьютексы, они же семафоры). Кстати, а
нафига эта ОСРВ в принципе? Щоб було? - st256(29.10.2023 19:50)
- Не очень представляю себе систему где скажем 10 параллельных задач
без остановки что то делают и не обмениваются информацией. С
прерываниями был просто пример. Если принять что нет прерываний то
и так механизмы предоставляемые фреертос очень упрощают жизнь и при
этом не перегружают систему на переключение контекста. Конечно
зависит от того как написана программа. Если в лоб переносить
программу то результат может быть не очень. - framer(29.10.2023 19:26)
- То, что Вы сказали, это прекрасно. Но смогу ли я при столь
блестящих фичах отжать у этих фичей 50% на что-то полезное? И это,
прерывания в ОСРВ не нужны. Представляете? - st256(29.10.2023 19:14)
- Реально. Вопрос в частоте смены контекстов. Если завести прерывания
1 МГц, то они сожрут все. 10 КГц малозаметно - Evgeny_CD(29.10.2023 18:57)
- Спасибо. - st256(29.10.2023 19:03)