-
- В QNX есть технология, гарантирующая загрузку процессора группой задач не более чем на хх %. Причём с вытеснением. - vvb(17.01.2011 06:41)
- Я таку хрень периодически делаю. ASDFS(284 знак., 14.01.2011 21:52)
- можно сделать используя OS-таймер в высокоприоритетной задаче X, которая вызывает suspend(A)-resume(B)-sleep(self)-suspend(b)-resume(A)-sleep и т.д. ну и сама в sleep - типа расширитель контекст-свича - ыыыы(14.01.2011 20:03, )
- не понял. A->B->A->C.. или A+B -> A+C -> A+В. Запущено ли одновременно более одной задачи? - abivan(14.01.2011 19:20)
- букву одну пропустил, исправил корневой пост. В итоге надо так ABACAD и по кругу. to Vit: можне меньше по времени, но никак не больше - MegaJohn(14.01.2011 16:58)
- а нужна ли там вообще РТОС? все жестко. напрашивается простой суперлуп или автомат. - Snaky(14.01.2011 17:02)
- Смотря что делает задача. Если задача B - это FS, а задача С - GUI, то без RTOS спорно очень. - Vladimir Ljaschko(14.01.2011 21:50)
- все-таки под вытесняющей как то читабельней код получается. Или нет ? Тот же бесконечный поллинг в вытеснящем просто while( !pin_rdy ); чем в автомате switch( state ) case e_pin_polling: if( !pin_rdy ) return; - MegaJohn(14.01.2011 17:12)
- while(!pin_rdy)yield(); - Vit(14.01.2011 18:16)
- а нужна ли там вообще РТОС? все жестко. напрашивается простой суперлуп или автомат. - Snaky(14.01.2011 17:02)
- Время вроде как только в плюс уходить может. Т.е., например, принимается, что 1 мс это не менее 987 мкс - Vit(14.01.2011 16:45)
- а почему тогда "вытесняющая"? это просто карусель ты описал - Snaky(14.01.2011 16:39)
- Нет, это не карусель. Это именно вытесняющая многозадачность с разными приоритетами процессов. - rezident(14.01.2011 16:47)
- и кто там кого вытесняет? как я понял каждая задача выполняется строго отведенный отрезок времени: не меньше (т.е. ее нельзя вытеснить) и не больше (надо отдать управление следующей). - Snaky(14.01.2011 16:57)
- нужно наоборот: "не больше чем t". Иначе следующая задача теряет актуальность - MegaJohn(14.01.2011 17:14)
- Все таки это карусель - Alex B.(14.01.2011 16:56)
- угу, то есть думаю так: нафиг эти прерывания, еще засядешь с обработкой где-нибудь неподетски. А так задачи следят за установкой соответсующих флагов, и обрабатывают. И по вышеизложенной схеме так распределяем задачи, что ничто нигде не потеряется. - MegaJohn(14.01.2011 16:56)
- N флагов позволяет кодировать 2^N состояний программы. Поэтому чреваты глюкодромом, который никогда не будет отлажен. Лучше использовать многозначные переменные состояний. - fk0(17.01.2011 11:33)
- а смысл задачам давать фиксированное время? koyodza(765 знак., 14.01.2011 20:10)
- +1. Бесконечный while со sleep в качестве первой команды. Постепенно пришел к тому что некоторые обработчики прерываний выродились в один reti (просто чтобы разбудить проц) Скрипач(110 знак., 14.01.2011 20:56 - 21:09)
- если пох потребление и есть некоторые фоновые вычисления, то sleep выкидываем, всё остальное остаётся koyodza(60 знак., 14.01.2011 21:16)
- На самом деле, ритм задает прерывание АЦП (0,25 мСек). А чуть снизить тепловыделения никогда не помешает :) - Скрипач(14.01.2011 21:34)
- ну это уже от задачи зависит koyodza(463 знак., 14.01.2011 21:43)
- На самом деле, ритм задает прерывание АЦП (0,25 мСек). А чуть снизить тепловыделения никогда не помешает :) - Скрипач(14.01.2011 21:34)
- если пох потребление и есть некоторые фоновые вычисления, то sleep выкидываем, всё остальное остаётся koyodza(60 знак., 14.01.2011 21:16)
- +1. Бесконечный while со sleep в качестве первой команды. Постепенно пришел к тому что некоторые обработчики прерываний выродились в один reti (просто чтобы разбудить проц) Скрипач(110 знак., 14.01.2011 20:56 - 21:09)
- и кто там кого вытесняет? как я понял каждая задача выполняется строго отведенный отрезок времени: не меньше (т.е. ее нельзя вытеснить) и не больше (надо отдать управление следующей). - Snaky(14.01.2011 16:57)
- Нет, это не карусель. Это именно вытесняющая многозадачность с разными приоритетами процессов. - rezident(14.01.2011 16:47)
- то есть возможность межевать задачи как хочешь, и жесткая регламентированность времянок выполнения. - MegaJohn(14.01.2011 16:35)