![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Общие сведения об операционной системе 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. Диаграмма последовательности После запуска сервера, он переходит в режим ожидания подключений клиентов. После подключения клиента, сервер создаёт новый поток, который проводит приём сообщений от клиента. После завершения процедуры информационного взаимодействия поток прекращает свою деятельность.
Рис.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; просмотров: 231; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.200.24 (0.008 с.) |