Какие аспекты ThreadX делают его ОС в реальном времени?

ThreadX считается ОСРВ. Я знаю общие определения и требования ОСРВ, однако кто-нибудь может помочь пролить свет на то, почему ThreadX можно назвать ОСРВ или какие функции ОС делают его работоспособным в реальном времени?

Благодаря ~

4 ответа

Когда программисты говорят об операционных системах реального времени, они часто упоминают функции, связанные с управлением несколькими процессами или потоками: мьютексы, семафоры, межпроцессное (или межпотоковое) взаимодействие и т. Д.

Однако истинное определение заключается в том, что система должна гарантировать, что некоторые заданные операции всегда будут выполняться в течение известного детерминированного времени (т. Е. Времени в секундах, а не в относительном выражении). Ни Linux, ни Windows не являются в реальном времени. Компьютер с Linux или Windows может быть настолько быстрым, что все, что вы хотите сделать, почти всегда происходит достаточно быстро, но нет никакой гарантии, что это будет всегда в течение максимального времени. Если вы создаете программную систему для управления медицинским устройством или огромным промышленным оборудованием, вам нужно остановить или запустить что-то за x-миллисекунд, а не "скоро" или "как правило, достаточно быстро".

Сейчас на практике, чтобы обеспечить эту гарантию в полезной, нетривиальной системе, часто требуется упреждающая многозадачность, несколько потоков и все обычно упоминаемые функции, поэтому вам будет сложно найти ОСРВ без них. Тем не менее, определяющая характеристика ОСРВ прямо в названии: известно, что события происходят в реальном времени.

Что касается вашего конкретного вопроса, с веб-сайта 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

Все это означает, что ваше время ответа является детерминированным. Это одна из самых важных вещей, которые вы хотите в ОСРВ.

В threadx ваши темы имеют приоритет. Операционная система управляется аппаратным таймером прерывания, и планировщик обеспечивает правильное планирование потоков в соответствии с их приоритетом.

Например, если поток A (с высоким приоритетом) ожидает семафора, а поток B (с низким приоритетом) работает, то, как только семафор станет доступным, поток B будет прерван, а поток A будет запущен.

Threadx имеет ряд других функций для оптимизации времени переключения контекста. Например, каждый поток имеет свой собственный стек.

Для получения более подробной информации вы должны получить это: http://www.amazon.com/Real-Time-Embedded-Multithreading-Using-ThreadX/dp/1578201349/ref=sr_1_2?s=books&ie=UTF8&qid=1390859108&sr=1-2&keywords= в реальном времени + + ThreadX

Не эксперт, но, когда вы накладываете временные ограничения на потоки / процессы приложения, это называется программным обеспечением реального времени.

В ОСРВ, если приходит поток с высоким приоритетом, поток с низким приоритетом будет приостановлен до завершения потока с высоким приоритетом (или перехода в состояние ожидания / приостановки). Поток с низким приоритетом никогда не получит время (временной интервал событий включен), пока какой-либо поток с высоким приоритетом не станет активным.

В случае того же приоритета потока, если включен временной интервал, каждый поток получит определенное количество времени.

Вы также должны проверить инверсию приоритета в случае RTOS.

ThreadX будет иметь одинаковое время отклика независимо от размера системы: если в системе один или несколько потоков, один или несколько семафоров и т. Д., Время отклика будет одинаковым. Все операции имеют постоянное время отклика. Время вытеснения потока ограничено и постоянно. Время реакции на прерывание ограничено и постоянно. Уровень возможностей, который предлагает ThreadX, иногда описывается в академической литературе как «жесткий режим реального времени».

Другие вопросы по тегам