Операційні системи реального часу

Олексій Жданов

Класи систем реального часу

Кількість різноманітних операційних систем реального часу дуже велике. В останньому огляді в Real-Time Magazine (№ 2-3 / 97) було згадано близько шістдесяти таких ОС. Напевно, насправді їх ще більше, якщо мати на увазі некомерційні ОСРВ. Однак сама специфіка застосування ОСРВ вимагає гарантій надійності, причому гарантій в тому числі і юридичних - цим, мабуть, можна пояснити той факт, що серед некомерційних систем реального часу немає скільки-небудь популярних.

Серед комерційних СРВ можна виділити групу провідних за обсягами продажів і за популярністю систем. VxWorks, OS9, pSOS +, LynxOS, QNX, VRTX.

Виконавчі системи реального часу. Ознака систем цього типу - різні платформи для розробки і виконання. Додаток реального часу розробляється на хост-комп'ютері (комп'ютер ведення розробки), потім компонується з ядром і завантажується в цільову систему для виконання. Як правило, додаток реального часу - це одне завдання, і паралелізм тут досягається за допомогою потоків (threads).

Системи даного типу мають ряд переваг, головними з яких є швидкість і реактивність. Висока реактивність досягається завдяки тому, що в системі є тільки потоки, що вимагають малого часу на перемикання контексту (на відміну від процесів).

Цим властивістю визначається і ряд недоліків: зависання всієї системи при зависанні потоку, проблеми з динамічної підвантаженням нових додатків.

Крім того, системи розробки для продуктів такого класу традиційно дороги (порядку 20 000 дол.). Хоча треба відзначити і традиційно високу їх якість і функціональність, що пояснюється тим, що спочатку вони були кросовими.

Як найбільш яскравого представника тут можна назвати ОС VxWorks - компактну систему реального часу з хорошими часом реакцій.

Системи з ядром реального часу (Real Time Kernel). У цей клас входять системи з монолітним ядром, де і реалізовані механізми реального часу. Історично такі системи завжди були добре спроектовані. На відміну від інших класів, які з'являлися як тимчасові компроміси і потім "нарощували м'язи" завдяки першим вдалим реалізаціям (виконавчі системи реального часу і UNIX реального часу), в даному випадку програмісти мали можливість працювати над створенням систем саме реального часу, причому спочатку вони не були обмежені у виборі засобів (наприклад, в розпорядженні фірми Microware було три роки для розробки першого варіанту OS9).

Системи з ядром реального часу, як правило, модульні, добре структуровані, мають розвинений набір специфічних механізмів реального часу, компактні і передбачувані. Найбільш популярні серед них - OS9, QNX.

Продукти цього класу відрізняються високим ступенем масштабованості. На їх базі можна побудувати як компактні СРВ, так і великі системи-сервери. Ядра реального часу зазвичай мають два типи систем розробки - кроссовую і резидентную.

UNIX реального часу. Системи реального часу створювалися в епоху розквіту і буму UNIX, тому багато хто з них містять ті чи інші запозичення з цієї красивою концепції ОС (призначений для користувача інтерфейс, концепція процесів і т. Д.).

Деякі розробники спробували просто переписати ядро ​​UNIX, зберігши, наскільки можливо, інтерфейс користувача процесів з системою. Реалізація цієї ідеї не була занадто складною, оскільки не було перешкоди для доступу до вихідних текстів ядра, а результат виявився чудовим: отримали і реальний час, і відразу весь набір призначених для користувача додатків - компілятори, пакети, різні інструментальні системи.

У цьому сенсі творцям систем перших двох класів довелося потрудитися не тільки над ядром реального часу, а й над розвиненою системою розробки.

Однак UNIX реального часу не позбавлені деяких недоліків: вони мають чималий обсяг і нижчу реактивність.

Найпопулярнішим представником систем цього класу є операційна система реального часу LynxOS.

Розширення реального часу для Windows NT. В останні два роки відразу кілька фірм оголосили про створення розширень реального часу для Windows NT. Отже, подібні продукти були затребувані, що і підтверджує динаміка їх ринкового розвитку. Справді, поява свого часу UNIX реального часу означало не що інше, як спробу застосувати пануючу програмну технологію для створення цього типу додатків. Поява розширень реального часу для Windows NT має те ж коріння, ту ж мотивацію. Це і величезний набір прикладних програм під Windows, і потужний програмний інтерфейс Win32 і велика кількість фахівців, які знають цю систему. Звичайно, спокусливо отримати всі ці можливості в системі реального часу. Тому зупинимося на них трохи докладніше.

Незважаючи на те, що Windows NT створювалася як мережна операційна система, поєднання слів "Windows NT" і "реальний час" багатьма сприймається як нонсенс, хоча при створенні в неї були закладені деякі елементи реального часу, а саме - дворівнева система обробки переривань (ISR і DPC) і класи реального часу (процеси з пріоритетами 16 - 32 плануються відповідно до правил реального часу). Мабуть, пояснити це можна тим, що у розробників Windows NT за плечима є досвід створення класичної для свого часу ОСРВ RSX11M (для комп'ютерів фірми DEC).

Звичайно, навіть поверхневий аналіз показує, що Windows NT не годиться для побудови систем жорсткого рального часу (вона непередбачувана: час виконання системних викликів і час реакції на переривання в значній мірі залежить від завантаження; великий її обсяг; в ній немає механізмів захисту від зависання і пр.). Тому навіть в системах м'якого реального часу Windows NT може бути використана тільки при виконанні цілого ряду рекомендацій і обмежень.

Розробники розширень пішли двома шляхами.

1. Використовували ядра класичних ОСРВ як доповнення до ядра Windows NT ( "два в одному флаконі"). Такі рішення фірм LP Elektroniks і Radisys. У першому випадку паралельно з Windows NT (на одному комп'ютері!) Працює операційна система VxWorks, у другому випадку - InTime. Крім того, надається набір функцій для зв'язку додатків реального часу і додатків Windows NT. Ось як, скажімо, це виглядає у LP Elektroniks. Спочатку стандартним чином завантажується Windows NT, потім за допомогою спеціального завантажувача - VxWorks, розподіляючи під свої потреби необхідну пам'ять Windows (що в подальшому дозволяє уникнути конфліктів пам'яті між двома ОС). Після цього повною "господинею" на комп'ютері вже стає VxWorks - вона віддає процесор ядру Windows NT тільки в тих випадках, коли в ньому немає потреби для додатків. Каналами для синхронізації і обміну даними між Windows NT і VxWorks служать драйвери TCP / IP в обох системах. Технологія використання двох систем на одному комп'ютері зрозуміла: роботу з об'єктом виконує додаток реального часу, передаючи потім результати додатків Windows NT для обробки, передачі в мережу, архівування та ін. (Рис. 4).

Рис. 4. Взаємодія двох ОС в єдиному комплексі

2. Варіант розширень реального часу фірми VenturCom виглядає інакше: тут зроблена спроба "інтегрувати" реальний час в Windows NT шляхом дослідження причин затримок і зависань і їх усунення за допомогою підсистеми реального часу. Рішення фірми VenturCom (RTX 4.2) базуються на модифікаціях рівня апаратних абстракцій Windows NT (HAL, Hardware Abstraction Layer) - програмного шару, через який драйвери взаємодіють з апаратурою. Модифікований HAL і додаткові функції (RTAPI) відповідають за стабільність і надійність системи, забезпечуючи відстеження краху Windows NT, зависання додатків або блокування переривань. До складу RTX входить також підсистема реального часу RTSS, що розширює Windows NT додатковим набором об'єктів (аналогічним стандартним, але з атрибутами реального часу). Серед нових об'єктів - потоки і процеси, керовані спеціальним планувальником реального часу (256 фіксованих пріоритетів, алгоритм - пріоритетний з витісненням). Побічної можливістю RTX є просте створення програм управління пристроями, так як серед функцій RTAPI є і функції роботи з портами введення-виведення і фізичної пам'яттю. Рішення VenturCom характерні ще й тим, що вони надають абсолютно екзотичну для NT можливість конфігурації Windows NT і створення вбудованих конфігурацій (без дисків, клавіатури і монітора).

Незважаючи на неоднозначне (а насправді якраз однозначне!) Ставлення традиційних користувачів систем реального часу до всього, що пов'язано зі словом "Microsoft", необхідно констатувати факт: з'явився новий клас ОСРВ - розширення реального часу для Windows NT. Результати незалежного тестування цих продуктів показують, що вони можуть бути використані для побудови систем жорсткого реального часу.

Область застосування таких розширень - великі системи реального часу, де потрібно візуалізація, робота з базами даних, доступ в Інтернет і ін. (Рис. 5).

Тенденції розвитку ОСРВ

Після того як ми спробували навести порядок в світі ОСРВ, запропонувавши класифікацію систем, доведеться цей порядок зруйнувати, розповівши про те, як розвивається світ систем реального часу.

Один з видимих ​​процесів - зближення систем різних класів. Так, у багатьох ОСРВ з ядром реального часу і UNIX реального часу (UNIX РВ) з'явилися останнім часом кросові системи розробки високої якості, характерні для ОСРВ класу "виконавчі системи реального часу". І це - загальна тенденція. Резидентні засоби розробки для ОСРВ, що підтримують багато цільові архітектури, вже виглядають як архаїзм. Наприклад, потужні кросові системи розробки з'явилися в таких ОСРВ, як OS9 (з ядром реального часу) і LynxOS (UNIX реального часу).

Така ж картина спостерігається в області систем виконання ОСРВ: в продуктах класу "UNIX РВ" і "ядра РВ" з'являються нові компактні варіанти систем виконання з малим часом перемикання контексту (якість класу "виконавчі ОСРВ"). Прикладами можуть служити OS9, QNX, LynxOS.

Не можна не помітити і ще одну тенденцію - поява в багатьох ОСРВ таких продуктів, як Real-Time Java і Embedded Java. Зараз Java - один з обов'язкових атрибутів систем реального часу.

Цікаво, що останнім часом в ряді ОСРВ (QNX, LynxOS) з'явилися додаткові бібліотеки, реалізують підмножини програмного інтерфейсу Win32. Аналогічні процеси відбувалися не так давно в відношенні стандарту POSIX 1003.1 (базовий програмний інтерфейс UNIX). У підсумку багато ОСРВ стали POSIX-сумісними. Мабуть, в недалекому майбутньому вони стануть ще і Win32-сумісними.

Говорячи про тенденції розвитку ОСРВ, не можна обійти увагою питання, про який зараз багато говорять і пишуть. Я маю на увазі проблему операційної системи Windows CE, її позиціонування по відношенню до ОСРВ.

Версії Windows CE, що з'явилися на цей момент (2.0 і 2.1), ніяк не назвеш системами реального часу. Тут можна говорити скоріше про пошук, в якому знаходяться фахівці Microsoft, ніж про якусь магістральної лінії розвитку. Так, програмні інтерфейси для драйверів 2.1 і 2.0 несумісні один з одним, причому у версії 2.1 з'явилися суттєві недоліки, які обумовлюють великі затримки при операціях введення-виведення. Поява версії 3.0, про яку вже відомо, що вона буде істотно відрізнятися від попередніх, прояснить ситуацію і дозволить зрозуміти, як буде розвиватися Windows CE далі. Безсумнівно одне: Microsoft відкрила проект CE c метою вийти на ринок вбудованих систем і, напевно, досягне багато чого на цьому терені. Однак вбудовані системи та системи реального часу - не одне й те саме. Різні інтелектуальні калькулятори, електронні записні книжки, перекладачі, органайзери і інші інструменти складають величезний ринок збуту - саме туди спрямовані інтереси Microsoft і вимоги саме цього ринку будуть визначати технічні рішення в області РЄ, а ніяк не вимоги жорсткого реального часу. Створити ж універсальну систему, що задовольняє суперечливим вимогам, неможливо. Тому малоймовірно, що Windows CE складе серйозну конкуренцію системам, про які йшлося в цій статті.

З автором статті можна зв'язатися за телефоном: (095) 742-6828 або по E-mail: [email protected].

Закінчення. Початок див. PC Week / RE, № 8/99, с. 17.

Версія для друку

Тільки зареєстровані користувачі можуть залишати коментарі.

© 2008 — 2012 offroad.net.ua . All rights reserved. by nucleart.net 2008