-
- Бу-га-га... Я как раз об этом: этот "кто-то" должен, как минимум, поместить событие в очередь, планировщик должен выполнить извлечь из очереди, провести "тупую проверку" кучи событий, запустить процессы. Накладные расходы на переключение Гyдвинволшебник(119 знак., 31.07.2013 13:58, ссылка)
- Вот эти накладные расходы, они меньше, чем тупая проверка условий в цикле. Потому, что они возникают только при возникновении события, а не существуют постоянно в каждом цикле. - fk0легенда(31.07.2013 14:02)
- Вот я и просил, чтобы ты подробнее разъебеснил, что есть "событие" применительно к железке с малыми ресурсами в твоей интерпретации. - Гyдвинволшебник(31.07.2013 14:22)
- Мы (!под свой круг задач!) реализовали так - в main крутится диспетчер (да, это big loop без всякого вытеснения, ибо не требуется), просматривающий приоритетные очереди. Источники событий - обработчики прерываний, в т.ч. и от таймера(ов). Источник Chum_A(348 знак., 31.07.2013 18:34)
- Цитата: "Теоретически диспетчер мог бы при пустых очередях скомандовать в sleep, но не пробовали за неактуальностью". Спасибо, отличная шутка про батареечные решения :о) - Cкpипaчпророк(31.07.2013 18:38)
- Именно так, похожим образом, и делается... - fk0легенда(31.07.2013 20:00)
- Ни секунды не сомневаюсь :-| Cкpипaчпророк(219 знак., 31.07.2013 20:50 - 20:54)
- Я же сказал, частный случай. Вот я включаю контактор (380В/100А), обмотка от 30В кушает ~300 мА, а таких (или чуть пожиже) десятка два и ещё всякого добра (например, ШИМ 30В/30А), ну и нафига мне экономить электроэнергию. - Chum_A(01.08.2013 10:56)
- Я сам использую big loop со sleep'ом... - fk0легенда(31.07.2013 21:24)
- Ни секунды не сомневаюсь :-| Cкpипaчпророк(219 знак., 31.07.2013 20:50 - 20:54)
- Именно так, похожим образом, и делается... - fk0легенда(31.07.2013 20:00)
- Цитата: "Теоретически диспетчер мог бы при пустых очередях скомандовать в sleep, но не пробовали за неактуальностью". Спасибо, отличная шутка про батареечные решения :о) - Cкpипaчпророк(31.07.2013 18:38)
- Какая разница, какая железка? - fk0легенда(31.07.2013 14:24)
- Ну-ну... - Гyдвинволшебник(31.07.2013 14:36)
- Нуну. Не надо рассказывать, мол контроллеры программируются вот так-то, а я дурак, пришёл из мира ПК, ассемблера не знаю. Я по крайней мере видел с двух сторон как оно и могу судить. - fk0легенда(31.07.2013 14:46)
- Ну-ну. Разведем пальцы веером, хвост павлином... Нах аргументировать. Если че, я так вообще ни сколько не программист. Хотелось конкретного примера - так сказать, для постижения... - Гyдвинволшебник(31.07.2013 14:54)
- Примера чего? Научись чётко формулировать мысли. Мои тезисы выше по треду следующие: 1) Big loop (protothreads) не эффективен, особенно для больших программ, ввиду большой вычислительной сложности бесконечного вычисления всех условий, RTOS и/или fk0легенда(466 знак., 31.07.2013 15:02)
- 1) не нужно, мля, отождествлять биглуп и прототридсы, и тогда не будет левых рассказок об неэффективности. 2) коронный зал у нас справа - Vit(31.07.2013 15:36)
- 1) таки это одно и то же. loop там есть тот самый. - fk0легенда(31.07.2013 15:53)
- Значит у кого-то таки одно и то же, только это обобщение ошибочно. Учитематчастьнах - Vit(31.07.2013 22:27)
- 1) таки это одно и то же. loop там есть тот самый. - fk0легенда(31.07.2013 15:53)
- 1) не нужно, мля, отождествлять биглуп и прототридсы, и тогда не будет левых рассказок об неэффективности. 2) коронный зал у нас справа - Vit(31.07.2013 15:36)
- Примера чего? Научись чётко формулировать мысли. Мои тезисы выше по треду следующие: 1) Big loop (protothreads) не эффективен, особенно для больших программ, ввиду большой вычислительной сложности бесконечного вычисления всех условий, RTOS и/или fk0легенда(466 знак., 31.07.2013 15:02)
- Ну-ну. Разведем пальцы веером, хвост павлином... Нах аргументировать. Если че, я так вообще ни сколько не программист. Хотелось конкретного примера - так сказать, для постижения... - Гyдвинволшебник(31.07.2013 14:54)
- Нуну. Не надо рассказывать, мол контроллеры программируются вот так-то, а я дурак, пришёл из мира ПК, ассемблера не знаю. Я по крайней мере видел с двух сторон как оно и могу судить. - fk0легенда(31.07.2013 14:46)
- Ну-ну... - Гyдвинволшебник(31.07.2013 14:36)
- Мы (!под свой круг задач!) реализовали так - в main крутится диспетчер (да, это big loop без всякого вытеснения, ибо не требуется), просматривающий приоритетные очереди. Источники событий - обработчики прерываний, в т.ч. и от таймера(ов). Источник Chum_A(348 знак., 31.07.2013 18:34)
- Вот я и просил, чтобы ты подробнее разъебеснил, что есть "событие" применительно к железке с малыми ресурсами в твоей интерпретации. - Гyдвинволшебник(31.07.2013 14:22)
- Вот эти накладные расходы, они меньше, чем тупая проверка условий в цикле. Потому, что они возникают только при возникновении события, а не существуют постоянно в каждом цикле. - fk0легенда(31.07.2013 14:02)
- Бу-га-га... Я как раз об этом: этот "кто-то" должен, как минимум, поместить событие в очередь, планировщик должен выполнить извлечь из очереди, провести "тупую проверку" кучи событий, запустить процессы. Накладные расходы на переключение Гyдвинволшебник(119 знак., 31.07.2013 13:58, ссылка)