|
RTOS с единым стеком, Ищу аналог RTX166 Tiny |
|
|
|
 |
Ответов
|
Mar 28 2010, 19:58
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(zltigo @ Mar 28 2010, 18:04)  Это не фича, это обманка, ибо "переключения задач" собственно быть не может  . Со стеком при прерывании задачи в произвольном месте все очень просто - либо он нужен такого размера каждой из задач, либо нет. Посему просто надо четко представлять необходимые размеры стеков для вытесняющих задач и комбинировать их с кооперативными задачами имеющими по определению общий стек. Что такое "переключение задач" и почему его "быть не может" спорить не стану. Одно знаю точно: многопотоковость имела место. Да и не в этом вопрос. Переформулирую: какие есть RTOS (или как их там, прошу к терминам не предираться), в которых не выделяется отдельный стек для каждой задачи, а используется общий? С целью экономии памяти, естественно. Спасибо alcosar за ссылку про SST. На что-то похожее натыкался, когда читал про smx RTOS и One-Shot Tasks. Я понимаю, что единый стек требует жертв. Например, в RTX166 Tiny нельзя использовать указатели на локальные переменные, так как стек "двигается" при переключении контекста. Видел также Salvo RTOS, где ограничения ещё более строгие, но подкупает крайняя нетребовательность к объёму памяти. Все эти подходы имеют право на жизнь в зависимости от задачи. Я просто хочу понять, какие бывают варианты.
|
|
|
|
|
Mar 28 2010, 20:35
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(scifi @ Mar 28 2010, 22:58)  Я понимаю, что единый стек требует жертв. Слишком большие жертвы  . И главное зачем? От фонаря с явным запасом выбрать один стек и при этом никак не решить проблему правильного выбора размера стека? Надо решать проблему оптимального выбора стека для задач и тогда сумма стеков по крайней мере не будет резко отличаться от тяжко прогнозируемого "объединенного" стека и при этом не иметь ограничений. Цитата(scifi @ Mar 28 2010, 22:58)  Видел также Salvo RTOS, где ограничения ещё более строгие, но подкупает крайняя нетребовательность к объёму памяти. Вот и используйте, как уже писал, там где возможно и кооперативные задачи, как у Salvo. Сочетайте ОБА подхода,а не сводите все к примитиву в угоду идее бездумной экономии стека.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
scifi RTOS с единым стеком Mar 28 2010, 08:55 alcosar sst
http://state-machine.com/ Mar 28 2010, 13:33    zltigo Цитата(scifi @ Mar 28 2010, 23:55) Если н... Mar 28 2010, 21:41     dch вообщето отдельный стэк это победа эмбедеров, напи... Mar 29 2010, 05:13 scifi Спасибо. Что-то я не сразу сообразил, что FreeRTOS... Mar 29 2010, 05:19 scifi Оказывается, вот что мне нужно было:
Coroutines i... Mar 29 2010, 10:09 ReAl Цитата(scifi @ Mar 29 2010, 12:09) Оказыв... Mar 29 2010, 10:53  scifi Что-то у Вас много зачёркнуто. Нынче компьютеры в ... Mar 29 2010, 18:19
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|