
- •2 Структура пз
- •3 Операційні системи
- •3.1 Загальні зведення
- •3.2 Основні складові функції сучасних ос
- •3.2.1 Системи планування
- •3.2.2 Синхронізація та обмін даними між процесами
- •3.2.3 Системи керування пам’яттю
- •3.2.4 Система керування файлами
- •3.2.5 Системи керування вводом-виводом
- •3.2.6 Переривання
- •3.3 Деякі сучасні ос
- •3.3.1 Ос сімейства dos
- •3.3.2 Ос сімейства os/2
- •3.3.3 Ос сімейства Windows
- •3.3.4 Ос сімейства Unix
- •3.3.5 Мережна ос реального часу qnx
- •4 Сервісні системи
- •4.1 Інтерфейсні системи
- •4.2 Оболонки ос
- •2.2.3 Утиліти
- •5 Інструментальні системи
- •5.1 Системи програмування
- •5.2 Системи управління базами даних
- •5.3 Інструментарій штучного інтелекту
- •5.4 Редактори
- •5.5 Інтегровані системи
- •5.6 Сучасні системи програмування
- •5.7 Прикладне по
- •6 Особливості проектування спо
- •6.1 Асемблери
- •6.1.1 Машинно-залежні характеристики асемблера
- •6.1.2 Машинно-незалежні характеристики асемблера
- •6.1.3 Варіанти побудови асемблерів
- •6.2 Завантажники й програми зв'язування
- •6.2.1 Машинно-залежні властивості завантажника
- •6.2.2 Машинно-незалежні властивості завантажників
- •6.2.3 Побудова завантажників.
- •6.3 Макропроцесори
- •6.3.1 Машинно-незалежні особливості.
- •6.3.2 Варіанти побудови макропроцесорів.
- •6.4 Компілятори
- •6.4.1 Граматика.
- •6.4.2 Лексичний аналіз.
- •6.4.3 Синтаксичний аналіз.
- •6.4.4 Генерація коду.
- •6.4.5 Машинно-залежні особливості компіляторів.
- •6.4.6 Машинно-незалежні особливості компіляторів.
- •6.4.7 Варіанти побудови компіляторів.
- •6.4.8 Інтерпретатори.
- •6.4.9 Компілятори на p-код.
- •6.4.10 Компілятори компіляторів.
- •6.5 Основи побудови операційних систем
- •6.5.1 Принципи побудови ос
- •6.5.2 Основні структурні рішення
- •6.5.3 Принципи побудови інтерфейсів ос
- •Література
3.3.5 Мережна ос реального часу qnx
Операційна система QNX є могутньою операційною системою, що дозволяє проектувати складні програмні системи, що працюють у реальному часі як на одним-єдиному комп'ютері, так і в локальній обчислювальній мережі. Убудовані засоби операційної системи QNX забезпечують підтримку багатозадачного режиму на одному комп'ютері і взаємодію рівнобіжно виконуваних задач на різних комп'ютерах, що працюють у середовищі локальної обчислювальної мережі. Основною мовою програмування в системі є мова C. Основне операційне середовище відповідає стандартам POSIX-інтерфейсу. Це дозволяє з невеликими доробками перенести необхідне накопичене програмне забезпечення в середовище операційної системи QNX для організації їх роботи в середовищі розподіленої обробки.
QNX є мережна, багатокористувацька (багатотермінальна), мультизадачна й маштабуєма ОС. З погляду користувальницького інтерфейсу і API вона дуже схожа на UNIX. Однак QNX — це не версія UNIX, хоча чомусь багато хто так вважає. Вона була розроблена, що називається «із нуля», канадською фірмою QNX Software Systems Limited у 1989 році за замовленням Міністерства оборони США. Причому ця система побудована на зовсім інших архітектурних принципах, відмінних від принципів, використаних при створенні ОС UNIX.
QNX була першої комерційний ОС, побудованої на принципах мікроядра й обміну повідомленнями. Система реалізована у виді сукупності незалежних (але взаємодіючих через обмін повідомленнями) процесів різного рівня (менеджери й драйвери), кожний з який реалізує визначений вид сервісу. Ці ідеї дозволили домогтися декількох найважливіших переваг:
- передбачуваність, що означає її застосовність до задач твердого реального часу, вона дає повну гарантію в того, що процес із найвищим пріоритетом почне виконуватися практично негайно і що критична подія (наприклад, сигнал тривоги) ніколи не буде загублена;
- маштабуємість й ефективність, що досягаються оптимальним використанням ресурсів і означають її застосовність для убудованих систем; у каталозі /dev немає величезної купи файлів, що відповідають непотрібним драйверам, драйвери й менеджери можна запускати й видаляти (крім файлової системи) динамічно, просто з командного рядка, можна мати тільки той сервіс, що реально потрібний, причому це не вимагає серйозних зусиль і не породжує проблем;
- розширюваність і надійність одночасно, оскільки написаний драйвер не потрібно компілювати в ядро, ризикуючи викликати нестабільність системи, менеджери ресурсів працюють у кільці захисту 3, і можна додавати свої, не побоюючись за систему, драйвери працюють у кільці з рівнем привілеїв 1 і можуть викликати проблеми, але не фатального характеру, крім того, їх достатньо просто писати й налагоджувати;
- швидкий мережний протокол FLEET, прозорий для обміну повідомленнями, що автоматично забезпечує відказостійкість, балансування навантаження й маршрутизацію між альтернативними шляхами доступу;
- компактна графічна підсистема Photon, побудована на тих же принципах модульності, що і сама ОС, дозволяє одержати повнофункціональний GUI (розширений Motif), що працює разом із POSIX-сумісної ОС усього в 4 Мбайт пам'яті, починаючи з i80386 процесора.
В систему QNX втілені принципи, обов'язкова реалізація яких дозволять створювати ОСРЧ.
Першою обов'язковою вимогою до архітектури ОСРЧ є багатозадачність у щирому змісті цього слова. Очевидно, що варіанти із псевдобагатозадачністю (не витисняючою) неприйнятні, оскільки вони допускають можливість чи блокування навіть повного розвалу системи одним неправильно працюючим процесом. Для запобігання блокувань ОСРЧ повинна використовувати квантування часу (витісняючою), що є досить легкою задачею.
Друга проблема (організація надійних обчислень) може бути ефективно вирішена при повному використанні можливостей процесорів Intel 80386 і старше, що припускає роботу ОС у 32-розрядному режимі процесора. Для ефективного обслуговування переривань ОС повинна використовувати алгоритм диспетчеризації, що забезпечує витісняюче планування, засноване на пріоритетах.
Украй бажані ефективна підтримка мережних комунікацій і наявність розвитих механізмів взаємодії між процесами, оскільки реальні технологічні системи керуються цілим комплексом комп'ютерів або контролерів. Дуже важливо також, щоб ОС підтримувала множинні потоки керування (не тільки мультипрограмний, але і мультизадачний режими), а також симетричну мультипроцесорність.
І, нарешті, при дотриманні всіх перерахованих умов ОС повинна бути здатна працювати на обмежених апаратних ресурсах, оскільки одна з її основних областей застосування - це убудовані системи. На жаль, дана умова звичайна реалізується шляхом урізування стандартних сервісних засобів.
GUI (graphic user interface) — графічний інтерфейс користувача.
QNX - це ОС реального часу, що дозволяє ефективно організувати розподілені обчислення. У системі реалізована концепція зв'язку між задачами на основі повідомлень, що посилаються від однієї задачі до іншої, причому задачі ці можуть знаходитися як на тому самому комп'ютері, так і на вилучених, але зв'язаних локальною обчислювальною мережею. Реальний час і концепція зв'язку між процесами у виді повідомлень впливають на розроблювальне для QNX програмне забезпечення і на програміста, що прагне з максимальною вигодою використовувати переваги системи.