Operační systémy pro systémy sběru dat (=DAQ systems). Vývoj aplikačních programů.
Operační systémy pro DAQ z RTOS z VxWorks z Windows CE z RTX z LabVIEW RT A3B38PRT Přístrojová technika - přednáška 4
Úvod Volba operačního systému (OS) řídicího počítače je nedílnou součástí návrhu automatizovaných systémů pro měření, testování nebo sběr dat. Viz 3. přednáška - VXIplug&play, Systémové rámce
Názvosloví (česko/anglické) Automatizovaný měřicí systém též Systém pro sběr dat Data AcQuisition System (DAQ system) Automatizovaný testovací systém Automatic or Automated Test Equipment (ATE) Testované zařízení Device Under Test (DUT)
Operační systém (OS) Operační systém je software který: z řídí provádění uživatelských programů, z funguje jako rozhraní mezi aplikačním programem a fyzickými prostředky (resources) počítače, z spravuje všechny fyzické prostředky počítače, vytváří lepší, jednodušší, přehlednější prostředí pro efektivní využití počítače.
Operační systém – začlenění v počítačovém systému
[1] Stallings, W.: Operating Systems. 4th Ed.Prentice Hall, New Jersey, 2001.
Typy OS vhodné pro DAQ systémy Univerzální OS (General Purpose OS) Vhodný pro většinu aplikací pro „běžné“ laboratorní měření a testování. Příklady: Windows XP/Windows7/Windows8, Macintosh OS, Linux. RTOS (Real Time OS) Vhodný pro aplikace náročné na zpracování v reálném čase (měření a řízení průmyslových a náročných laboratorních procesů). Hard/firm/soft RTOS. Příklady: VxWorks, RT Linux, RTX, PharLap, Windows CE, …(a většina Embedded OS).
Typy OS vhodné pro DAQ systémy
Vestavěné OS (Embedded OS) OS pro vestavěné systémy (řídicí počítač je zabudován do zařízení, které ovládá; často se jedná o jednočipový mikropočítač). Většinou mají vlastnosti RTOS. Příklady: uCLinux, FreeRTOS, Android, QNX, Symbian
RTOS (Real Time Operating System) Non real-time OS zpravidla vyhovuje pro „běžné“ DAQ systémy. Vlastní měření (a řízení) probíhá vždy v reálném čase, ale tuto činnost zajišťuje HW (přístroje, měřicí moduly, sběrnice a rozhraní). Pokud by podmínka měření v reálném čase byla porušena - např. přeplnění paměti digitizéru a neuložení dat do operační paměti (nebo na disk) počítače v důsledku neefektivního plánování procesů operačním systémem – je nutné zvolit vhodný real-time OS.
RTOS (Real Time Operating System) V případě real-time OS při provádění uživatelských programů nezáleží pouze na výsledku operace, ale rovněž na čase, kdy je tato operace dokončena !!! Systém reálného času reaguje předvídatelným způsobem na nepředvídatelné vnější události. RT požadavky musí splňovat všechny komponenty systému, jak HW (řídicí počítač včetně periferií + přístrojový HW), tak SW (OS, ovladače, aplikační program) !!!
Typy RTOS Hard real-time Nesplnění časových požadavků má pro systém katastrofální následky. U těchto systémů se sledují nejhorší možné (worst-case) případy. Firm real-time Nesplnění časových požadavků má za následek nepřijatelné snížení kvality systému. Soft real-time Snížení kvality systému při nesplnění časových požadavků je akceptovatelné, systém se z chyby dokáže zotavit. Většinou se pro takový systém udává rozložení pravděpodobnosti nepříznivých případů.
Základní vlastnosti RTOS RTOS musí být: preemptivní vícevláknový se systémem priorit pro jednotlivá vlákna a se systémem dědění priorit.
RTOS se musí chovat předvídatelným způsobem, tzn. reakce jsou definované v čase (=maximální zpoždění na asynchronní přerušení), nezávislé na stavu systému (zatížení systému a délce systémových front).
Příklady RTOS VxWorks 6.0 - charakteristika Architektura typu klient-server. Systém je založen na mikrojádře (implementuje multitasking, plánování, meziúlohovou synchronizaci a komunikaci, správu paměti) . Ostatní funkce zajišťují samostatné procesy (servery). Systém je vysoce škálovatelný – volbou různých modulů lze systém nakonfigurovat pro použití v embedded systémech s malou pamětí nebo nakonfigurovat pro komplexní rozsáhlé systémy s mnoha funkcemi. Navíc i jednotlivé moduly jsou dále škálovatelné.
VxWorks 6.0 - komunikace Standardní způsoby komunikace VxWorks (fronty zpráv) doplňují tzv. kanály zpráv (message channels) obousměrný spojově orientovaný mechanismus výměny zpráv mezi dvěma různými úlohami.
Architektura VxWorks 6.0
VxWorks 6.0 – zpracování úloh Multitaskový model ve verzi 6.0 podporuje tzv. real-time procesy (RTP), které běží v uživatelském prostoru. Součástí procesu je jedna čí více úloh (tasks) - de facto vláken. V prostoru jádra běží další úlohy (kernel tasks) - známé z předchozích verzí VxWorks. Každý proces běží ve vlastním virtuálním paměťovém prostoru, stejně tak prostor jádra a uživatelský prostor je izolován. Je možný i provoz bez ochrany paměti.
VxWorks 6.0 – zpracování úloh Plánovač VxWorks nabízí dva algoritmy: POSIX plánování a tzv. wind scheduling. Rozdíl mezi algoritmy: wind scheduling je platný pro celý systém, POSIX algoritmus se aplikuje zvlášť na jednotlivé procesy. Oba algoritmy používají prioritní preemptivní plánování a plánování Round-Robin (RR). K dispozici je 256 úrovní priorit.
VxWorks 6.0 – další vlastnosti Podpora vícejádrových CPU: SMP, AMP (Symmetric/Asymmetric multiprocessing) Podporované CPU: Freescale, IBM PowerPC, Intel x86, MIPS32. API: Velmi bohatá množina z IEEE 1003.1 (POSIX). Podpora sítí: Škálovatelný IPv4/IPv6 TCP/IP stack založený na portu z FreeBSD (sockets); RPC protokol verze 2; protokoly pro přenos souborů RSH, FTP, TFTP, Telnet; DHCP.
VxWorks 6.0 – vývojové prostředky Integrované vývojové prostředí Wind River Workbench pro Windows, Unix a Solaris. Obsahuje: správu projektů, build system, editor, analyzátor zdrojových kódů, debugger (s podporou on-chip debugging pro ladění HW), kompilátor Wind River Compiler a GCC, průzkumník systému System View, simulátor VxWorks Simulator, příkazový řádek Host Shell, příkazový řádek jádra Kernel Shell a další nástroje pro real-time monitorování a analýzu kódu. Je možné sestavit aplikaci pro OS VxWorks i pro Linux. Viz: http://www.windriver.com/
Windows CE 5.0 - charakteristika Windows CE 5.0 - hard RTOS. Modulární, vysoce škálovatelný a robustní OS. Jádro - relativně jednoduché, volitelné části systému jsou spouštěny jako samostatné procesy – tím se stává systém spolehlivějším. Výhoda: umožňuje používat technologie z GPOS Windows (COM/DCOM, .NET Framework, DirectX, Windows Media,…).
Windows CE 5.0 - architektura
Windows CE 5.0 – další vlastnosti Podporované CPU: MIPS, ARM, SH, x86. Úlohové zpracování: „Klasický“ preemptivní víceúlohový OS s podporou procesů i více vláken v rámci jednoho procesu. Prioritní plánování (256 úrovní priorit). Vlákna se stejnou prioritou jsou plánována na základě algoritmu RR. Časové kvantum je přidělováno zvlášť jednotlivým vláknům. Počet současně běžících procesů je omezen na 32, počet vláken je omezen velikostí RAM.
Windows CE 5.0 – další vlastnosti Synchronizace: Synchronizační objekty ve Windows CE zahrnují objekty ochranné – kritické sekce (použitelné v rámci jednoho procesu), mutexy a semafory a objekty komunikační – události, fronty zpráv (viz 5. přednáška). Pozitivní vlastnost - ochranné objekty vždy používají systém dědění priorit kvůli zabránění inverze priorit !!! Další možnost komunikace mezi procesy - sdílení paměti.
Windows CE 5.0 – další vlastnosti API: Windows CE 5.0 implementují podmnožinu funkcí Win32 API. Rozhraní POSIX není implementováno. Vývojové nástroje: Pro systémové programátory - uživatelsky „příjemné“ prostředí aplikace Platform Builder; spouští se na hostitelském počítači; na cílovém počítači je nainstalován Windows CE. Aplikační programátoři používají prostředí eMbedded Visual C++.
RTX – úvod
RTX není samostatný RTOS, ale rozšíření MS Windows o reálný čas. MS Windows jako obecný (non real-time) operační systém nedovoluje aplikacím ani ovladačům na úrovni jádra zcela maskovat přerušení a získat kontrolu nad operačním systémem. Podle použitého hardware mohou latence přerušení dosahovat minimální hodnoty kolem jedné mikrosekundy, v nejhorším případě mohou přesáhnout až stovky milisekund. Kvůli tomu je standardní desktop nebo serverový OS Windows nepoužitelný pro časově kritické aplikace.
RTX – princip řešení RTX umožňuje zkombinovat technologii a uživatelské prostředí Windows s vlastnostmi pevného reálného času v izolovaném a kontrolovaném subsystému. RTX se skládá z rozšíření Windows HAL a odděleného real-time subsystému (RTSS), který plánuje a řídí všechny RTSS aplikace nezávisle na Windows (viz následující obrázek).
RTX - architektura
RTX – princip řešení Ve sdílené konfiguraci sdílí RTX a Windows jeden procesor, ale real-time subsystém dává RTSS aplikacím vyšší prioritu před všemi Windows aplikacemi nebo funkcemi operačního systému. Ve vyhrazeném prostředí real-time subsystém plánuje RTSS úlohy na oddělené procesory, kde jsou vykonávány bez jakéhokoliv zasahování ze strany operačního systému nebo procesů Windows. „Běhové“ prostředí RTX může být nastaveno tak, že převezme kontrolu a bezpečně ukončí real-time procesy v případě selhání Windows.
Symetrický multiprocesing v RTX Řešení SW modulu časové základny v RTX s využitím HW podpory síťové karty.
Praktická ukázka chování MS Windows a RTX při identifikaci HW událostí v čase (timestamping)
Zjištěné parametry a porovnání Windows bez RTX a s RTX: Windows
Windows + RTX
Přesnost
10 ms
100 µs a lepší
Latence
> 5 ms
< 25 µs
Plánování
nedeterministické
deterministické
Vývoj SW modulu časové základny v RTX s využitím HW podpory síťové karty.
LabWindows Real Time / LabVIEW RT Hard RTOS společnosti National Instruments postavený na ETS PharLap. Jako vývojové prostředí se používá LabWindows/CVI nebo LabVIEW.
LabWindows Real Time – vývoj aplikace SW komponenty nutné pro vývoj programů v LabWindows/CVI RT.
LabWindows/CVI Real Time Vývoj aplikace pomocí systému host/target Cross-development, cross-debugging též host ≠ target Metoda vývoje a ladění aplikací se dvěma oddělenými počítači propojenými např. sériovým nebo paralelním kabelem, LAN apod. Na hostitelském počítači (host) běží GPOS (např. MS Windows), který poskytuje komfortní prostředí pro vývoj cílové aplikace. Na cílový počítač (target) s RTOS (např. LabWindows/CVI RT) je aplikace nahrána a pak odlaďována.
LabWindows/CVI Real Time Vývoj aplikace pomocí systému host/target
LabWindows Real Time – vývoj aplikace
Praktická ukázka
Ukázka použití vývoje RT aplikace v prostředí LabWindows/CVI.