Курсова робота
Вбудована система
обробки текстової інформації
Вступ
програмний алгоритм синхронізація
QNX - це зареєстрована торгова марка фірми Quantum Software Systems, Canada. Фірма заснована в 1980 році. У той же самий час QNX - назва інтегрованої операційної системи, призначеної для підтримки роботи ЛВС у реальному масштабі часу і розробленою фірмою Quantum. В даний час QNX знаходить усе найбільш широкий попит на ринках Європи, Канади і США завдяки своїм унікальним властивостям. QNX - це багатозадачна багатокористувацька - операційна система, що працює на РС-совместительных комп'ютерах.- система реального часу, у якій реалізована концепція зв'язку між задачами на основі повідомлень, що посилаються від однієї задачі до іншої, причому задачі ці можуть знаходитися як на тому самому вузлі ЛВС, так і на різних. Реальний час і концепція зв'язку між задачами у виді повідомлень впливають на розроблювальне для QNX програмне забезпечення і на програміста, що прагне з максимальною вигодою використовувати переваги системи. У такий спосіб можна створювати загальні прикладні програми, що придатні для виконання в будь-якому операційному середовищі, але в той же час можна створювати і такі програми, для яких QNX буде найбільш придатним операційним середовищем. Закінчуючи огляд ОС QNX, варто додати, що названа ОС може працювати в режимі захисту пам'яті, включає такі стандарти як POSIX і IEEE, а розроблювачі продовжують поповнювати її новими продуктами і властивостями. QNX може в даний час функціонувати на машинах із процесорами від і8088 до і80486, включаючи PS/2. QNX підтримує 255 вузлів мережі (процесорів), що можуть спільно використовувати програми, файли і периферійні пристрої. QNX у середньому виконує операції в 20 разів швидше, ніж UNIX, забезпечуючи цілком роботу мережі, при цьому вона вимагає 140КБ оперативної пам'яті. QNX мається эмулятор РС-DOS.
У 1980 році студенти канадського Університету Ватерлоо Гордон Белл і Ден Додж закінчили вивчення базового курсу з розробки операційних систем, в ході якого вони створили основу ядра, здатного працювати в реальному часі. Розробники були переконані, що в їх продукті була комерційна потреба, і переїхали в місто Каната в провінції Онтаріо (місто високих технологій, іноді це місце називають північною Силіконовою долиною Канади) і заснували компанію Quantum Software Systems. У 1982 році була випущена перша версія QNX, що працює на платформі Intel 8088. Одне з перших застосувань QNX, що набули поширення, не відносилося до вбудованих систем - вона була обрана для власного комп'ютерного проекту Міністерства освіти Онтаріо, Unisys ICON. У ті роки QNX використовувалося в основному тільки для «великих» проектів, так як ядро, що має розмір 44 кілобайт, було занадто великим, щоб працювати на однокристальних чіпах того часу. У середині 1980-х років була випущена QNX 2. Завдяки своїй надійності, система мала завидну репутацію і отримала широке розповсюдження для управління промисловими машинами. QNX 2 і зараз іноді застосовується у відповідальних системах. У середині 1990-х в Quantum зрозуміли, що на ринку швидко завойовує популярність POSIX, і вирішили переписати ядро, щоб воно було більш сумісним на низькому рівні. Так з'явилася QNX 4. Вона була доступна з вбудованої графічної підсистемою, названої Photon microGUI, імпортований під QNX версією X Window System. Перенесення програм в QNX 4 з операційних систем, заснованих на Unix, стало набагато простіше, також були прибрані багато хто з «примх» більш ранніх версій. Також, на початку 1990-х компанія була перейменована в QNX Software Systems (QSS), щоб уникнути плутанини з іншими компаніями, в першу чергу з виробником жорстких дисків, які мають таке ж ім'я.
В кінці 1990-х було вирішено створити операційну систему, що відповідає свіжої редакції POSIX і в максимальному ступені сумісну з NetBSD та GNU / Linux, в той же час зберігши передбачувана поведінка і мікроядерну архітектуру. Результатом цих розробок стала QNX Neutrino, випущена в 2001 році. Ця версія поставляється разом з QNX Momentics Tool Suite, середовищем розробки програмного забезпечення (IDE), заснованої на Eclipse IDE, різними утилітами GNU і програмним забезпеченням, орієнтованим на Інтернет: веб-браузерами Voyager і Mozilla, а також веб-сервером. На відміну від попередніх версій, які працювали тільки в PC-сумісних архітектурах, QNX 6 легко адаптується практично до будь-якої конфігурації. Крім того, особливу увагу було приділено опрацюванню архітектури з тим, щоб її можна було ефективно масштабувати: як «вгору» (додаючи нові сервіси та розширюючи функціональність), так і «вниз» (урізуючи функціональність, щоб «втиснутися» в обмежені ресурси). Іншими словами, QNX 6 можна встановити там, де QNX 4 не вмістилася б. Також, в QNX 6 всі драйвери були приведені до єдиної моделі і всі інтерфейси стали відкритими.
жовтня 2004 компанія QSS була куплена міжнародною корпорацією Harman, активно працює на ринку мультимедійних пристроїв і систем автомобільної електроніки, але далекої від розробки ОС реального часу. При цьому Harman зберегла повну автономію компанії QSS, а генеральний директор компанії Ден Додж одночасно зайняв пост віце-президента корпорації Harman з інформаційних технологій. Після 2004 року інтерес у світі як до QNX, так і до конкуруючих продуктів, почав згасати. QNX зберегла популярність в основному в Японії, Німеччини, Росії та, останнім часом, у Китаї завдяки активному розвитку ринку автомобільної електроніки та інтегрованих систем управління виробництвом.
Восени 2007 року компанія QNX Software Systems приступила до поетапного відкриття вихідного коду QNX Neutrino на умовах ліцензії гібридного типу в рамках спільноти Foundry27. Ця ліцензія дозволяє ентузіастам безкоштовно отримувати доступ не тільки до вихідних текстів операційної системи, а й до інструментальних засобів. При цьому для комерційного використання QNX Neutrino як і раніше необхідно купувати відповідні ліцензії. Крім того, ліцензія QNX Neutrino прямо забороняє проведення сертифікацій продуктів, похідних від вихідного коду QNX Neutrino, без письмового дозволу компанії QSS. У вересні 2009 року на порталі Foundry27 був створений проект, призначений для супроводу QNX4 в публічній формі. 9 квітня 2010 канадська компанія Research In Motion, що володіє брендом BlackBerry, уклала угоду про викуп у компанії Harman International підрозділу, що займається розробкою QNX. У цей же день на сайті Foundry27, з'явилося оголошення, що доступ до вихідного коду QNX для широкої громадськості з цього моменту обмежений. 27 вересня 2010 на конференції BlackBerry DEVCON-2010 був представлений планшетний комп'ютер BlackBerry PlayBook c BlackBerry Tablet OS на основі QNX Neutrino.
Під системою реального часу розуміється така інформаційна система, в якій коректність вихідної інформації залежить не тільки від правильності застосованих алгоритмів, а й від часу появи результатів обробки інформації. Тобто при запізненні результатів вони або можуть бути марними, або збитки в результаті запізнення можуть бути нескінченно великий.
Цей часовий критерій умовно розділив операційні системи на два класи - операційні системи загального призначення (General Purpose Operation Systems - GPOS) та операційні системи реального часу (Real Time Operation Systems - RTOS).
Основне завдання операційних систем загального призначення - ефективне розподіл ресурсів ЕОМ (таких як процесорний час, оперативна пам'ять та інші) між декількома програмами які одночасно виконуються. Такі операційні системи поставляються з багатим набором прикладних програм і мають розвинений графічний інтерфейс, що дозволяє користувачам працювати з додатками, не замислюючись над внутрішніми механізмами ОС.
А операційні системи реального часу (ОСРЧ) розробляються в розрахунку на наявність зовнішніх джерел даних. Основне завдання ОСРЧ - своєчасно обробити запит, всі інші аспекти функціонування ЕОМ відходять на другий план. Тому ОСРЧ поставляються в комплекті з різноманітними засобами розробки програм. Іншими словами, покупцями ОСРЧ є не кінцеві користувачі, а розробники програмного забезпечення.
Часто при розмові кажуть про операційні системи «м'якого» і «жорсткого» реального часу. ОС жорсткого реального часу гарантує виконання якихось дій за певний інтервал часу. А ОС м'якого реального часу, як правило, встигає виконати задані дії за заданий час. Тобто ОС м'якого реального часу виконує завдання з якимось значенням ймовірності.
QNX - це сімейство операційних систем жорсткого реального часу, орієнтованих головним чином на ринок вбудованих систем. Вона забезпечує всі невід'ємні складові системи реального часу: багатозадачність, диспетчеризацію програм на основі пріоритетів і швидке перемикання контексту. QNX - дивно гнучка система. Розробники легко можуть налаштувати операційну систему таким чином, щоб вона відповідала вимогам конкретних програм. QNX дозволяє створити систему, що використовує тільки необхідні для вирішення вашої задачі ресурси. Конфігурація системи може змінюватися в широкому діапазоні - від ядра з кількома невеликими модулями до повноцінної мережної системи, яка обслуговує сотні користувачів.
Таке призначення вимагає від ОС максимального використання особливостей апаратури. Тому ОС QNX різних версій, а точніше поколінь, не мають між собою двійковій сумісності. Звичайно, розробники при створенні нових «версій» QNX використовують кращі рішення з попередніх версій і залишаються вірними фундаментальним концепціям QNX. Для комерційного використання доступно три сімейства ОС QNX: QNX2, QNX4 і QNX6:
ñ ОС QNX 2 мало поширена в Україні. По-перше, до 1991 року система була заборонена до вивозу з Північної Америки як стратегічний ресурс. По-друге, ЕОМ на базі процесорів Intel 286 майже повсюдно вийшли з ужитку.
ñ ОС QNX 4 використовує захищений режим, тому може застосовуватися на процесорах не нижче Intel 386. QNX 4, мабуть, найпоширеніша на сьогоднішній день ОС QNX в промисловості. Остання її версія - 4.25 патч G (вийшла на початку 2003 року). Компанія QSS не розвиває цю ОС, але продовжує випускати до неї драйвера для нових пристроїв.
ñ ОС QNX 6 (або QNX Neutrino) завдяки цікавим і незвичайним архітектурним рішенням може використовуватися не тільки на х86-сумісних ЕОМ і ще більш зручна для вбудовування, ніж QNX 4. QNX Neutrino розробляється з повною підтримкою специфікацій POSIX, крім того, розробники системи прагнуть забезпечити максимальну переносимість в QNX вихідних кодів, написаних для ОС Linux. Це значно полегшує портування вільно поширюваного ПЗ в QNX і, з іншого боку, забезпечує «переносимість» для розробників - прикладний програміст, що знає будь-яку UNIX-подібну ОС, може приступати до розробки прикладного ПЗ для QNX без переучування. Остання версія QNX Neutrino - 6.3.
З точки зору QNX всі інстальовані копії ОС відносяться до двох категорій: інструментальні системи і цільові системи.
Інструментальна система (або середовище розробки) - це ЕОМ з засобами, що дозволяють формувати образ цільової системи. Такі кошти включені тільки в комерційні дистрибутиви пакету розробника QNX Momentics.
Цільова система (або середовище виконання) призначена для експлуатації. Середовище виконання фактично являє собою інструментальну систему, з якої видалено все непотрібне для даної прикладної задачі.
Дистрибутив - це спосіб поставки інструментальних систем. Іншими словами, QSS продає саме інструментарій розробки. Середовища виконання формуються розробником самостійно, але для поставки їх кому-небудь ще потрібно купівля ліцензій на відповідне число копій середовища виконання (їх називають «модулі Run-Time»). Така політика дозволяє істотно знизити вартість цільових систем.
Слід звернути увагу, що кошти розробки поставляються в чотирьох варіантах - для Microsoft Windows ХР, Sun Solaris (тільки для SRARC-версії), Linux і, зрозуміло, для QNX.
Цільові системи можуть генеруватися для декількох апаратних платформ (ARM, MIPS32, StrongARM, SH4, PowerPC, Xscale, x86). Цей список, ймовірно, буде поповнюватися.
Висуваючи на ринок ОС QNX 6, компанія QSS випустила два дистрибутива:
ñ QNX Real Time Platform (QNX RTP) - повнофункціональна середовище розробки; поширювалася безкоштовно для некомерційного використання. У разі комерційного використання системи розробник повинен був придбати відповідну ліцензію у QSS;
ñ QNX Networking Infrastructure Platform (QNX NIP) - чисто комерційний дистрибутив, що представляє собою розширення QNX RTP додатковими програмними пакетами, орієнтованими на виробників мережевого устаткування.
З виходом версії 6.2 компанія QNX QSS дещо змінила підхід до формування дистрибутивів. Пакет розробника, що включає в себе ОСРВ QNX, графічну середу Photon, інструменти розробки і різне додаткове ПЗ, отримав назву QNX Momentics. В даний час випущено кілька дистрибутивів QNX Momentics:
ñ Non-Commercial Edition (NC) - ознайомчий комплект розробника, безкоштовний для некомерційного використання;
ñ Standard Edition (SE) - пакет розробника, що дозволяє вести комерційну розробку ПЗ, в тому числі формувати цільові системи для різних платформ;
ñ Professional Edition (PE) - розширений пакет розробника, доповнений інтегрованим середовищем розробки QNX IDE, заснованої на технології Eclipse, а також розширеною базою прикладів у вихідних текстах і рядом додаткових компонентів.
Детальна інформація по комплектації дистрибутивів Momentics доступна як у QSS, так і у її партнерів. Професійний комплект QNX Momentics вважається базовим (тобто SE - фактично є урізаним РЕ). РЕ може доповнюватися пакетами розширення (Bundles) для різних цільових ринків.
Для доступу до багатьох розділів сайту qnx.com і громаді Foundry27 потрібна реєстрація. Реєстрація проста і не займає багато часу. Для реєстрації треба зайти на сайт www.qnx.com і перейти за посиланням Login, розташованої у верхньому правому куті. Після цього слід вибрати пункт New member? після чого відкриється форма реєстрації в нижній частині екрана. Тепер залишилося вказати e-mail, ввести та підтвердити пароль і натиснути кнопку Create Account. Для закінчення реєстрації знадобиться заповнити невелику анкету і отримати код підтвердження електронною поштою, який необхідно вказати у формі на наступній сторінці. На цьому реєстрація закінчується, тепер можна завантажити дистрибутив QNX.
Якщо лист з ліцензійним ключем буде втрачено, то його завжди можна буде подивитися в профілі на qnx.com.
Архітектура - це те, чим QNX, незважаючи на велику зовнішню схожість, відрізняється від операційних систем сімейства UNIX. Саме архітектура робить QNX операційною системою жорсткого реального часу.
Центральним поняттям в QNX є мікроядро. Грубо кажучи, мікроядро (якраз його-то і звуть Neutrino) майже нічого само не робить, а є свого роду комутуючим елементом, до якого за допомогою додаткових програмних модулів додається та чи інша функціональність.
Мікроядро операційної системи QNX-6 реалізує основні сервіси операційної системи та багатопотоковість безпосередньо у мікроядрі, і тому такі сервіси доступні без наявності додаткових модулів. Мікроядро Neutrino підтримує такі сервіси (об’єкти):
ñ потоки;
ñ повідомлення;
ñ сигнали;
ñ годинник;
ñ таймери;
ñ програми обробки переривань;
ñ семафори;
ñ взаємно-виключні блокування (mutexes);
ñ умовні змінні (condvars);
ñ бар'єри.
Сервіси, які включені до складу мікроядра, обрані за коротким шляхом виконання. Інші сервіси, які потребують істотну роботу (наприклад завантаження процесу на виконання), реалізовані зовні мікроядра на різних процесах чи потоках. Так, менеджер процесів procnto розширює сервіс, наданий ядром Neutrino, забезпечуючи підтримку процесів, захист пам'яті та адміністрування області файлових шляхів, додаючи при цьому тільки 32 кілобайти коду.
При створенні системи реального часу часто є необхідним паралельне виконання декількох процедур водночас. В мікроядрі Neutrino паралелізм роботи досягається завдяки використанню моделі потоків за стандартом POSIX (Portable Operating System Interface for Unix), який визначає процес як контейнер, що містить в собі один чи більшу кількість потоків виконання.
Крім мікроядра в ОСРВ QNX є ще один важливий компонент - адміністратор процесів. Мікроядро Neutrino скомпоновано з адміністратором процесів в єдиний модуль procnto - головний (і єдиний безумовно необхідний) компонент QNX. Якщо нам треба, щоб система реально робила якусь роботу, ми повинні запустити процес, що виконує цю роботу. Програми, що реалізують сервісні функції, називають адміністраторами ресурсів. Є адміністратори ресурсів, що забезпечують доступ до дисків, мережі та інше. Всі ці програми пов'язані воєдино мікроядром і злагоджено взаємодіють за допомогою механізму повідомлень.