Ответ: интересно в чем же проявится сохранение? в дополнительных расходах памяти на RTOS и дополнительных расходах памяти на объединение RTOS и самих потоков? (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SOIC 14 ноября 2003 г. 19:57
В ответ на: Ерунда какая-то. отправлено Orvil 14 ноября 2003 г. 18:21

без RTOS:


main()
{
while(1) // пара ассемблерных инструкций
{
Thread1(); // одна ассемблерная инструкция
Thread2(); // одна ассемблерная инструкция
Thread3(); // одна ассемблерная инструкция
}
}

или


RTOS +
main()
{
InitRTOS();
...
}
Thread1()
{
X1();
SwitchRTOS();
X2();
}

и т.д.

где же экономия? куча КБ RTOS'а ради того чтобы не разбивать Thread1 на 2 самостоятельных участка
или 5 асмовых инструкций?

все эти идеи про кооперативную RTOS - это от лени хорошо подумать и сделать Thread1 так чтобы его можно было вызвать два раза (по разу на каждый кусок кода X1 и X2) или выделить X1 и X2 в отдельные thread'ы... причем вся эта лень выливается в лишние КБ памяти, необходимые для RTOS...

ну а если Thread выглядит так:

Thread()
{
while(1);
X1();
SwitchRTOS();
}

то это уже полная лажа, т.к. этот пример без особых усилий заменяется самым верхним примером без всяких RTOS'ов (в качестве Thread1 выступать будет X1 и т.д.)



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru