- Прототреды это биг-луп вывернутый наизнанку. Или наоборот. То же
самое, что конечные автоматы им. Шалыто, switch-технология. Удобней
представлять в виде big loop всё-таки. Идея в том, что какой-то
"протопоток", "автомат", отдал управление обратно циклу и он
побежал вызывать остальные "протопотоки" или автоматы... fk0(4542 знаков, 11.06.2020 19:54, ссылка, ссылка)
- >наподобии планировщика libevent lloyd(89 знаков, 11.06.2020 21:15)
- Не соглашусь. В случае оптимальной реализации автомата он входит в
состояние ожидания продолжения работы, и делает только это. Кроме
того, никто не заставляет по одному кругу крутить все автоматы. - VLLV(11.06.2020 20:37)
- В состоянии ожидания он постоянно проверяет некоторую переменную.
Если переменных много, когда параллельных/независимых автоматов
много -- эти проверки оказываются чрезмерно длительными. Вложенные
КА (в терминологии switch-технологии Шалыто) отчасти спасают
ситуацию, но в целом проблема остаётся: сильно параллельные задачи
методом big loop, switch-технологие, с помощью protothreads --
эффективно не решаются. При том, что с ними элементарно справится
планировщик типовой RTOS. - fk0(11.06.2020 20:45)
- Вызов вложенных автоматов можно организовать с разной частотой,
соответсвующей необходимой скорости обработки. Это исключит тупую
проверку. Да, сильно параллельные ДОЛГОВРЕМЕННЫЕ задачи сложно
реализовать методом биглуп, но я за свою жизнь с этим столкнулся
только в одном проекте из десятков. А ресурсы нужно делить в каждом
втором. - VLLV(11.06.2020 21:27)
- А зачем, блядь он ее проверяет?! Пусть не проверяет, пусть выберет десяток,
случайным образом, будет быстро. Мужики, так нельзя. Если технически возможно аппаратное выявление изменения состояния входов автомата (АКА
прерывание), то это можно использовать, а если нет - можно только
то, что можно. Cкpипaч(222 знаков, 11.06.2020 20:52)
- Да, примерно об этом я и думаю. Что систему КА можно запускать параллельно, на пуле потоков, по выбирая готовые к запуску по мере наличия интересующих конкретные КА событий (это важный момент, т.к. планировщик избавляет от важной проблемы Big fk0(3286 знаков, 22.10.2019 11:16)
- Ровно наоборот. Конечные автоматы подразумевают ЯВНОЕ выделение всех возможных состояний программы (как множества состояний системы взаимосвязанных автоматов) и ЯВНОЕ определение событий ведущих к смене состояний, а так же ЯВНОЕ выделение действий fk0(2071 знаков, 21.10.2019 22:37)
- Смотря какая ОС. В основном ОС делятся по типу: бывают корпоративные ОС и любительские. fk0(13826 знаков, 20.03.2019 02:13)
- Это какое-то твоё определение. И оно не выполнимо, т.к. твои же задачи будут конкурировать и оттягивать на себя процессор, как ты максимальное время ограничишь??? Обычно под RTOS понимается многозадачная ОС в которой жёстко учитываются приоритеты fk0(3438 знаков, 18.05.2018 13:02)
- FreeRTOS вообще достоин смерти только за их naming convention. lloyd(339 знаков, 18.05.2018 21:26)
- Я же говорил, что все эти книжки про RTOS - для студентов и говнокодеров... RT, в переводе на русский = реальное время, которое, как известно, измеряется в секундах и производных от секунды величинах. Любые другие интерпретации не могут называться argus98(132 знаков, 18.05.2018 21:19)
- Есть устоявшаяся общепризнанная терминология. Определение RTOS можно взять на худой конец из википедии. С чего ты решил, что твое определение верное? - fk0(18.05.2018 22:54)
- Что ж, берём "худой конец из википедии" - "Система реального времени (СРВ) — это система, которая должна реагировать на события во внешней по отношению к системе среде или воздействовать на среду в рамках требуемых временных ограничений. argus98(811 знаков, 19.05.2018 17:17)
- Т.е. RTOS не RTOS если не указано время обработки неких "запросов" в секундах? Можно указать "не более получаса" и уже ОСРВ? Только боюсь, все эти времена пренебрежительно малы и определяются пользовательским кодом в случае возникновения fk0(98 знаков, 19.05.2018 17:30)
- Дело не во времени исполнения кода а в том что ОСРВ способна гарантировать что она не провафляет передачу управления задаче сверх определенных целевым программистом в рамках, указанных разработчиком ОСРВ. Для вытесняющих ОСРВ время исполнения ASDFS(146 знаков, 19.05.2018 18:08)
- Переведи на русский термин "провафляет". Каких ещё рамках? По-моему ты не понимаешь, о чём говоришь. От ОС практически мало что зависит. Вряд ли чем-то принципиально отличаются десятки существующих ОСРВ. Единственным существенным отличием я вижу fk0(970 знаков, 19.05.2018 20:12)
- От каждого компонента системы что то зависит. От оси зависит особенно много потому как если ось не может отобрать управление у задачи или гарантировать время исполнения в своих компонентах то это нихрена не осрв. Вот на линух нет бумажек в которых ASDFS(98 знаков, 20.05.2018 10:44)
- Цифры не являются принципиальным свойством. Они, как минимум, от процессора зависят, от драйверов (прерываний) и т.п. И "realtime" -- это же не количественная оценка, а качественная. Какие могут быть бумажки с цифрами, если они даны на одну fk0(2750 знаков, 20.05.2018 12:46 - 13:10)
- Ты по прежнему путаешь ОСРВ с системой на ее базе. ОСРВ может и должна иметь циферки от разрабов и бумажки от сертификации на предмет гарантированных времянок. Разумеется, эти циферки преобразуются в секунды только на конкретном ядре с конкретной ASDFS(907 знаков, 20.05.2018 13:47)
- A если говорить про количественные характеристики, то время исполнения каких-то абстрактных функций RTOS мало вообще интересно, его можно считать пренебрежительно малым. Интересны, наверное, ровно два параметра: fk0(1202 знаков, 20.05.2018 14:40 - 14:43)
- Где это сказано, что кто-то что-то кому-то должен? Это ты путаешь само понятие ОСРВ и её потенциальную сертификацию, которая вообще не тема разговора. От того, что ОСРВ не имеет сертификации, она не перестаёт таковой быть. И я утверждаю, что fk0(775 знаков, 20.05.2018 14:29)
- Вдогонку. Приходилось сталкиваться с некой ОС на базе VRTX и могу сравнить с Linux на том же ПО (сменился только слой адаптации к ОС). Linux гораздо реактивнее. Масса багов всплыла только потому, что переключение контекста в Linux может произойти fk0(1270 знаков, 20.05.2018 13:20)
- Очередь логична для RTOS, ведь приоритет задается для нити, а не для события. - LightElf(18.05.2018 13:44)