QNX

Автор: Пользователь скрыл имя, 10 Апреля 2012 в 00:32, реферат

Краткое описание

QNX (пpоизноcитcя как "queue nicks") - это *nix-подобная, POSIX-совместимая, многопользовательская, многопоточная, сетевая, мyльтизадачная, микроядеpная, иcпользyющая механизм передачи сообщений операционная система реального времени с возможностью встраивания, легко масштабируемая.
Кроме того, система QNX обладает большой гибкостью. Разработчики могут легко адаптировать ее под требования своих приложений. Настройка системы QNX может быть выполнена от минимальной (ядро и несколько небольших модулей) до полной сетевой конфигурации (обслуживание сотен пользователей), позволяя использовать в каждом конкретном случае только те ресурсы, которые необходимы.

Оглавление

Введение
1. Общие характеристики QNX
2. Ядро ОС QNX
3. Управление процессами
4. Особенности файловой системы
5.Область применения
Заключение
Литература

Файлы: 1 файл

QNX готовый.docx

— 89.08 Кб (Скачать)

Министерство  образования и науки Украины

Таврический национальный университет им. В.И. Вернадского

Физический  факультет

Кафедра компьютерной инженерии 
 
 
 
 

QNX

(реферат  по дисциплине «Операционные  системы») 
 
 
 
 

                Выполнил:

                студент 3 курса, группа КСС 322,

                направления подготовки 6.050102 «Компьютерная инженерия»

                Суздал  Дмитрий Эдуардович 
                 
                 
                 
                 
                 

Симферополь 2010

Содержание 

Введение

1. Общие характеристики QNX

2. Ядро ОС QNX

3. Управление процессами

4. Особенности файловой системы

5.Область  применения

Заключение

Литература 

 

Введение 

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

    -Системы пакетной обработки;

    -Системы с разделением времени;

     -Системы  реального времени;

В данном реферате пойдёт речь об операционной системе, которая относится к системам реального времени. То есть система, в которой результат зависит не только от пpавильноcти вычислений, но и от времени, за которое будет получен результат вычислений. Предметом нашего разговора пойдет ОС QNX.

     QNX изначально расшифровывалось как  QuickUnix, но фирме QNX Software Systems Ltd пришлось отказаться от этого названия из-за прав на торговую марку UNIX фирмы AT&T. Создателем QNX является известная канадская фирма QSSL - QNX Software Systems, Ltd. (ранее Quantum Software Systems Ltd.), вот уже более 20 лет лидирующая на рынке встраиваемых ОС реального времени.

     Одним из плюсов является то, что QNX бесплатная операционная система, если не использовать ее в коммерческих целях. Исходники системы открыты лишь в необходимом для разработчика количестве. Так например "сердце" системы - ядро и основные менеджеры закрыты, чтобы сохранить "целостность" системы. Открыты драйвера устройств и некоторые графические приложения. Далее в реферате более детально рассмотрим архитектуру QNX. 
 

 

1. Общие характеристики QNX

     QNX (пpоизноcитcя как "queue nicks") - это  *nix-подобная, POSIX-совместимая, многопользовательская,  многопоточная, сетевая, мyльтизадачная, микроядеpная, иcпользyющая механизм передачи сообщений операционная система реального времени с возможностью встраивания, легко масштабируемая.

     Кроме того, система QNX обладает большой гибкостью. Разработчики могут легко адаптировать ее под требования своих приложений. Настройка системы QNX может быть выполнена от минимальной (ядро и  несколько небольших модулей)  до полной сетевой конфигурации (обслуживание сотен пользователей), позволяя использовать в каждом конкретном случае только те ресурсы, которые необходимы.

     Система реального времени - та система, в которой pезyльтат зависит не только от правильноcти вычислений, но и от времени, за которое будет получен pезyльтат вычислений. Если временные ограничения не выполняются, считается, что случился сбой в системе.

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

Версии  QNX:

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

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

     В QNX 6 используется GUI Photon 2.0, разделяемые библиотеки, расширена cовмеcтимоcть c Linux. Многие программы можно свободно переносить из одной системы в другую и обратно.

     Реализована поддеpжка мyльтипpоцеccоpных аpхитектyp, пpичем без какого-либо изменения  пpогpамм, еcли только они пpоектиpовалиcь c опpеделенными огpаничениями, cвязанными c одновpеменным выполнением неcкольких  нитей одного пpоцеccа на pазных пpоцеccоpах.

     В дистрибутив QNX версии 4.24 входит сам QNX, Watcom C/C++ 10.6, поддержка TCP/IP, графический интерфейс(GUI) Photon 1.12, средство для разработки встроенных приложений Embedded Kit, программа для связи из Windows с QNX+Photon по модему или по IP. Дополнительно существуют еще 2 GUI для QNX: QNX Window и X Window; QNX Window в настоящее время не пользуется ни популярностью, ни любовью фирмы-разработчика; Photon - родной GUI для QNX.

     Итак, уникальная эффективность, модульность и простота системы QNX определяется:

  • архитектурой ядра;
  • взаимодействием между процессами посредством сообщений.

2.Ядро ОС QNX

На рис 1 показана архитектура QNX   [1].

     Микроядро QNX имеет минимальный размер (всего 8 Кбайт), и в нем сосредоточены все операции, выполняемые в режиме ядра. Ядро не имеет процессов, его модули всегда выполняются в контексте процесса, их вызвавшего. Микроядро QNX отвечает за выполнение следующих функций:

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

     Все эти функции аппаратно-зависимые  и требуют высокой эффективности  в реализации. Другие функции ОС обеспечиваются системными процессами-менеджерами, которые, однако, выполняются в пользовательском режиме и с точки зрения микроядра  ничем не отличаются от процессов  пользователей. Типичные конфигурации ОС QNX включают в себя следующие системные процессы:

  • менеджер процессов (Proc);
  • менеджер файловой системы (Fsys);
  • менеджер устройств (Dev);
  • сетевой менеджер (Net).

3. Управление процессами

     Порождение  и планирование процессов обеспечивается менеджером процессов совместно  с планировщиком в микроядре. Менеджер процессов выполняет порождение новых процессов, загрузку и завершение процессов. Для создания процессов  имеются системные вызовы fork() и exec(), традиционные для Unix, а также spawn() - создание процесса-потомка с выполнением в нем новой программы.

QNX различает процессы, находящиеся в следующих состояниях:

  • готовые ( среди них - и активный процесс);
  • ожидающие (6 подвидов - в зависимости от причин ожидания)
  • мертвые (уже завершившиеся, но не передавшие информации о своем завершении).

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

FCFS;

RR;

динамическое  изменение приоритета.

     В последнем случае изменение приоритета производится по таким правилам:

если активный процесс полностью исчерпал квант  времени и есть еще процессы с  таким же приоритетом, приоритет  активного процесса уменьшается  на 1;

если процесс  пробыл в очереди готовых процессов, не получая обслуживания на процессоре, 1 сек, его приоритет увеличивается  на 1.

Всего в системе  имеется 32 градации приоритетов.

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

   Внешнее событие вызывает прерывание. Для  обеспечения высокой реактивности прерывание должно обрабатываться немедленно. Но обработка прерывания может быть отложена по следующим причинам:

  • выполняется обработка прерывания с более высоким приоритетом;
  • выполняется нереентерабельный код микроядра (при этом обработка прерывания запрещается).

Если первый вид задержек является объективным  и оправданным, то второй является нежелательным. В QNX модули микроядра тщательно оптимизированы с целью минимизации размера участков нереентерабельного кода. В результате модули микроядра также являются прерываемыми почти в любом месте. Участки кода с запрещенными прерываниями составляют в среднем всего 9 команд на входе в модуль микроядра и 14 команд - на выходе из модуля.

4.Особенности  файловой системы.

     Администратор файловой системы (Fsys) позволяет стандартным  образом организовать хранение и  получение доступа к данным дисковых подсистем. Администратор Fsys отвечает за обработку всех запросов на открытие, закрытие, чтение и запись файлов.

     В системе QNX под файлом понимается объект, над которым может быть выполнена  либо операция записи, либо операция чтения, либо обе эти операции. В QNX имеется  шесть типов файлов, пять из которых  поддерживает администратор Fsys:

  • регулярные файлы - содержат последовательность байтов, доступ к которым произволен, и которые не имеют заранее определенной внутренней структуры;
  • каталоги - содержат информацию, необходимую для определения местонахождения регулярных файлов; кроме того, содержат информацию о статусе и атрибутах каждого регулярного файла;
  • символические связи - содержат составное имя файла или каталога, к которым требуется обеспечить доступ, вместо файла символической связи. Эти файлы часто используются для обеспечения доступа разными путями к одному и тому же файлу;
  • программные каналы (pipe) и простые очереди (FIFO) - служат каналами ввода/вывода между взаимодействующими процессами;
  • блок-ориентированные - описывают устройства, такие как накопители на дисках,
  • специальные файлы - накопители на магнитной ленте, и разделы диска. Доступ к этим файлам организован таким образом, что технические характеристики устройств "скрыты" от использующих их приложений.

   Несколько ключевых компонентов, находящихся  в начале каждого раздела QNX, составляют основу файловой системы:

  • блок загрузчика;
  • корневой блок;
  • битовая карта;
  • корневой каталог.

На рис 2 представлено структурирование диска  QNX на физическом уровне [2]

     Блок  загрузчика – это первый физический блок раздела диска. Этот блок содержит программный код, который загружается и затем выполняется базовой системой ввода/вывода (BIOS) компьютера, при загрузке операционной системы из раздела.

Если  диск не разбит на разделы (например, в  случае гибкого диска), то этот блок является первым физическим блоком диска.

     Корневой  блок имеет структуру стандартного каталога. Он содержит служебную информацию для следующих четырех специальных  файлов:

Информация о работе QNX