Общие сведения об операционной системе QNX 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Общие сведения об операционной системе QNX



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

Основным языком программирования в системе является C. Основная операционная система соответствует стандарту POSIX. Это позволяет с небольшими доработками переносить ранее разработанное программное обеспечение в QNX для организации работы в среде распределённой обработки.

Операционная система QNX будучи сетевой и мульти задачной, в то же время является многопользовательской. Кроме того, она масштабируема. С точки зрения пользовательского интерфейса и интерфейса прикладного программирования она очень похожа на Unix, поскольку выполняет требования стандарта POSIX. Однако QNX – это не версия Unix. Она была разработана «с нуля» канадской фирмой QNX SoftwareSystemsLimited в 1989 году по заказу министерства обороны США, причём совершенно на иных архитектурных принципах, нежели использовались при создании Unix. За свою 15-летнюю историю она имеет сотни тысяч инсталляций во многих странах мира. Среди пользователей QNX значатся такие компании, как DuPont, EastmanKodak, GeneralMills, GeneralMotors, Motorola, Texaco. Представительства и дистрибьюторы фирмы существуют более чем в 60 странах мира [1].

QNX была первой коммерческой системой, построенной на принципах микроядра и обмена сообщениями. Система реализована в виде совокупности независимых (но взаимодействующих путём обмена сообщениями) процессов различного уровня (менеджеры и драйверы), каждый из которых реализует определённый вид услуг.

Версии QNX

§ QNX 2.x - это ОС, выпущенная фирмой QSSL в середине 80-х, в настоящее время практически не применяется.

§ QNX 4.2x - наиболее популярная до последнего времени ОС, она же наиболее распространена в России. С её помощью построено очень много встраиваемых систем, систем SCADA, она очень успешно применяется в решениях задач автоматизации и управления, там где необходима высокая надёжность. Эта система была разработана специально для "mission critical appliances" – то есть для применения в критических ситуациях, там где на другие операционные системы нельзя рассчитывать.

§ Neutrino - это новое поколение систем реального времени, построенных на идеях и архитектуре QNX. Real time Platform (RtP) – свободно распространяемый вариант QNX Neutrino, который можно свободно использовать в не коммерческих целях. То есть её можно бесплатно использовать для тестирования, апробирования идей, разработки freeware и для персонального применения [2].

Neutrino изначально задумывалась как операционная система для глубоко встраиваемых систем, всё делалось c тем расчётом, чтобы она могла грузиться откуда годно (хоть из постоянного запоминающего устройства), должна работать на большом разнообразии компьютерных архитектур. Поэтому изменена система загрузки. Теперь вместо отдельного ядра c основными процессами и скрипта sysinit всё заделано в один загружаемый модуль. Причём система получилась настолько гибкой, что даже можно обойтись без менеджера процессов, если они не нужны, оставив только одно микроядро. В RtP реализована загрузка через diskboot, добавлена система депозитариев. Следует отметить революционную концепцию нано ядра, размером всего в 32 Кб.

Операционная система реального времени (ОСРВ) QNX Neutrino предлагает проверенную десятилетиями модульную программную платформу, которая обеспечивает высокий уровень надёжности, производительности и компактности. Она легко адаптируется к нестандартного оборудования и встраивается в устройства с ограниченными ресурсами - и при этом она проста в использовании. Используя QNX, вы сможете не только эффективно решать поставленные перед вами задачи, но и получите существенный выигрыш как по удобству и скорости разработки, так и по простоте обслуживания и сопровождения ваших целевых приложений [3].

 

 


РОЗДЕЛ 2.
РОЗРАБОТКА АЛГОРИТМОВ ДЛЯ СИСТЕМ УПРАВЛЕНИЯ ДВИЖЕНИЕМ BIGDOG

Диаграмма последовательности

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

Рис.2 Диаграмма взаимодействия клиент - сервер

Алгоритм работы сервера

Работа алгоритма заключается в следующем:

Сначала создаются TCP−сокеты вызовом функции socket(). Потом происходит привязывание сокета к прослушиваемому порту вызовом функции bind(). Перед вызовом bind() нужно объявить структуру sockaddr_in, очистить её (при помощи memset()), затем sin_family (PF_INET или PF_INET6) и заполнить поля sin_port (прослушиваемый порт, указать в виде последовательности байтов).

Дальше производится подготовка сокета к прослушиванию в объект соединений при содействия вызова listen() и воспринимаются входящие соединения через вызов accept(). Это блокирует сокет до получения поступающего соединения, после чего отдаёт дескриптор сокета для принятого соединения. Начальный дескриптор остаётся прослушиваемым дескриптором, а accept() имеет возможность быть обусловлен вновь для данного сокета в любое время (пока он закрыт).

Соединение с удалённым хостом, которое может быть создано при помощи write() и read().Происходит приём сообщений.

Итоговое закрытие каждого открытого сокета, который больше не нужен, происходит при помощи close().

 

Рис.3. Блок - схема алгоритма работы приложения «сервер»



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 225; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.23.123 (0.005 с.)