- •Національний авіаційний університет
- •Лабораторний практикум з дисципліни «Мультиплатформені операційні середовища»
- •Визначення, позначення і скорочення
- •2.2. Використання клавіатури пк в ос qnx
- •2.3. Основні команди в ос qnx
- •2.4. Робота в файловій системі ос qnx
- •2.5. Ініціювання і завершення роботи в графічній оболонці Photon
- •3. Зміст звіту про лабораторну роботу
- •4. Питання для самоконтролю
- •5. Завдання на лабораторну роботу
- •Лабораторна робота № 2. Компіляція програм Короткі теоретичні відомості
- •Мікроядро
- •Системні і користувацькі процеси
- •Драйвери пристроїв
- •Зв'язок між процесами (ipc)
- •Qnx як мережа
- •Текст програми
- •Лабораторна робота №4. Повідомлення Короткі теоретичні відомості Архітектура і структура обміну повідомленнями
- •Текст програми
- •Послідовність дій
- •Результати
- •Лабораторна робота № 5. Тайм-аути Короткі теоретичні відомості Тайм-аути ядра
- •Текст програми
- •Текст програми
- •Послідовність дій
- •Результати
- •Послідовність дій
- •Результати
- •Лабораторна робота № 8. Створення найпростішого сервера в ос qnx
- •Короткі теоретичні відомості Функція Socket
- •Функція Bind
- •Функції listen і accept
- •Читання з сокета
- •Запис в сокет
- •Закриття сокета
Мікроядро
Мікроядро QNX відповідає за виконання наступних функцій:
зв’язок між процесами - мікроядро керує маршрутизацією повідомлень; воно також підтримує і інші форми IPC сигнали, прапорців;
мережевий інтерфейс низького рівня - мікроядро здійснює доставку всіх повідомлень, призначених для процесів на інших вузлах мережі;
диспетчеризація процесів - входить до складу ядра, планувальник вирішує, якому з запущених процесів повинно передаватись управління;
первинна обробка переривань - всі апаратні переривання і виключення спочатку проходять через мікроядро, а потім передаються відповідному драйверу або системному менеджеру.
Рис. 2. Внутрішнє улаштування мікроядра QNX.
Системні і користувацькі процеси
Системні процеси практично нічим не відрізняються від будь-яких написаних користувачем програм - вони не мають будь-якого прихованого або особливого інтерфейсу, недоступного для користувацьких процесів.
Саме за рахунок такої системної архітектури QNX має унікальну наращуваність. Так як більшість послуг операційної системи надаються стандартними процесами QNX, то розширення операційної системи вимагає всього лише написання нової програми, що забезпечує нову послугу.
Фактично, межа між операційною системою і прикладною програмою може бути дуже розмита. Єдиний критерій, за яким ми можемо відрізнити прикладні процеси і системні сервісні процеси, полягає в тому, що процес операційної системи управляє яким-небудь ресурсом в інтересах прикладного процесу.
Припустимо, що ви написали сервер бази даних. Як же повинен бути класифікований цей процес?
Точно так само, як сервер файлової системи приймає запити (в QNX реалізовані через механізм повідомлень) на відкриття файлів і запис або читання даних, це буде робити і сервер бази даних. Хоча запити до сервера бази даних можуть бути і більш складними, схожість обох серверів полягає в тому, що обидва вони забезпечують доступ до ресурсу за допомогою запитів. Обидва вони є незалежними процесами, які можуть бути написані користувачем і запускатися в за необхідності.
Сервер бази даних може розглядатися як процес в одному випадку і як додаток в іншому. Це дійсно не має значення. Важливо те, що створення і виконання таких процесів в QNX не вимагає абсолютно ніяких змін в стандартних компонентах операційної системи.
Драйвери пристроїв
Драйвери пристроїв - це процеси, які є посередниками між операційною системою і пристроями і позбавляють операційну систему від необхідності мати справу з особливостями конкретних пристроїв.
Так як драйвери запускаються як звичайні процеси, додавання нового драйвера в QNX не впливає на інші частини операційної системи. Таким чином, додавання нового драйвера в QNX не вимагає нічого, окрім безпосередньо запуску цього драйвера.
Після запуску і завершення процедури ініціалізації, драйвер може вибрати один з двох варіантів поведінки:
• стати розширенням певного системного процесу;
• продовжувати виконання як незалежний процес.
