Robustní řízení v reálném čase
"Real-time operační systém QNX - Potřebujete spolehlivý operační systém pro řízení průmyslových, technologických či jiných aplikací? Pokud jste odpověděli ""Ano"", přečtěte si pár údajů o operačním systému QNX. "
Text: Peter Gašparovič
QNXje komerční real-time operační systém, odpovídající standardům POSIX. Poprvé přišel na trh v roce 1981 (první mikrokernel pro PC). Současná verze má označení 6.3 (je dodávána i jako 30denní trial) a k dispozici je i vývojové prostředí QNX Momentics v6.3 ve verzích Standard a Professional.
Systém QNX je postaven na bázi mikrokernelu. To znamená, že jen mikrokernel běží v real modu a všechny ostatní programy v protected modu - tím je zajištěno, že selhání jednoho z programů nemá vliv na chod ostatních programů. Také to umožňuje rekonfiguraci systému za jeho chodu, protože všechny služby a drivery jsou realizovány jako tasky.
Systém je modulární, lze jej rozdělit na jednotlivé technologie (kernel, networking, GUI a další). Ovladače (drivery) jsou programy a paměť se jim přiděluje dynamicky. Programy mezi sebou mohou komunikovat přes SRR (send receive reply), mqueue (systém front, semaphores, pulses) - to je zřejmé z propojení na obr. 1. Systém QNX podporuje mnoho typů procesorů včetně x86 (dále např. ARM, StrongARM, XScale, PowerPC, MIPS, SH-4,...). Je to preemptivní a víceúlohový operační systém, tj. procesor je podle určitého algoritmu na krátký časový okamžik přidělován postupně všem zpracovávaným úlohám a zároveň je schopný řídit současně několik nezávislých úloh. Mezi jeho další vlastnosti patří vysoká stabilita a rozhraní dle standardu POSIX, které usnadňuje přenositelnost úloh mezi různými systémy a platformami. Samozřejmostí je i podpora symetrického multiprocessingu, kdy se jednotlivé úlohy optimálně rozdělují mezi procesory víceprocesorového stroje.
Architektura mikrokernelu
Mikrokernel je strukturován jako malé jádro (obr. 2), které poskytuje minimální služby (časovače, plánovače a signály) používané skupinou spolupracujících procesů. Všechny procesy spolu komunikují prostřednictvím jediné sběrnice zpráv (message bus), která umožňuje zapojit a vypojit libovolnou komponentu za běhu. Jádro QNX (neutrino) vyhovuje standardům POSIX a je implementováno v C, což umožňuje přizpůsobení QNX různým architekturám. Základní procesy, mezi něž patří například správce procesů (Process Manager), správce souborového systému (File System Manager), správce zařízení (Device Manager) a správce sítě, zabezpečují vyšší stupeň funkčnosti operačního systému.
Mikrokernel neobsahuje na rozdíl od monolitického kernelu (obr. 3) systémy souborů a mnoho dalších služeb, které jsou poskytovány speciálními procesy. Jádro operačního systému QNX zabezpečuje kompletní ochranu paměti (obr. 4), a to nejen pro uživatelské aplikace, ale i pro komponenty operačního systému (ovladače zařízení, systémy souborů apod.). Procesor vykoná kód jádra pouze v případě explicitního volání jádra nebo jako odpověď na hardwarové přerušení. Všechny služby operačního systému QNX (kromě služeb zabezpečovaných modulem procnto) jsou zpracovávány pomocí standardních procesů; proto je velmi jednoduché rozšířit operační systém o další služby. Systémové procesy jsou v podstatě nerozpoznatelné od některých uživatelských procesů, protože používají shodné API, a vhodně privilegované uživatelské procesy mají k dispozici i stejné služby jádra.
QNX Photon microGUI
Operační systém QNX je vybaven výkonným grafickým rozhraním Photon microGUI, které má minimální nároky na paměť a je plně konfigurovatelné. Jeho modulární stavba poskytuje vývojářům plnou volnost při vývoji grafických, multimediálních i internetových aplikací. Pro jejich tvorbu lze použít i nástroj Photon Application Builder 2.03, který je standardní součástí instalace. Instalace obsahuje i QNX Momentics Development Suite Profesional Edition 6.3.0, integrované vývojové prostředí pro vývoj aplikací v jazycích C, C++, Embedded C++ nebo Java a pro mnoho typů procesorů (např. x86, MIPS, PowerPC, ARM, StrongARM, Intel XScale Microarchitecture, SH-4); jeho základem je otevřená platforma a integrované vývojové prostředí Eclipse 2.1.2. Kromě vývojových prostředí zde najdete i nástroje pro práci s internetem, multimediální programy, a dokonce i hry. Další software si můžete do systému nainstalovat pomocí programu QNX Software Installer 2.6, který zároveň slouží i pro správu, aktivaci či odinstalaci softwaru z operačního systému QNX. QNX podporuje také šifrování, RealPlayer 7, Macromedia Flash 4, MP3, MPEG-1, MPEG-2 a další.
Závěr
Systém QNX může být použit k řízení nejrůznějších zařízení od procesoru zabudovaného v ledničce či malého PDA až po superpočítač - firma QNX jej uplatňuje například při vývoji třírozměrného navigačního systému nové generace ve spolupráci se společností 3DVU a automobilkou Daewoo. Pokud si jej chcete vyzkoušet, musíte se nejprve zaregistrovat na domovské stránce firmy QNX. Po registraci a stažení příslušného ISO souboru vám bude e-mailem zaslán licenční klíč, který vám umožní 30denní testování systému.
Pokud vlastníte iPaq, můžete si ze stránek QNX stáhnout ZIP soubor (najdete jej i na Chip DVD) s potřebnými soubory a návodem, jak systém nainstalovat. Před instalací je nutné si uvědomit, že jde o choulostivou operaci, podobně jako když upgradujete BIOS u PC, při níž se může iPaq zničit. Pokud vše vykonáte přesně podle návodu, nemusíte se žádné ztráty dat ani poškození zařízení bát - přesto před případnou instalací rozhodně proveďte plnou zálohu svého PocketPC. Na internetu lze ještě nalézt i dvě disketové distribuce (qnxdemom.zip - modemová verze, qnxdemon.zip - síťová verze), vydané firmou QNX Software Systems. Operační systém QNX je sice ve své kategorii nejúspěšnější, přesto má své konkurenty, mezi nimiž jsou nejvýznamnější systémy VxWorks, OSEK, Embedded Linux a další.
QNX
Multiplatformní real-time operační systém
Výrobce: QNX Software Systems, Ottawa, Ontario, Kanada
Poskytl: Becom Slovakia, Trenčín, Slovensko
Info: www.becom.sk
INFOTIPY
QNX Software Systems www.qnx.com
QNXZone www.qnxzone.com
QNX User Community www.openqnx.com
Verze OS QNX pro iPaq http://download.qnx.com/ipaq/ipaq.zip
Disketové verze OS QNX pro modem a pro síť http://qnx.iglu.cz
SLOVNÍK ZÁKLADNÍCH POJMŮ
POSIX, POSIX OSE (Portable Operating System Interface Open Systems Environment) -úsilí o standardizaci rozhraní operačních systémů tak, aby aplikace byly přímo kompilovatelné na různých platformách z jediného zdrojového kódu. Tato aktivita je řízena organizací IEEE, tj. není v područí žádné firmy. Existuje dvacet standardů POSIX, označených kódem od 1003.1 až po 1238.1. Tyto standardy byly původně vyvinuty pro unixové systémy, dnes je však splňují i OS Windows NT, Windows 2000 a Windows XP.
Embedded system - doslova zapuštěný, tedy včleněný systém. Jde o kombinaci hardwaru a softwaru, určenou k řízení externího procesu, zařízení nebo systému. Embedded systémy mají specifické požadavky a na rozdíl od univerzálních počítačů vykonávají předem přesně určené úlohy. Patří k nim lékařské a měřicí přístroje, řídicí jednotky pro automobily, řadiče disketových mechanik a disků, kopírovací stroje, síťová zařízení, automatizovaná domácí zařízení, mobilní telefony, hrací automaty a obdobné přístroje a zařízení.
RTOS (Real-Time Operating System) -systém, u něhož správnost výstupu nezáleží jen na logické správnosti algoritmu, ale i na zpoždění, s nímž byl výsledek dodán -pokud se časové podmínky nesplní, systém selhal. Pro zabezpečení korektního časování je nutné, aby byl systém predikovatelný.
Real time, real-time (reálný čas) - vlastnost procesu nebo zařízení, zaručující, že děje jsou vykonávány podle lidských měřítek bez znatelného zpoždění. Činnosti probíhající v reálném čase jsou důležité zejména při řízení různých zařízení a při simulacích.
Hard real time - zesílená definice v případě, že je dáno, v jakém čase se činnosti musejí vykonat; je jí dán základní rozdíl mezi jednotlivými RTOS. Jde o to, že v podstatě i ve Windows XP lze zabezpečit činnost v reálném čase, ale nelze zabezpečit exaktní přidělování úloh - pokud totiž programy ve Windows XP nepoužijí vlastní uvolnění, běží až do ukončení své činnosti. V OS QNX je hierarchickým rozložením tasků podle priorit a preemptivním řízením zabezpečeno, že se každý task určitě dostane ke slovu a zabezpečí svoji činnost.
Multitasking - současné vykonávání více programových aplikací. V tomto režimu je výpočetní čas procesoru rozdělen mezi současně běžící operace tak, že vzhledem k rychlosti procesoru vzniká dojem současného zpracování více úloh najednou.
Preemptive multitasking - typ režimu multitasking, při němž program řídící práci více úloh (tzv. scheduler) je schopen podle vlastní úvahy a priorit přerušit či pozastavit jednu z úloh a spustit jinou, samozřejmě bez zřícení probíhajících úloh, beze ztráty dat apod.
- Software - Robustní řízení v reálném čase (169.17 kB) - Staženo 1518x