Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Сетевая ОС реального времени QNX




Операционная система QNX является мощной операционной системой, позво­ляющей проектировать сложные программные системы, работающие в реальном времени как на одном-единственном компьютере, так и в локальной вычисли­тельной сети. Встроенные средства операционной системы QNX обеспечивают поддержку многозадачного режима на одном компьютере и взаимодействие параллельно выполняемых задач на разных компьютерах, работающих в среде локальной вычислительной сети. Основным языком программирования в сис­теме является язык С. Основная операционная среда соответствует стандартам POSIX-интерфейса. Это позволяет с небольшими доработками перенести необ­ходимое накопленное программное обеспечение в среду операционной системы QNX для организации их работы в среде распределенной обработки.

ОС QNX является сетевой, мультизадачной, многопользовательской (многотер­минальной) и масштабируемой. С точки зрения пользовательского интерфейса и API она очень похожа на UNIX. Она была разработана канадской фирмой QNX Software Systems Limited в 1989 году по заказу Мини­стерства обороны США. Причем эта система построена на совершенно других архитектурных принципах, отличных от принципов, использованных при созда­нии ОС UNIX.

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

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

2. Масштабируемость и эффективность, достигаемые оптимальным использо­ванием ресурсов и означающие ее применимость для встроенных (embedded) систем.

3. Расширяемость и надежность одновременно, поскольку написанный вами драй­вер не нужно компилировать в ядро, рискуя вызвать нестабильность системы.

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

5. Компактная графическая подсистема Photon, построенная на тех же принци­пах модульности, что и сама ОС, позволяет получить полнофункциональный графический интерфейс пользователя

Микроядро имеет объем в несколько десятков килобайт (в одной из версий – 10 Кбайт, в другой – менее 32 Кбайт), т.е. это одно из самых маленьких ядер среди всех существующих операционных систем. В этом объеме помещаются:

механизм передачи сообщений между процессами (IPC);

редиректор прерываний;

блок планирования выполнения задач;

сетевой интерфейс для перенаправления сообщений (менеджер Net).

В системе реализована концепция связи между зада­чами на основе сообщений, посылаемых от одной задачи к другой, причем задачи эти могут находиться как на одном и том же компьютере, так и на удаленных, но связанных локальной вычислительной сетью. Механизм передачи межпроцессных сообщений занимается пересылкой сообще­ний между процессами и является одной из важнейших частей операционной системы, так как все общение между процессами, в том числе и системными, происходит через сообщения. Сообщение в QNX – это последовательность бай­тов произвольной длины (0-65535 байтов) произвольного формата. Протокол обмена сообщениями выглядит таким образом. Например, задача блокируется для ожидания сообщения. Другая же задача посылает первой сообщение и при этом блокируется сама, ожидая ответа. Первая задача разблокируется, обрабаты­вает сообщение и отвечает, разблокируя при этом вторую задачу.

Определены в QNX еще и два дополнительных метода передачи сообщений – метод представителей (Proxy) и метод сигналов (Signal).

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

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

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

Блок планирования выполнения задач (диспетчер задач) занимается обеспечени­ем многозадачности. Диспетчер выбирает процесс для запуска среди неблокированных процессов в порядке значений их приоритетов, которые располагаются в диапазоне от 0 (наименьший) до 31 (наибольший). Обслуживание каждого из процессов зависит от метода диспетчеризации, с которым он работает (уровень приоритета и метод диспетчеризации могут динамически меняться во время работы). В QNX существуют три метода диспетчеризации: FIFO, round-robin и адаптивный, который является наиболее используемым.

Процесс, работающий с адаптивным методом, в QNX ведет себя следующим об­разом:

• Когда процесс полностью использовал выделенный ему квант времени, его приоритет снижается на 1, если в системе есть процессы с тем же уровнем приоритета, готовые к исполнению.

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

Если процесс блокируется, ему возвращается оригинальное значение приоритета.

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







Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 941 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

2484 - | 2178 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.