Летом 1998 г. компания Real-Time Consult официально дала старт программе оценивания ОСРВ. Вначале была исследована ОС Windows NT и расширения реального времени для неё. Частью этой программы стал отчет об оценке продукта QNX 4.25, производства компании QNX Software Systems Ltd.
Введение
Летом 1998 г. компания Real-Time Consult официально дала старт программе оценивания ОСРВ. Вначале была исследована ОС Windows NT и расширения реального времени для неё. В настоящее время можно получить отчеты об оценке следующих продуктов:
RTX 4.2 от VenturCom, Inc.;
INtime 1.20 от Radisys Corporation Ltd.;
Hyperkernel 4.3 от Imagination Systems, Inc.;
VxWorks/x86 5.3.1 от WindRiver Systems Inc.;
pSOSystem/x86 2.2.6 от Integrated Systems Inc.;
QNX 4.25 от QNX Software Systems Ltd.
Эти отчеты по оценке и сравнению продуктов, отражающие информацию, важную для принятия решений, можно получить на нашем веб-сайте.
Архитектура
ОСРВ QNX 4.25 имеет клиент-серверную архитектуру, состоящую из небольшого микроядра, в котором реализованы только базовые службы и дополнительные взаимодействующие с микроядром процессы. Само по себе ядро не содержит планировщика внутри. Код исполняется только при возникновении вызовов ядра, аппаратных прерываний или обработки процессорных исключительных ситуаций.
QNX 4.25 является операционной системой, в основе которой лежит обмен сообщениями. Передача сообщений является фундаментальным средством межзадачного взаимодействия (IPC). Служба передачи сообщений основана на клиент-серверной модели: клиент (например, прикладной процесс) посылает сообщение серверу (например, диспетчеру устройства), и в ответ сервер отсылает результат по запросу.
У клиент-серверной архитектуры есть много преимуществ, одной из которых является устойчивость к нежелательным, но возможным воздействиям, или робастность. Каждая управляющая программа (за исключением администратора процессов) и каждый драйвер устройства работают в своем адресном пространстве, в результате получается структура надежной и отказоустойчивой системы. Платой за это является производительность: исполнение системных вызовов требует наличия нескольких контекстных переключателей (приводящими к издержкам, происходящим из-за работы механизма защиты памяти), что дает в итоге некоторое уменьшение производительности.
Благодаря своей архитектуре и сильной степени интеграции процессов передачи сообщений и сетевого обмена сообщениями, ОСРВ QNX классифицируется как полностью распределенная операционная система.
Задачи
QNX 4.25 является многопроцессорной системой. В самой QNX 4.25 отсутствуют потоки (threads), но они реализованы несколько необычным образом и существенно отличаются от потоков POSIX.
Потоки в QNX 4.25 ведут себя скорее как дочерние процессы, порожденные родительским процессом, чем как фактические потоки. Когда поток QNX создается некоторым процессом, то для него будет использоваться тот же сегмент кода и данных, как и для родительского процесса, что имеет место и в случае обычных потоков. Тем не менее, к некоторым специальным объектам, создаваемым родительским процессом, таким как таймеры и дескрипторы файлов, доступ со стороны потока невозможен.
Память
В ОСРВ QNX 4.25 для каждого процесса выделяется собственная виртуальная память, кодовый сегмент и сегмент данных и, соответственно, создается собственная локальная таблица дескрипторов (LDT). В процессорах семейства Intel виртуальная память поддерживается механизмом страничной организации (процессор работает в защищенном режиме).
У каждого процесса есть собственный сегмент кода и данных, поэтому при удалении процесса удаляются и эти сегменты. Следовательно, чрезвычайно важно использовать сегменты фиксированного размера. При использовании сегментов переменного размера пространство памяти оказалось бы фрагментированным из-за постоянного создания и удаления блоков памяти переменного размера.
