
- •1. Что такое функционирование в «Реальном масштабе времени»
- •2. Приведите примеры функционирования в реальном масштабе времени
- •3. Что такое время реакции системы
- •4. Что такое «жесткое» и «мягкое» реальное время.
- •5. Классификация опер-х систем реального времени.
- •6. Требования к осрв
- •7. Задачи, процессы, потоки
- •8. Основные свойства задач.
- •9. Планирование циклических задач, кооперативная многозадачность
- •10. Планирование в режиме разделения времени
- •11. Алгоритм планирования – приоритетная задача с вытеснением
- •12. Виды синхронизации задач
- •14. Синхронизация доступа задач к общему ресурсу
- •15. Семафоры
- •16. Критические секции, мутексы
- •17. Смертельный захват, инверсия во времени
- •18. Синхронизация задач с внешними событиями
- •19. Синхронизация во времени
- •20. Linux реального времени.
- •21. Операц-е системы реального времени и Windows
- •22. Операционная система qnx.
- •23. Контекстное переключение задач.
- •24. Стандарт posix.
22. Операционная система qnx.
ОС QNX создана программистами комп-и QNX Software System Ltd. в 1981 году и с этого момента она заняла лидирующее место среди СРВ.
QNX отн-ся к категории Unix-подобных с-м, несмотря на имеющиеся фундаментальные различия. С т.з. пользов-го интерфейса и API, эта ОС очень похожа на Unix. Но QNX – это не версия Unix. Она была разработана с нуля и построена на совершенно других архитектурных принципах, но с учетом группы стандартов POSIX.
QNX – это первая коммерческая ОС, построенная на принципах микроядра и обмена сообщениями. Система реализована в виде совок-ти независ-х (но взаимодей-х ч/з обмен сообщ-ми) процессов различ. уровня (менеджеры и драйверы), каждый из которых реализует опред-ый вид сервиса.
Эти идеи обеспечили ряд важнейших преимуществ.
Предсказуемость, означ-ю ее применимость к задачам «жесткого» реал. времени. Ни одна версия Unix не может достичь подобного качества, т.к. нереентерабельный код ядра слишком велик. Любой системный вызов в Unix может привести к непредсказуемой задержке. То же самое относится к Windows NT, где реальное время заканчивается между ISR (первичный обработчик прерывания) и DPC (вызов отложенной процедуры).
Масштабируемость и эффективность, достигаемую оптим-ым испол-ем ресурсов и означ-ую ее применимость для встроенных (embedded) систем. В каталоге /dev нет огромной кучи файлов, соответ-их ненужным драйверам. Драйверы и менеджеры можно запускать просто из командной строки. И удалять (кроме файловой системы J) динамически. Можно иметь только тот сервис или те модули, к-рые реально нужны.
Расширяемость и надежность одновременно, поск-ку написанный вами драйвер не нужно компилировать в ядро, рискуя вызвать нестабильность системы. Менеджеры ресурсов (сервис логич-го ур-я) работают в кольце 3, при этом можно добавлять свои, не опасаясь за с-му. Драйверы работают в кольце 1 и могут вызвать проблемы, но не фатального хар-ра. Кроме того, их дост-но просто писать и отлаживать. Н-р, постоянная головная боль разработчиков драйверов для Linux – получ-е физически непрер-го блока памяти для DMA-устройств – устран-ся ч/з фун-ю mmap().
Быстрый сетевой протокол FLEET, прозрачный для обмена сообщ-ми, автоматически обеспеч-щий отказоуст-ть, балансирование нагрузки и маршрутизацию м/у альтернативными путями доступа. Он не так универсален, как TCP/IP, но гораздо проще в использ-и и эффективнее.
Богатый выбор графических подсистем, включ-ий QNX Windows, X11R5 и Photon, что позволяет разраб-кам выбирать ту, кот-я лучше подходит для их целей. Для типичных областей применения QNX традиц-ая система X11 слишком тяжеловесна, но с-ма Photon, постр-ая на тех же принципах модульности, что и сама QNX, позволяет получить полнофункциональный GUI (типа Motif 2.0), раб-щий вместе с POSIX-совместимой ОС всего в 4 Мб памяти.
Недостатки:
– нет поддержки SMP;
– нет своппинга виртуальной памяти на диск;
– неэффек-ая и нестандартная поддержка нитей (threads);
– нет поддержки Java (как след-е предыдущего пункта);
– нет поддержки отображения файлов в память;
– многочисленные ограничения файловой системы;
– нет поддержки Unix-domain sockets;
– слабые сред-ва разгранич-я и контроля доступа польз-ей;
– отсутствие средств безопасности в рамках собственного сетевого протокола.