ОС реального времени QNX
Сетевая, многозадачная, многопользовательская, масштабированная ОС реального времени. В основном соответствует стандарту POSIX. Была разработана в 1989 году по заказу министерства обороны США. Первая коммерческая ОС, построенная на принципах микроядра и обмена сообщениями.
Особенности:
  1. Предсказуемость. Применяется для задач жёсткого реального времени;
  2. Масштабируемость и эффективность;
  3. Расширяемость и надёжность. Неправильно написанный драйвер не приведёт к разрушению системы;
  4. Использование сетевого протокола Fleet. Обеспечивает отказоустойчивость, позволяет производить балансирование нагрузки, маршрутизацию между каналами, прозрачность для обмена сообщениями. Распределённая среда обработки.
Архитектура QNX
Микроядро имеет размер несколько десятков Кб.
В нём организованы:
  1. Механизм передачи сообщений;
  2. Редиректор прерываний (управление прерываниями);
  3. Блок планирования и выражения задач (диспетчер задач);
  4. Сетевой интерфейс для перенаправления передачи сообщений;
  1. Сообщение (0 – 64 Кб). Один процесс посылает сообщение второму и переходит в режим ожидания. Сообщения находятся в контексте посылаемого их процесса до того момента, когда они могут быть приняты. Это препятствует повреждению сообщений. Методы передачи:
    1. метод представителей. Процессу не надо блокироваться при ожидании ответа. Он вызывает специальную функцию для создания представителя. Если процессу известен ID представителя, то он может прочитать сообщения из очереди. В представителе может храниться до 64 Кб сообщений;
    2. метод сигналов. Используется для совместимости со стандартами POSIX.
  2. Перенаправляет аппаратные прерывания. С аппаратной частью работает ядро, которое перенаправляет сигналы на обработчик прерываний. Обработчик имеет доступ ко всем глобальным переменным процесса. Может приостанавливаться только при возникновении прерывания с более высоким приоритетом;
  3. Обеспечение многозадачности. Вызывается в следующей ситуации:
    1. Процесс вышел из заблокированного состояния;
    2. Истёк квант времени CPU;
    3. Выполняющийся процесс прерван каким-либо событием.
    Значения приоритетов: 0-31. Используются следующие дисциплины диспетчеризации: fifo, rr, адаптивный алгоритм.
    Адаптивный алгоритм. Как только процесс использовал квант времени, его приоритет снижается на 1 в случае, если в системе есть процесс с тем же приоритетом готовым к выполнению. Если процесс с пониженным приоритетом становится не обслуженным в течение секунды – приоритет повышается на 1. Если процесс блокируется, то ему возвращается оригинальное значение приоритета.
    Процессы с разными режимами многозадачности могут одновременно находиться в памяти и выполняться. Приоритет устанавливается при запуске. Клиент может повысить приоритет процесса с сервера, но только на время выполнения запроса.
  4. Является неотъемлемой частью ядра. Передача сообщения процессу по сети ничем не отличается от локальной передачи. Сеть превращается в распределённую вычислительную среду. Сервисы, которые не реализованы в ядре, работают как стандартный процесс.
Основные механизмы QNX для организации распределённых вычислений
Каждому узлу в сети соответствует ID (логический номер). Любой поток при наличии достаточных прав имеет доступ ко всем ресурсам сети. Для взаимодействия потоков на разных узлах сети, используются те же выходы ядра, что и для потоков, выполняющихся на одном узле. Если поток на другом узле, то ядро переадресовывает запрос сетевому менеджеру.
Fleet – быстрый и надёжный обмен. Его свойства:
  1. Отказоустойчивость;
  2. Управление нагрузкой в процессе работы;
  3. Высокая производительность;
  4. Расширяемая архитектура. Просто добавить драйвер;
  5. Простая распределённая работа (не важно, на каком узле выполняется процесс);


Ctrl  Предыдущая  •  Следующая  Ctrl
Сайт управляется системой uCoz