
- •Базы данных
- •Вопрос 29 Основные функции систем управления базами данных
- •Вопрос 30 Реляционные базы данных
- •Базовые понятия реляционных баз данных
- •Фундаментальные свойства отношений
- •Недостатки реляционной модели баз данных
- •Вопрос 31 Реляционная модель данных
- •Вопрос 32 Манипулирование данными
- •Реляционная алгебра
- •Вопрос 33
- •Вопрос 34
- •Вопрос 36 Реляционное исчисление кортежей и доменов
- •Вопрос 38. Состав программного обеспечения информационно-управляющих систем
- •Вопрос 39. Программы организации и контроля вычислительного процесса
- •Вопрос 40. Особенности операционных систем реального времени
- •Вопрос 41. Операционная система реального времени qnx
- •Вопрос 42. Операционная система реального времени "Карусель"
- •Вопрос 43 Программа обработки прерываний
- •Вопрос 44. Программа включения оперативной задачи
- •Вопрос 45. Программа включения карусельной задачи
- •Вопрос 46 Программа start и подпрограмма zagr
Вопрос 41. Операционная система реального времени qnx
Системы, работающие в реальном режиме времени, характеризуются тем, что они должны обрабатывать поступающие данные быстрее, чем они поступают, причём от нескольких источников одновременно. Технически это означает, что операционная система, работающая в таких условиях, должна обеспечивать не просто малое время реакции, а гарантированное время реакции. Разумеется, это время должно быть достаточно малым для того, чтобы она могла работать в реальных системах управления. Применительно к операционным системам вышеуказанное требование может быть реализовано путём применения нижеперечисленных архитектурных принципов её построения.
Первым обязательным требованием к архитектуре операционной системы является вытесняющая многозадачность. Применение невытесняющей многозадачности, как это сделано в системах MS-Windows или Novel NetWare, неприемлемо, поскольку операционная система в данном случае допускает возможность блокировки или даже развала системы одним неправильно работающим процессом.
Второе требование - повышенная надёжность операционной системы, которая может быть обеспечена только при применении довольно мощных процессоров (не ниже Intel 80386).
Для эффективного обслуживания прерываний операционная система должна использовать алгоритм диспетчеризации, обеспечивающий вытесняющее планирование, основанное на приоритетах.
Следующим требованием к операционной системе реального времени является эффективная поддержка сетевых коммуникаций и взаимодействий между процессами, поскольку реальные технологические системы управляются целым комплексом компьютеров или процессоров.
Весьма желательно также, чтобы операционная система поддерживала множественные нити управления и симметричную мультипроцессорное^.
При соблюдении всех перечисленных условий операционная система должна быть способна работать на ограниченных аппаратных ресурсах, поскольку одна из её основных областей применения - встроенные системы.
Основным принципом построения подобных систем является использование модульной архитектуры, которая позволяет создать масштабируемую операционную систему, которую можно использовать как в весьма простых устройствах (например, в микроволновой печи), так и в больших системах управления (управление ядерным реактором).
Операционная система QNX является эффективной, надёжной и масштабируемой многопользовательской мультизадачной сетевой операционной системой реального времени.
Операционная система QNX применяется в наиболее критических областях. На её базе строятся высоконадёжные системы для управления промышленным и медицинским оборудованием, бортовыми системами, сетевыми маршрутизаторами и даже ядерными реакторами. QNX - встраиваемая, но при этом гибко масштабируемая система. Следует также отметить, что это довольно дорогая система, дороже большинства коммерческих систем, например Microsoft. Структурная схема операционной системы QNX показана на рис. 2.3.
Используемое в QNX ядро чрезвычайно мало (около 8 Кб в QNX4 и от 20 до 32 Кб в различных реализациях QNX6) и полностью написано на ассемблере, что обеспечивает наиболее высокую скорость работы системы. Ядро решает следующие задачи: осуществляет диспетчеризацию процессов, передачу сообщений, первичную обработку прерываний (переадресацию прерываний) и поддержку сетевого интерфейса. При этом поддерживается до 300 процессов с 32 уровнями приоритета и четырьмя алгоритмами планирования: очередь, карусель, по приоритету сообщений и адаптация. Все функции, выполняемые операционной системой, кроме функций ядра, реализуются стандартными процессами, используемыми и в других операционных системах.
Менеджер процессов отвечает за создание и удаление процессов, управление памятью, таймеры, эмуляцию сопроцессора и диагностику. Разработаны два варианта менеджера процессов 16-ти и 32-х разрядная. Последняя может исполнять как 16-ти, так и 32-х разрядные приложения одновременно, для этого требуется установка двух системных библиотек (фактически имеется две операционные системы в одной упаковке). Кроме того, эта версия использует все возможности процессоров Intel для аппаратной защиты памяти.
Менеджер файловых систем позволяет работать с несколькими файловыми системами одновременно (например, винчестер и флоппи-диски могут обслуживаться одновременно).
Менеджер устройств поддерживает байт-ориентированные устройства и позволяет осуществлять обмен информацией со скоростью до 115200 бит/с. Следует отметить, использование буферизированных портов (UART) является необходимым при скоростях свыше 2400 бит/с.
Менеджер сети позволяет системе взаимодействовать с наиболее популярными вычислительными сетями (см. рис.3.4). Разработчики QNX создали собственную специальную сетевую технологию FLEET и соответствующий протокол FTL, который отличается от распространённых сетевых протоколов и является уникальным. Сеть на основе QNX представляет собой единый набор ресурсов, поэтому любой компьютер сети может использовать любой ресурс другой машины для решения своих задач. QNX-сеть (Qnet) похожа на универлальную большую машину (мейнфрейм), только собранную из обычных компьютеров.