Когда программисты говорят об операционных системах реального времени, они часто упоминают особенности, которые имеют отношение к управлению несколькими процессами или темы: мьютексы, семафоры и межпроцессного (или interthread) связи и т.д.
Однако истинное определение состоит в том, что система должна гарантировать, что некоторые заданные операции всегда будут выполняться в течение известного, детерминированного времени (т. Е. Времени в секундах, а не в относительных терминах). Ни Linux, ни Windows не являются действительно реальным временем. Компьютер Linux или Windows может быть настолько быстрым, что все, что вы хотите сделать, будет почти всегда происходить достаточно быстро - но нет гарантии, что он будет всегда быть в пределах максимального времени. Если вы создаете программную систему для управления медицинским устройством или огромным куском заводского оборудования, вам нужно остановить или запустить что-то в x-миллисекундах, а не «скоро» или «обычно достаточно быстро».
Теперь на практике для обеспечения этой гарантии в полезной нетривиальной системе часто требуется упреждающая многозадачность, несколько потоков и все функции, которые обычно упоминаются, поэтому вам будет трудно найти RTOS без них. Однако определяющая характеристика RTOS права в названии: вещи, как известно, происходят в реальном времени .
Что касается вашего конкретного вопроса, с веб-сайта ThreadX:
ThreadX is deteriminstic. A high priority thread starts responding to
an external event on the order of the time it takes to perform a
highly optimized ThreadX context switch.
- Boot time: 300 cycles
- Context switch time: <100 cycles
- Semaphore get: 30 cycles
См http://en.wikipedia.org/wiki/ThreadX –
Спасибо за указателем, однако, он говорит в вики: ** Как и большинство RTOS, ThreadX использует многозадачное ядро с упреждающим планированием, быстрым ответом на прерывания, управлением памятью, межпротокольной связью, взаимным исключением, уведомлением о событиях и функциями синхронизации потоков. **, который слишком неоднозначен, и некоторые из функций также могут быть найденных во многих ОС. Не могли бы вы поделиться более подробно? – Justin
Отвечая на ваш вопрос, Джастин требует много фона в низкоуровневой архитектуре и приложениях с многопоточной архитектурой. Например, ОС ThreadX имеет минимальный размер 2K (это правильно) ОЗУ, предоставляя все функции, необходимые для потоков на основе задач. Выполнение определенных задач в ThreadX по сравнению с Linux не просто быстрее, а в миллионы раз быстрее. Например, время загрузки измеряется в цикле процессора (требуется 300-400). Для Linux это число будет миллионами (или даже миллиардами).Прочтите http://rtos.com немного, чтобы узнать больше. –