реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ecos, проблема с шедуллером
katarsis
сообщение Jun 10 2008, 15:05
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 116
Регистрация: 14-05-05
Из: snz->ekb->msk.
Пользователь №: 5 026



Есть проблема, понятное дело для телепатов, подругому никак, но может кто встречался с проблемой.
не зависимо от дисциплины обслуживания (mlqueue, bitmap), шедуллер работает только с потоком максимального приоритета. Т.е.
1. (mlqueue) если я делаю 3 потока приоритета скажем 6 - все 3 потока будет обрабатыватьсяпо очереди, а если я делаю 667 или 678, то обрабатывается только поток приоритета 6.
2. (bitmap) делаю 3 потока 678 - опять та же картина, обрабатывается поток 6ого приоритета.
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Jun 10 2008, 19:39
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Думаю, приоритетные потоки необходимо периодически в sleep загонять.
Go to the top of the page
 
+Quote Post
axle
сообщение Jun 11 2008, 03:30
Сообщение #3


Частый гость
**

Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167



В чем собственно вопрос? Все правильно работает.
Go to the top of the page
 
+Quote Post
katarsis
сообщение Jun 12 2008, 08:52
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 116
Регистрация: 14-05-05
Из: snz->ekb->msk.
Пользователь №: 5 026



да нет уже вопросов, скажем так
для меня стало легкой неодиданностью чтообработка приоритета меньшего уровня будет проходиьт только вр время cyg_thread_delay более высокого.
Go to the top of the page
 
+Quote Post
Quasar
сообщение Jul 10 2009, 18:58
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата(Andrew2000)
Думаю, приоритетные потоки необходимо периодически в sleep загонять.

Цитата(axle)
В чем собственно вопрос? Все правильно работает.


Есть eCos 3.0 с TCP/IP стеком, есть поток работающий с консолью, он получает строчки с терминала, как-то там их обрабатывает и шлет в консоль ответ, получает он эти строчки fgets()'ом. Когда поток входит в fgets контекст перестает переключаться, железка не пингуется... Почему так? Во FreeRTOS вне зависимости от приоритетов такого не было, во FreeRTOS задача блокировалась и просыпалась лишь тогда когда приходил очередной символ, здесь при ожидании очередного символа все тупо останавливается. Если запустить поток, не вызывающий fgets, контекст нормально переключается.

Сообщение отредактировал Quasar - Jul 10 2009, 18:59
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 06:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016