Давайте перейдем от общих рассуждений к более конкретным вещам. Как я уже писал, я портировал scmRTOS на 386ex в protected mode. Сама scmRTOS чрезвычайно простая и компактная система, соответственно обладает малыми накладными расходами на обеспечение многозадачности. Собственно task_switcher я вообще написал на ассемблере, т.е. короче и быстрее некуда. Чтобы обеспечить одновременную поддержку многозадачности и системы прерываний переключатель задач сделан по типу uCOS’а. Понятное дело, что iret в protected mode не слишком быстро работает, но тут уж ничего не поделаешь. Сухой остаток. В реальной системе на 386ex 25 MHz на переключение задач у меня уходило порядка 110 мксек (крутится две задачи, которые друг другу передают управление по event’у). Думаю, это и есть, во многом, ответ на вопрос – нужна ли RTOS или можно без нее. Если хватает быстродействия, то с RTOS как бы все элегантнее.
|