Systémy reálného času
V průmyslových aplikacích automatizace se lze často setkat s požadavkem, aby systém pracoval v reálném čase. Čtenáři časopisu Automa znají z již publikovaných článků, jejichž seznam je připojen za touto statí, funkci i příklady aplikací doplňku RTX, který rozšiřuje operační systém Windows o schopnost pracovat v reálném čase. Mají i základní informace o operačním systému reálného času VenturCom ETS, dříve známém jako PharLap ETS.
V tomto referátu rekapitulujeme význačné rysy a vlastnosti obou aplikací, dodávaných na český trh firmou dataPartner.
Co dokáže RTX
RTX přináší do operačního systému Windows schopnost pracovat v pevném reálném čase. Po nainstalování tohoto doplňku k Windows NT/2000/XP může programátor s využitím volání funkcí jeho vývojového prostředí (SDK) ze svého programu přímo přistupovat k hardwaru, je umožněno lepší plánování priorit a je implementován nový model přerušení na bázi vláken a přímý přístup k paměti. RTX má nejmenší možný paměťový zábor, protože účelně používá paměťové zdroje. Poskytuje tak více prostoru pro aplikace. S RTX lze dosáhnout vysokého stupně uživatelské kontroly nad systémem. Tento doplněk dokáže to, co Windows samy neumějí: zotavit uživatelské aplikace po kritické chybě operačního systému (blue screen) nebo např. nastavit programovým vláknům libovolnou prioritu ze 128 definovaných úrovní. Nastavitelná je také velikost časového kvanta, přidělovaného procesoru pro elementární běh programových vláken.
Aplikace s RTX mohou startovat již v průběhu zavádění operačního systému (boot), tj. maximálně několik sekund poté, co se na obrazovce nebo displeji objeví úvodní logo Windows. Sdílení dat mezi prostředím reálného času RTSS (Real Time Subsystem) a prostředím Win32 (Windows) zajišťuje RTX pomocí meziprocesní komunikace nebo přes sdílenou paměť. RTX obsahuje nezávislý plánovač běhu programových vláken RTSS, který může běžet v popředí i při obsluze vlákna přerušení Windows. RTX také podporuje multiprocesorové desky (vyhrazený nebo sdílený procesor RTSS). Je to jediný produkt, jenž podporuje vestavěný (embedded) multiprocesor.
Součástí RTX jsou podpůrné nástroje a doplňky pro vývojáře:
- Application Wizard (obr. 1) je průvodce pro zakládání aplikace.
- Object Viewer (obr. 2) zajišťuje správu konfigurací jádra RTX.
TimeView je určen pro časovou analýzu vzniklých událostí, které zaznamenává v přirozeném pořadí, s časovými značkami volitelné systémové a aplikační události. Ukazuje sled spouštění a časování událostí, přerušení, přepínaní kontextů vláken a vzájemné interakce aplikací.
VenturCom ETS
VenturCom ETS je kompaktní operační systém na bázi aplikačních funkcí Win32 API, podrobně popsaný v [1] (ještě pod původním názvem PharLap ETS). Má vlastní 32bitové mikrojádro, které zaujímá méně než 100 kB, a deterministický plánovač typu Round-robin. Vždy „poběží“ povolené programové vlákno s nejvyšší prioritou a bude aktivní do doby, kdy buď bude zablokováno jiným právě povoleným vláknem s vyšší prioritou, nebo, je-li povoleno časové sdílení procesoru vlákny se stejnou prioritou, až vyprší sdílený časový interval a bude zde jiné povolené vlákno se stejnou prioritou. ETS dává programátorům možnost nastavit programovým vláknům libovolnou úroveň z 32 definovaných úrovní priorit.
Program v ETS je realizován formou multi-tasking, na bázi současného vykonávání programových vláken, jichž počet může být neomezený. Plánovač běhu vláken programu eliminuje vznik chybového efektu inverze priorit (dead-lock). Jádro ETS dovoluje programátorům napsat snadnou a efektivní obsluhu hardwarového přerušení i strukturovanou obsluhu programových výjimek (softwarová přerušení). V jádru ETS jsou implementovány binární synchronizační objekty, jako semafory, kritické sekce, obsluha událostí (events) a správa paměti, která se programátorům jeví jako lineárně adresovatelný prostor do velikosti 4 GB.
ETS používá programová vlákna k vykonávání více úloh v rámci jednoho procesu, takže má nejmenší možnou režii pro přepínání kontextů úloh. Je tomu tak proto, že je zde zapotřebí nejmenší možné množství registrů a dalších informací, které musí být ukládány a obnovovány v průběhu přepínání výkonu základních úloh pro jednotlivá vlákna. Tato skutečnost dělá z VenturCom ETS neobyčejně rychlý a současně hardwarově nenáročný operační systém pevného reálného času.
Postavení tohoto operačního systému vzhledem k operačním systémům obdobných vlastností je na obr. 3.
Jako vývojové prostředí (IDE) používá ETS Microsoft Visual Studio C++ nebo Microsoft .NET. V tomto prostředí je vedena správa projektu, editace zdrojových textů programů, kompilování a ladění aplikace. K propojení kompilovaného kódu (linking) používá ETS svůj Linker/Locator, který se po nainstalování balíčku SDK (Software Development Kit) stane spolu s nástrojem Crossdebuger součástí aplikace MS Visual Studio. Projekty ETS tak využívají všechny nástroje aplikace Visual Studio automaticky, stejně jako při psaní aplikace pro Windows. Laděný strojový kód je přenesen z vývojářského počítače pomocí sériového nebo paralelního portu nebo po síti Ethernet do cílového počítače, na němž probíhá ladění programu. Využíváno je křížové ladění (cross debugging), interaktivně na obrazovce počítače vývojáře, tedy úplně stejný postup jako u programů pro Windows. VenturCom ETS umožňuje i přímé vkládání kódu assembleru do zdrojových textů programu (makra ASM_BEGIN, ASM_END).
K zakládání nového projektu nebo k údržbě projektu ETS je vhodný nástroj Visual System Builder, který představuje objekt plug-in v aplikacích Visual Studio nebo .NET.
Schéma funkčních bloků jádra a komponent ETS je na obr. 4.
Závěr
Podrobné informace o popsaných operačních systémech najdou zájemci v uvedené literatuře nebo na webové adrese firmy dataPartner (viz inzerát na předchozí straně). Firma bude mít svůj stánek i na veletrhu Amper 2004 (hala 3, sektor B, stánek 23).
Ing. Ladislav Reisner, dataPartner s. r. o.
Literatura:
[1] REISNER, L.: Operační systémy reálného času s Win32 API. Automa, 2003, roč. 9, č. 3, s. 64–66.
[2] REISNER, L.: Řídicí systém školního jaderného reaktoru VR-1. Automa, 2003, roč. 9, č. 8-9, s. 103–104.
[3] REISNER, L.: Rozhraní Win32 API v průmyslové automatizaci. Automa, 2002, roč. 8, č. 4, s. 34–36.
[4] REISNER, L.: Reálný čas ve Windows s použitím RTX. Automa, 2001, roč. 7, č. 9, s. 64–66.
dataPartner s. r. o.
Dukelská 64
370 01 České Budějovice
tel.: 386 104 311
fax: 386 104 319
e-mail: kontakt@datapartner.cz
http://www.datapartner.cz
|