Автор работы: Пользователь скрыл имя, 07 Июня 2013 в 11:25, реферат
Основное предназначение любой операционной системы - это рациональное управление ресурсами компьютера во время его работы. Все действия операционной системы по обеспечению успешного диалога с пользователем или пользователями сводятся к следующим простым действиям - управлению выполнением программ и работой служб, записи и чтению файлов с диска, обмену информацией по сети. Причем, все эти простые действия должны выполняться слаженно и не создавать конфликтных ситуаций при работе системы.
На данный момент существует большое количество операционных систем, которые классифицируют по особенностям реализации алгоритмов управления ресурсами компьютера, областям использования. Так, в зависимости от областей использования многозначные ОС подразделяются на три типа:
Введение
Основное предназначение
любой операционной системы - это
рациональное управление ресурсами
компьютера во время его работы.
Все действия операционной системы
по обеспечению успешного диалога
с пользователем или
На данный момент существует большое количество операционных систем, которые классифицируют по особенностям реализации алгоритмов управления ресурсами компьютера, областям использования. Так, в зависимости от областей использования многозначные ОС подразделяются на три типа:
- система пакетной обработки;
- система с разделением времени;
- система реального времени.
В данном реферате пойдет речь
об операционной системе, которая относится
к системам реального времени. То
есть система, в которой результат
зависит не только от правильности
вычислений, но и от времени, за которое
будет получен результат
QNX изначально расшифровывалась как QuickUnix, но фирме QNX Software Systems Ltd пришлось отказаться от этого названия из-за прав на торговую марку Unix фирмы AT&T. Создателем QNX является известная канадская фирма QSSL-QNX Software Systems, Ltd. (ранее Quantum Software Systems Ltd.), вот уже более 20 лет лидирующая на рынке встраиваемых ОС реального времени.
Одним из плюсов является то, что QNX бесплатная операционная система, если не использовать ее в коммерческих целях. Исходники системы открыты лишь в необходимом для разработчиков количестве. Так, например, «сердце» системы – ядро и основные менеджеры закрыты, чтобы сохранить «целостность» системы. Открыты драйвера устройств и некоторые графические приложения. Далее в реферате более детально рассмотрим QNX.
История создания QNX
В 1980 году студенты канадского Университета Ватерлоо Гордон Белл и Дэн Додж закончили изучение базового курса по разработке операционных систем, в ходе которого они создали основу ядра, способного работать в реальном времени. Разработчики были убеждены, что в их продукте была коммерческая потребность, и переехали в город Каната в провинции Онтарио (город высоких технологий, иногда это место называют северной Кремниевой долиной Канады) и основали компанию Quantum Software Systems. В 1982 году была выпущена первая версия QNX, работающая на платформе Intel 8088.
Одно из первых применений
QNX, получивших широкое распространение,
не относилось к встраиваемым системам
— она была выбрана для собственного
компьютерного проекта
В середине 1990-х в Quantum поняли, что на рынке быстро завоёвывает популярность POSIX (именно этот стандарт API операционных систем становился всё более и более популярным среди разработчиков приложений), и решили переписать ядро, чтобы оно было более совместимым на низком уровне. Так появилась QNX4. Она была доступна со встраиваемой графической подсистемой, названной Photon microGUI, и портированной под QNX версией X Window System. Перенесение программ в QNX4 из операционных систем, основанных на Unix, стало намного проще, также были убраны многие из «причуд» более ранних версий. Также, в начале 1990-х компания была переименована в QNX Software Systems (QSS), чтобы избежать путаницы с другими компаниями, в первую очередь с производителем жёстких дисков, имеющим такое же имя.
В конце 1990-х было решено создать операционную систему, соответствующую свежей редакции POSIX и в максимальной степени совместимую с NetBSD и Linux, в то же время сохранив предсказуемое поведение и микроядерную архитектуру. Результатом этих разработок стала QNX Neutrino, выпущенная в 2001 году. Эта версия поставляется вместе с QNX Momentics Tool Suite, интегрированной средой разработки (IDE), основанной на Eclipse, различными утилитами GNU и программным обеспечением, ориентированным на Интернет: веб-браузерами Voyager и Mozilla, а также веб-сервером. В отличие от предшествующих версий, работавших только в PC-совместимых архитектурах, QNX6 легко адаптируется практически к любой аппаратной конфигурации. Кроме того, особое внимание было уделено проработке архитектуры с тем, чтобы её можно было эффективно масштабировать: как «вверх» (добавляя новые сервисы и расширяя функциональность), так и «вниз» (урезая функциональность, чтобы «втиснуться» в ограниченные ресурсы). Иными словами, QNX6 можно установить там, где QNX4 не уместилась бы. Также, в QNX6 все драйверы были приведены к единой модели и все интерфейсы стали открытыми.
4 февраля 2004 года Государственная
техническая комиссия при
18 мая 2004 года в Государственный
реестр сертифицированных
27 октября 2004 года компания
QSS была куплена международной
корпорацией Harman, активно работающей
на рынке мультимедийных
После 2004 года интерес в мире как к QNX, так и к конкурирующим продуктам, начал угасать. QNX сохранила популярность в основном в Японии, Германии, России и, в последнее время, в Китае благодаря активному развитию рынка автомобильной электроники и интегрированных систем управления производством.
Осенью 2007 года компания QNX Software Systems приступила к поэтапному открытию исходного кода QNX Neutrino на условиях лицензии гибридного типа в рамках сообщества Foundry27. Эта лицензия позволяет энтузиастам бесплатно получать доступ не только к исходным текстам операционной системы, но и к инструментальным средствам. При этом для коммерческого использования QNX Neutrino по-прежнему необходимо приобретать соответствующие лицензии. Кроме того, лицензия QNX Neutrino прямо запрещает проведение сертификаций продуктов, производных от исходного кода QNX Neutrino, без письменного разрешения компании QSS.
Последняя версия достаточно
современна – она вышла в начале
2000-х годов. По сравнению с предшественницами
она предоставляет множество
новых возможностей: поддержку разделяемых
библиотек, поддержку многопроцессорности,
поддержку отличных от x86 аппаратных
архитектур, например, SH4, ARM, PowerPC, MIPS и
др. Серьезной переработке
В сентябре 2009 года на портале Foundry27 был создан проект, предназначенный для сопровождения QNX4 в публичной форме.
9 апреля 2010 года канадская компания Research In Motion, владеющая брендом BlackBerry, заключила соглашение о выкупе у компании Harman International подразделения, занимающегося разработкой QNX. В этот же день на сайте Foundry27, появилось объявление, что доступ к исходным кодам QNX для широкой общественности с этого момента ограничен.
27 сентября 2010 года на
конференции BlackBerry DEVCON-2010 был представлен
планшетный компьютер
Архитектура QNX
Итак, QNX — это операционная система реального времени для персональных компьютеров, позволяющая эффективно организовать распределенные вычисления. В системе реализована концепция связи между задачами на основе сообщений, посылаемых от одной задачи к другой, причем задачи эти могут решаться как на одном и том же компьютере, так и на разных, но связанных между собой локальной вычислительной сетью. Реальное время и концепция связи между процессами посредством сообщений оказывают решающее влияние и на разрабатываемое для операционной системы QNX программное обеспечение, и на программиста, стремящегося с максимальной выгодой использовать преимущества системы [ГОРДЕЕВ].
QNX – первая коммерческая ОСРВ, построенная на принципах микроядра и обмена сообщениями. Архитектура ОС QNX показана на рисунке 1.
Рисунок 1. Архитектура ОС QNX
Микроядро QNX имеет минимальный размер (всего 8 Кбайт), и в нем сосредоточены все операции, выполняемые в режиме ядра. Ядро не имеет процессов, его модули всегда выполняются в контексте процесса, их вызвавшего. Модули, сосредоточенные в микроядре, выполняют следующие основные функции:
- планирование и переключение процессов и управление реальной памятью (планировщик);
- первичную обработку прерываний и перенаправление их адресатам (редиректор прерываний);
- передача сообщений между процессами IPC (Inter Process Communication - взаимодействие между процессами);
- сетевые взаимодействия (сетевой интерфейс) [3].
Рассмотрим их более подробно.
Блок планирования выполнения задач обеспечивает многозадачность. В этом плане операционная система QNX предоставляет разработчику огромный простор для выбора той дисциплины выделения ресурсов процессора задаче, которая обеспечит наиболее подходящие условия для выполнения критически важных приложений, а обычным приложениям обеспечит такие условия, при которых они будут выполняться за разумное время, не мешая работе критически важных приложений.
К выполнению своих функций как диспетчера ядро приступает в следующих случаях:
- какой-либо процесс вышел из блокированного состояния;
- истек квант времени для процесса, владеющего центральным процессором;
- работающий процесс прерван каким-либо событием.
Диспетчер выбирает процесс
для запуска среди
В QNX существуют три метода диспетчеризации:
- очередь (First In First Out, FIFO) — раньше пришедший процесс раньше обслуживается;
- карусель (Round Robin, RR) — процессу выделяется определенный квант времени для работы, после чего процессор предоставляется следующему процессу;
- адаптивный метод (используется чаще других).
Метод FIFO наиболее близок к невытесняющей многозадачности. То есть процесс выполняется до тех пор, пока он не перейдет в состояние ожидания сообщения, в состояние ожидания ответа на сообщение или не отдаст управление ядру. При переходе в одно из таких состояний процесс помещается последним в очередь процессов с таким же уровнем приоритета, а управление передается процессу с наибольшим приоритетом.
В методе RR все происходит так же, как и в предыдущем, с той разницей, что период, в течение которого процесс может работать без перерыва, ограничивается неким квантом времени. Процесс, работающий в соответствии с адаптивным методом, ведет себя следующим образом:
- если процесс полностью использует выделенный ему квант времени, а в системе есть готовые к исполнению процессы с тем же уровнем приоритета, его приоритет снижается на 1;
- если процесс с пониженным приоритетом остается необслуженным в течение секунды, его приоритет увеличивается на 1;
- если процесс блокируется, ему возвращается исходное значение приоритета.
По умолчанию процессы запускаются в режиме адаптивной многозадачности. В этом же режиме работают все системные утилиты QNX. Процессы, работающие в разных режимах многозадачности, могут одновременно находиться в памяти и исполняться.
Важный элемент реализации многозадачности — приоритет процесса. Обычно приоритет процесса устанавливается при его запуске. Но есть дополнительная возможность, называемая вызываемым клиентом приоритетом. Как правило, она реализуется для серверных процессов (исполняющих запросы на какое-либо обслуживание). При этом приоритет процесса-сервера устанавливается только на время обработки запроса и становится равным приоритету процесса-клиента.
Редиректор прерываний является частью ядра и занимается перенаправлением аппаратных прерываний в связанные с ними процессы. Благодаря такому подходу возникает один побочный эффект — с аппаратной частью компьютера работает ядро, оно перенаправляет прерывания процессам — обработчикам прерываний.