Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchbnoePosobieV14 - p2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.08 Mб
Скачать

6.2.1.Понятие об операционной системе qnx

Исходный вариант. Первая версия операционной системы QNX, разработанная канадской фирмой QNX Software Systems Limited (QSSL), появилась в начале 80-х годов и декларировалась как система «мягкого» реального времени. Пожалуй, это была первая коммерческая операционная система, основанная на концепции миниядра, объем которого в первоначальном варианте составлял 8 кб. В качестве аппаратной платформы было выбрано семейство компьютеров типа IBM PC. Эта операционная система может поддерживать сеть с числом компьютеров до 255 шт.

Необходимая для поддержки работы в реальном времени синхронизация процессов основывается на быстром механизме обмена сообщениями, представляющих собой последовательности длиной до 65535 байт. Обмен сообщений происходит в режиме «почтовый ящик». Каждая задача обозначена в соответствующей таблице, называемой сервером имен. В сетевой конфигурации имеются глобальные и локальные серверы имен. При этом пользователю через глобальный сервер имен доступны задачи на удаленных терминалах.

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

  • системы автоматизации технологических процессов;

  • системы управления и контроля;

  • банковские и биржевые системы;

  • системы для сложных автоматов, осуществляющих продажу.

Проект Neutrino [7, 13]. Как было уже отмечено, QNX первая коммерческая система РВ на основе миниядра, и это обстоятельство в своем классе обеспечивало ей преимущество над другими ОС. На этом фоне её недостатки, которые будут перечислены ниже, практически были незаметны. Однако, ужесточение требований к системам РВ и появление ОС, созданных на новой основе, привели к необходимости анализа этих недостатков и возможности их устранения.

Основные недостатки, которые следовало устранить в первую очередь, следующие:

  • недостаточная согласованность с требованиями стандарта POSIX к системам реального времени;

  • невозможность применения на встроенных системах с ресурсами памяти 64–512 кб;

  • невозможность применения в многопроцессорных системах.

Согласованность с POSIX, который практически был составлен на основе UNIX, не является обязательным. Однако, наличие полной согласованности: с одной стороны, расширяет область применения ОС; с другой стороны, дает возможность использования стандартных системных функций.

Второй недостаток для системы на основе миниядра выглядит неожиданным. Проблема заключается в том, что миниядро в прежнем проекте должно было работать в паре с менеджером процессов даже в случае, когда последний был не нужен. Это обстоятельство затрудняло использование QNS во встроенных системах по двум причинам:

  • для работы ядра с менеджером процессов требовалась память не менее 1 Мб;

  • необходимость дополнительной покупки менеджера процессов делала стоимость слишком высокой для встроенных систем.

Что касается третьего недостатка, то невозможность управления многопроцессорными системами является непозволительной «роскошью» для систем РВ, если они хотят сохранить в будущем свою конкурентоспособность.

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

Основная суть проекта Neutrino заключается в том, что негативные последствия увеличения объёма миниядра до 28 кб удалось устранить, выделив из него наноядро, обеспечивающее поддержку фундаментальных объектов микроядра которое в свою очередь поддерживает базовый сервис для пользовательских нитей и дополнительных системных модулей.

Возможности построений встроенных систем. Указанное структурирование ядра Neutrino, позволило не только улучшить функциональные и временные характеристики, но и уменьшить объём кода менеджера процессов с 80 кб до 20 кб, доведя тем самым стандартную минимальную конфигурацию до 48 кб, что уже вполне приемлемо для встроенных систем. Если менеджер процессов вообще не нужен, то у пользователя есть возможность довести объём минимальной конфигурации практически до объёма миниядра. Для этого ему нужно адекватно встроить собственные коды.

Поддержка многопроцессорных систем. ОС с новым ядром может обеспечивать работу многопроцессорной системы (SMP-симметричных мультипроцессорных архитектур), число процессоров в которой может достигать 40 шт. Это обстоятельство позволяет применять Neutrino для управления мощными серверами. По заявлению разработчиков при увеличении процессоров до 8 производительность системы увеличивается почти пропорционально. Кроме того, допускается ручное распределение задач между процессорами, что требует большей квалификации от пользователей, но позволяет равномерно загрузить процессоры и добиться на этой основе большей производительности

Соответствие стандарту POSIX. В отличие от базового варианта Neutrino поддерживает большую часть этого стандарта в области требований к миниядру система реального времени. Это касается, в том числе, поддержки нити управления. Прикладной программист может, например, выбрать один из имеющихся вариантов защиты процессов. В частности, в одном из вариантов защиты пользовательских нитей управления задача решается следующим образом:

  • нить процесса, находящегося в «замороженном» состоянии приобретает статус нити системного процесса и, следовательно, надежно защищена от других процессов;

  • нить работающего процесса имеет статус прикладного и, следовательно, имеет доступ к собственному контексту.

Область применения. Теоретически область применения Neutrino необычайно широка: от встроенных систем до мощных SMP (синхронных многопроцессорных)-серверов. Практически она зависит от выбора пользователей.

Дополнительные программные продукты. Для реализации графического интерфейса пользователя (GUI) в Neutrino применяется графическая подсистема Photon [20]. Это очень скромная по затратам ресурсов подсистема, которая тем не менее обеспечивает полноценный GUI. Фактически она может использоваться для всех разновидностей систем на основе Neutrino, включая встроенные системы.

Для быстрой разработки встроенных систем имеется Internet Applliance Toolkit (IAT).

Наиболее известным применением операционной системы реального времени QNX в России является система автоматизированного контроля и управления разводкой Троицкого моста через Неву в Санкт-Петербурге, реализованная ЗАО НПП «Промтрансавтоматика». Эта система эксплуатируется с апреля 2002 года. После реконструкции мост ни разу не выбился из графика разводки.

Дополнительные сведения по данной системе можно найти по адресу: http://www.qnx.ru/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]