2012-07-01 2 views
0

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

Благодаря ~

+0

См http://en.wikipedia.org/wiki/ThreadX –

+0

Спасибо за указателем, однако, он говорит в вики: ** Как и большинство RTOS, ThreadX использует многозадачное ядро ​​с упреждающим планированием, быстрым ответом на прерывания, управлением памятью, межпротокольной связью, взаимным исключением, уведомлением о событиях и функциями синхронизации потоков. **, который слишком неоднозначен, и некоторые из функций также могут быть найденных во многих ОС. Не могли бы вы поделиться более подробно? – Justin

+0

Отвечая на ваш вопрос, Джастин требует много фона в низкоуровневой архитектуре и приложениях с многопоточной архитектурой. Например, ОС ThreadX имеет минимальный размер 2K (это правильно) ОЗУ, предоставляя все функции, необходимые для потоков на основе задач. Выполнение определенных задач в ThreadX по сравнению с Linux не просто быстрее, а в миллионы раз быстрее. Например, время загрузки измеряется в цикле процессора (требуется 300-400). Для Linux это число будет миллионами (или даже миллиардами).Прочтите http://rtos.com немного, чтобы узнать больше. –

ответ

0

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

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

Например, если поток семафора (высокий приоритет) ожидает семафор, а поток 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=real+time+threadx

+0

Мне интересно, если бы приоритеты для потоков сделали ThreadX RTOS: общий Linux предоставляет разные приоритеты своим процессам, но мы не могли сказать, что Linux - это RTOS ... – Justin

2

Когда программисты говорят об операционных системах реального времени, они часто упоминают особенности, которые имеют отношение к управлению несколькими процессами или темы: мьютексы, семафоры и межпроцессного (или 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 

 Смежные вопросы

  • Нет связанных вопросов^_^