Что делает VxWorks такой детерминированной и быстрой?

Когда-то давно я работал над VxWorks 5.5, и это был лучший опыт работы над лучшей в мире ОС реального времени. С тех пор у меня больше не было возможности поработать над ней. Но меня все время мучает вопрос: что делает ее такой быстрой и детерминированной?

Я не смог найти много ссылок на этот вопрос в Google.

Итак, я просто попытался подумать, что делает обычную ОС недетерминированной:

  1. Выделение/деаллокация памяти: Вики говорит, что RTOS используют блоки фиксированного размера, так что эти блоки могут быть непосредственно проиндексированы, но это вызовет внутреннюю фрагментацию, и я уверен, что это что-то совсем нежелательное для критически важных систем, где память уже ограничена.

  2. Пейджинг/сегментация:- Это как бы связано с пунктом 1

  3. Обработка прерываний:- Не уверен, как это реализовано в VxWorks, поскольку это то, с чем VxWorks справляется очень хорошо

  4. Переключение контекста:- Я полагаю, что в VxWorks 5. 5 все процессы выполнялись в адресном пространстве ядра, поэтому переключение контекста включало только сохранение значений регистров и ничего о PCB (блок управления процессом), но все же я не уверен на 100%

  5. Алгоритмы планирования процессов:- Если Windows реализует вытесняющее планирование (приоритетное/круговое), будет ли планирование процессов таким же быстрым, как в VxWorks? Я так не думаю. Итак, как VxWorks справляется с планированием?

Пожалуйста, поправьте мое понимание, если это необходимо.

9
задан Community 31 January 2012 в 11:02
поделиться