katarsis 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Есть проблема, понятное дело для телепатов, подругому никак, но может кто встречался с проблемой. не зависимо от дисциплины обслуживания (mlqueue, bitmap), шедуллер работает только с потоком максимального приоритета. Т.е. 1. (mlqueue) если я делаю 3 потока приоритета скажем 6 - все 3 потока будет обрабатыватьсяпо очереди, а если я делаю 667 или 678, то обрабатывается только поток приоритета 6. 2. (bitmap) делаю 3 потока 678 - опять та же картина, обрабатывается поток 6ого приоритета. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2000 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Думаю, приоритетные потоки необходимо периодически в sleep загонять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axle 0 11 июня, 2008 Опубликовано 11 июня, 2008 · Жалоба В чем собственно вопрос? Все правильно работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
katarsis 0 12 июня, 2008 Опубликовано 12 июня, 2008 · Жалоба да нет уже вопросов, скажем так для меня стало легкой неодиданностью чтообработка приоритета меньшего уровня будет проходиьт только вр время cyg_thread_delay более высокого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quasar 20 10 июля, 2009 Опубликовано 10 июля, 2009 (изменено) · Жалоба Думаю, приоритетные потоки необходимо периодически в sleep загонять. В чем собственно вопрос? Все правильно работает. Есть eCos 3.0 с TCP/IP стеком, есть поток работающий с консолью, он получает строчки с терминала, как-то там их обрабатывает и шлет в консоль ответ, получает он эти строчки fgets()'ом. Когда поток входит в fgets контекст перестает переключаться, железка не пингуется... Почему так? Во FreeRTOS вне зависимости от приоритетов такого не было, во FreeRTOS задача блокировалась и просыпалась лишь тогда когда приходил очередной символ, здесь при ожидании очередного символа все тупо останавливается. Если запустить поток, не вызывающий fgets, контекст нормально переключается. Изменено 10 июля, 2009 пользователем Quasar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться