Что такое функционирование в «Реальном масштабе времени»


§ 3. Операционная система QNX


Download 1.86 Mb.
Pdf ko'rish
bet29/72
Sana19.04.2023
Hajmi1.86 Mb.
#1362511
TuriУчебное пособие
1   ...   25   26   27   28   29   30   31   32   ...   72
Bog'liq
Луканов А.С. Системы реального времени 2020

§
3. Операционная система QNX 
В последнее время система QNX быстро развивалась, 
превращаясь из узкоспециализированной ОС для систем реального 
времени в более-менее универсальную систему [1,2]. Однако ее 
разработчики отказались от попыток "добавить еще одну функцию" 
в QNX, поскольку этот путь ведет в тупик.
QNX 
относится к категории Unix-подобных систем, несмотря 
на имеющиеся фундаментальные различия. Поэтому лучший 
способ понять особенности каждой системы – сравнить их.


66 
С точки зрения пользовательского интерфейса и API эта ОС 
очень похожа на Unix. Если вы знакомы с Unix на уровне 
пользователя, то, вероятно, сможете работать с QNX без проблем – 
в ней присутствует практически весь набор стандартных утилит и 
сохраняется большая часть семантики. Конечно, есть и X Window
равно как и TCP/IP. Если вы программист, знающий Unix, то для вас 
не составит большого труда перенести собственные или GNU/Free-
приложения в QNX. Например, Apache и Mosaic хорошо 
демонстрируют степень совместимости API.
Однако QNX – это не версия Unix. Она была разработана с 
нуля и построена на совершенно других архитектурных принципах, 
но с учетом группы стандартов POSIX, которые возникли в 
результате обобщения существующей практики в различных 
версиях системы Unix. Разработка ведется канадской фирмой QNX 
Software Systems Limited 
(далее – QSSL).
QNX – 
это первая коммерческая ОС, построенная на 
принципах микроядра и обмена сообщениями. Система 
реализована 
в 
виде 
совокупности 
независимых 
(но 
взаимодействующих через обмен сообщениями) процессов 
различного уровня (менеджеры и драйверы), каждый из которых 
реализует определенный вид сервиса. Эти идеи обеспечили ряд 
важнейших преимуществ. 
Предсказуемость, означающую ее применимость к задачам 
жесткого реального времени. Ни одна версия Unix не может достичь 
подобного качества, поскольку нереентрабельный код ядра 
слишком велик. Любой системный вызов в Unix может привести к 
непредсказуемой задержке. То же самое относится к Windows NT
где реальное время заканчивается между ISR (первичный 
обработчик прерывания) и DPC (вызов отложенной процедуры).
Масштабируемость и эффективность, достигаемую 
оптимальным использованием ресурсов и означающую ее 
применимость для встроенных (embedded) систем. В каталоге /dev 
нет огромной кучи файлов, соответствующих ненужным 
драйверам. Драйверы и менеджеры можно запускать просто из 


67 
командной строки. И удалять (кроме журналируемых файловых 
систем) динамически. Можно иметь только тот сервис или те 
модули, которые реально нужны, причем это не требует серьезных 
усилий и не порождает проблемы.
Расширяемость и надежность одновременно, поскольку 
написанный вами драйвер не нужно компилировать в ядро, рискуя 
вызвать нестабильность системы. Менеджеры ресурсов (сервис 
логического уровня) работают в кольце 3, при этом можно 
добавлять свои, не опасаясь за систему. Драйверы работают в 
кольце 1 и могут вызвать проблемы, но не фатального характера. 
Кроме того, их достаточно просто писать и отлаживать. Например, 
постоянная головная боль разработчиков драйверов для Linux – 
получение физически непрерывного блока памяти для DMA-
устройств – устраняется просто и элегантно, через функцию 

Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling