Сетевая ОС реального времени QNX


Операционная система QNX является мощной операционной системой, позволяющей проектировать сложные программные системы, работающие в реальном времени как на одном-единственном компьютере, так и в локальной вычислительной сети. Встроенные средства операционной системы QNX обеспечивают поддержку многозадачного режима на одном компьютере и взаимодействие параллельно выполняемых задач на разных компьютерах, работающих в среде локальной вычислительной сети. Основным языком программирования в сис­теме является язык С. Основная операционная среда соответствует стандартам POSIX–интерфейса. Это позволяет с небольшими доработками перенести необ­ходимое накопленное программное обеспечение в среду операционной системы QNX для организации их работы в среде распределенной обработки.

ОС QNX является сетевой, мультизадачной, многопользовательской (многотер­минальной) и масштабируемой. С точки зрения пользовательского интерфейса и API она очень похожа на UNIX. Однако QNX – это не версия UNIX, хотя по­чему–то многие так считают. Она была разработана, что называется «с нуля», канадской фирмой QNX Software Systems Limited в 1989 году по заказу Министерства обороны США. Причём эта система построена на совершенно других архитектурных принципах, отличных от принципов, использованных при созда­нии ОС UNIX.

QNX была первой коммерческой ОС, построенной на принципах микроядра и обмена сообщениями. Система реализована в виде совокупности независи­мых (но взаимодействующих через обмен сообщениями) процессов различного уровня (менеджеры и драйверы), каждый из которых реализует определенный вид сервиса. Эти идеи позволили добиться нескольких важнейших преимуществ. Вот как они описаны на сайте, посвященном системе QNX [60].

¨ Предсказуемость, означающая её применимость к задачам жёсткого реально­го времени. QNX является операционной системой, которая дает полную гарантию в том, что процесс с наивысшим приоритетом начнет выполняться практически немедленно и что критическое событие (например, сигнал тре­воги) никогда не будет потеряно. Ни одна версия UNIX не может достичь подобного качества, поскольку нереентерабельный код ядра слишком велик. Любой системный вызов из обработчика прерывания в UNIX может привес­ти к непредсказуемой задержке (то же самое касается Windows NT, где реаль­ное время заканчивается между ISR и DPC).

¨ Масштабируемость и эффективность, достигаемые оптимальным использо­ванием ресурсов и означающие её применимость для встроенных (embedded) систем; вы не увидите в каталоге /dev огромной кучи файлов, соответствую­щих ненужным драйверам. Драйверы и менеджеры можно запускать и уда­лять (кроме файловой системы, что очевидно) динамически, просто из команд­ной строки. Вы можете иметь только тот сервис, который вам реально нужен, причем это не требует серьезных усилий и не порождает проблем.

¨ Расширяемость и надёжность одновременно, поскольку написанный вами драй­вер не нужно компилировать в ядро, рискуя вызвать нестабильность системы.

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

¨ Быстрый сетевой протокол FLEET1, прозрачный для обмена сообщениями, автоматически обеспечивающий отказоустойчивость, балансирование нагруз­ки и маршрутизацию между альтернативными путями доступа.

¨ Компактная графическая подсистема Photon, построенная на тех же принци­пах модульности, что и сама ОС, позволяет получить полнофункциональный GUI2 (расширенный Motif), работающий вместе с POSIX-совместимой ОС всего в 4Мбайт памяти, начиная с i80386 процессора.

Вспомним основные принципы, обязательная реализация которых позволят соз­давать ОСРВ (см. раздел «Требования, предъявляемые к ОС реального времени», глава 5). Первым обязательным требованием к архитектуре ОСРВ являет­ся многозадачность в истинном смысле этого слова. Очевидно, что варианты с псевдомногозадачностью (а точнее – не вытесняющая многозадачность) типа MS Windows 3.х или Novell NetWare неприемлемы, поскольку они допуска­ют возможность блокировки или даже полного развала системы одним непра­вильно работающим процессом. Для предотвращения блокировок ОСРВ должна использовать квантование времени (то есть вытесняющую многозадачность), что является достаточно легкой задачей. Вторая проблема (организация надёжных вычислений) может быть эффективно решена при полном использовании воз­можностей процессоров Intel 80386 и старше, что предполагает работу ОС в 32-разрядном режиме процессора. Для эффективного обслуживания прерываний ОС должна использовать алгоритм диспетчеризации, обеспечивающий вытес­няющее планирование, основанное на приоритетах. Наконец, крайне желательны эффективная поддержка сетевых коммуникаций и наличие развитых механизмов взаимодействия между процессами, поскольку реальные технологические систе­мы обычно управляются целым комплексом компьютеров и/или контроллеров. Весьма важно также, чтобы ОС поддерживала множественные потоки управле­ния (не только мультипрограммный, но и мультизадачный режимы), а также симметричную мультипроцессорность.

И, наконец, при соблюдении всех перечисленных условий ОС должна быть способна работать на ограниченных аппаратных ресурсах, поскольку одна из её ос­новных областей применения – это встроенные системы. К сожалению, данное условие обычно реализуется путём урезания стандартных сервисных средств.



Дата добавления: 2022-02-05; просмотров: 192;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.