- •1. Общая х-ка систем реального времени
- •4._Архітектура ос qnx-6.
- •5. Основні компоненти ос рч та їх загальна характеристика (планувальник задач та диспетчер (ядро), обробники переривань, програма стеження за часом, адміністратор ресурсів).
- •6.Правила диспетчеризації потоків в сучасних ос рч (fifo,rr,тощо). Рівні пріоритетів. Механізми синхронізації.
- •8.Стани задач в ос рч
- •9.Планування та диспетчеризація задач в ос рч. Чинники та алгоритми планування.
- •10. Механізми взаємодії задач в ос рч (повідомлення, схеми обміну повідомленнями).
- •11. Концепция потоков и процессов
- •13. Архітектура ос qnx-6.
- •12. Методи синхронізації потоків.
- •14. Алгоритми планування задач в ос qnx-6
- •15. Дисципліни та правила диспетчеризації потоків в ос qnx-6.
- •16. Стани потоків в ос qnx-6
- •17. Запуск процесів та потоків в ос qnx-6.
- •18. Створення потоків в ос qnx-6
- •19. Копіювання процесів в ос qnx-6
- •20. Атрибути потоків в ос qnx-6.
- •21.Синхронизация потоков по мютексу.
- •22.Синхронизация потоков по семафору.
- •23.Синхронізація потоків за „приєднанням”. (взято из Кертона, изменяй, когда переписываешь)
- •24. Синхронізація потоків за «бар'єром».
- •25. Синхронізація операцій читання-запису.
- •26.Синхронізація потоків за ”чекаючим блокуванням”.
- •27.Алгоритм взаємодії потока-виробника та потока-приймача інформації на основі „чекаючих блокувань”.
- •28.Синхронізація потоків за „умовними змінними”.
- •29.Пули (pool) потоків та їх використання.
- •30. Алгоритм керування числом потоків в пулі потоків.
- •31. Обмін повідомленнями за моделлю "клієнт - сервер".
- •33. Обмін повідомленнями за моделлю "клієнт – сервер - субсервер". Смотри далее.
- •34. Обмін повідомленнями за моделлю "клієнт – сервер - субсервер".
- •35. Механізм обміну повідомленнями між клієнтом та сервером в ос qnx-6.
- •36. Визначення потрібного сервера та жетон клієнта.
- •37. Обмін повідомленнями великого розміру.
- •38. Складені повідомлення та механізм iov.
- •39. Повідомлення за типом “імпульс”. Передача та прийом імпульсу.
- •40. Механізм стеження за часом. Годинники та таймери.
- •41. Механізм стеження за часом. Схеми повідомлення про «тайм-аут».
- •42. Створення та використання таймерів в ос qnx-6.
- •43. Тайм-аути ядра ос qnx-6.
- •44. Обробка переривань в ос qnx-6.
- •45. Розподіл загальної пам'яті між процесами (розповісти про shm_open, mmap, shm_unlink).
- •46. Мікроядро Neutrino та його можливості.
- •47. Розробка консольних проектів срч в середовищі qnx-6.
- •48. Мікроядро Photon та його можливості.
- •49. Розробка проектів срч в середовищі Application Builder.
46. Мікроядро Neutrino та його можливості.
Ключевыми свойствами, делающими ОС QNX/Neutrino эффективной для использования, являются: многозадачность, управляемая приоритетами диспетчеризация, минимальные накладные расходы на обработку аппаратных прерываний и переключение задач, масштабируемость, прозрачная сетевая поддержка, соответсвие стандарту POSIX, поддержка многопроцессорных систем. Уникальность QNX/Neutrino заключается в эффективности использования вычислительных ресурсов, в модульности и простоте. Основные принципы построения ОС: архитектура «микроядро», межпроцессорныное взаимодействие, в основу которого положен принцип обмена сообщениями. Архитектура «микроядро» означает построение ОС по принципу модульности, а размер ядра не имеет главную роль. Функциональные возможности такой системы наращиваются не путем добавления новый функций в ядро, а за счет подключения новых процессов, обеспечивающих дополнительные сервисы. Пэтому поддержка файловой системы, сетевой обработки, графического интерфейса и др. сервисы не являются функцией микроядра. Целью создания ОС на основе микроядра является не желание сделать ее как можно мельше по размеру, а стремление обеспечить большую гибкость за счет модульности структуры. Компактное ядро Neutrino имеет небольшой размер – 32 кбайт, выполняя несколько основных служб ОС: службы обмена сообщениями между потоками всей системы, службы синхронизации потоков, службы диспетчеризации потоков, службы управления таймерами и аппаратными прерываниями. В отличие от потоков (процессов), само ядро Neutrino не подлежит диспетчеризации. Код ядра исполняется только при вызове функции ядра каким-нибудь потоком или при обработке аппаратного прерывания. Все остальные службы ОС реализованы посредством стандартных процессов. Так как ядро QNX/Neutrino обеспечивает достаточный набор функций для управления потоками, то пользователь имеет возможность создать конфигурацию, состоящую из одних только пользовательских потоков, не включая в ядро менеджер процессов. Ядро управляет объектами и поддерживает 57 вызовов для поддержки потоков, сообщений, сигналов, таймеров, обработчиков прерываний, примитивов синхронизации (семафоров, критических секций, условных переменных). Все вызовы ядра являются полностью прерываемыми. Микроядро Neutrino обеспечивает перераспределение процессорного времени между потоками за счет различных механизмов диспетчеризации. Исполнение потока приостанавливается каждый раз при возникновении одного из следующих условий: поток вызывает функцию ядра, происходит аппаратное прерывание, возникает исключение. При работе QNX/Neutrino наблюдается почти линейный рост производительности при добавлении дополнительных процессоров (всего до 8).
47. Розробка консольних проектів срч в середовищі qnx-6.
Для того, чтобы создать консольный проект в среде QNX-6, необходимо воспользоваться, к примеру, текстовых редактором Ped, в котором следует набрать текс программы на С или С++ и сохрать файл с расширением *.с в одном из каталогов системы. Для компиляции программы необходимо, чтобы в QNX-6 был установлен компилятор gcc (для языка С) или g++ (для языка С++). Если компилятор установлен, то через окно терминала системы нужно набрать команду:
gcc /catalog/filename.c -o /catalog/filename.exe
После –о указывается директория и имя выходного исполняемого файла.
После успешного виполнения набранной команды в каталоге /catalog появится файл filename.exe, который можно запускать на выполнение.
