- •Національний авіаційний університет
- •Лабораторний практикум з дисципліни «Мультиплатформені операційні середовища»
- •Визначення, позначення і скорочення
- •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
- •Читання з сокета
- •Запис в сокет
- •Закриття сокета
Лабораторна робота № 2. Компіляція програм Короткі теоретичні відомості
Мінімальний набір дій, необхідний для демонстрації прикладу програми для QNX:
1. Набрати текст програми.
2. Відкомпілювати програму.
3. Запустити програму на виконання.
Текст програми можна набрати у вбудованому редакторі, або взяти готовий текстовий файл.
Для подальших дій бажано зробити поточним каталог, де знаходиться текст програми. Для цього можна скористатися командами # cd <ім'я дерикторії> (- змінити поточну директорію на вказану) або # cd .. (- піднятися на рівень вище). Щоб переглянути вміст директорії, можна скористатися командою # ls.
Щоб відкомпілювати програму, можна скористатися вбудованим компілятором - GCC. Для цього в командному рядку необхідно написати # gcc <ім'я файлу>. Якщо в тексті програми є помилки, то вони будуть виведені на екран. Якщо помилок немає, буде створений файл a.out - це і є виконуваний файл програми. Щоб його запустити на виконання, в командному рядку необхідно написати # `pwd` /a.out.
Текст програми
#include <stdio.h>
int main (void)
{ printf ("Hello World \ n");
return (1);
}
Послідовність дій
Створюємо текстовий файл програми.
Компілюємо його і запускаємо на виконання.
Результати
# cd ..
# ls
. .lastlogin .ph a.out lab2 lab4
.. .profile lab1 lab3 lab5
# cd lab1
# ls
. .. myfirst.c
# gcc myfirst.c
# ls
. .. a.out myfirst.c
# `pwd`/a.out
Hello World
#
Завдання до виконання лабораторної роботи
1. Виконати приклад, описаний в теоретичній частині завдання.
2. Створити свій власний проект мовою С в середовищі QNX.
Лабораторна робота № 3 «Процеси та потоки»
Короткі теоретичні відомості
Стуктурна організація ОСРЧ QNX
Архітектура мікроядра системи QNX
QNX складається з невеликого ядра, координуючого роботу взаємодіючих процесів. Як показано на малюнку, структура більше нагадує не ієрархію, а команду, в якій кілька гравців одного рівня взаємодіють між собою і зі своїм "захисником" - ядром.
Рис. 1. Мікроядро системи QNX коиординує роботу системних менеджерів
Справжнє ядро
Ядро – це "серце" будь-якої операційної системи. В деяких операційних системах на нього покладається настільки багато функцій, що ядро заміняє всю операційну систему!
В QNX же мікроядро – це справжнє ядро. По-перше, як і слід ядру реального часу, ядро QNX має дуже малий розмір. По-друге, воно виконує дві найважливіші функції:
передача повідомлень - мікроядро забезпечує маршрутизацію всіх повідомлень між всіма процесами в системі;
диспетчеризація – планувальник – це частина міикроядра, і він отримує управління кожного разу, коли процес змінює свій стан в результаті отримання повідомлення або переривання.
На відміну від всіх інших процесів, ядро ніколи не отримує управління в результаті диспетчеризації. Код, що входить до складу ядра, виконується лише в результаті прямих викликів з процесу або апаратного переривання.
Системні процеси
Всі послуги операційної системи, виключаючи ті, що виконуються ядром, в QNX надаються через стандартні процеси. Типова конфігурація QNX має наступні системні процеси:
Менеджер процесів (Proc);
Менеджер файлової системи (Fsys);
Менеджер пристроїв (Dev);
Менеджер мережі (Net).
