13AMP 11. přednáška Ing. Martin Molhanec, CSc.
Co jsme se naučili naposled Co je to RT systém Co je to RT systém Velké RT systémy Velké RT systémy Klasické RT systémy Klasické RT systémy DOS based RT systémy DOS based RT systémy
Windows NT jako RT systém Multithread + preemptible - ANO Multithread + preemptible - ANO Thread priority has to exist – MÁLO Thread priority has to exist – MÁLO Support predictable thread sync. Mechanisms - NE Support predictable thread sync. Mechanisms - NE System of priority inheritance has to exist - NE System of priority inheritance has to exist - NE OS behaviour should be known - NE OS behaviour should be known - NE
Windows NT jako RT systém MOTIVACE WIN32 API je rozšířené a existuje pro něj mnoho levných vývojových nástrojů.
Windows NT jako RT systém ŘEŠENÍ 1. Multiprocesorová architektura RT systém je na samostatné kartě v NT, jednoduché, spolehlivé, ale drahé. Jeden počítač – dva operační systémy, které spolu komunikují! Možné použít i pro Windows 9x.
Multiprocesorová architektura PC Systém RT karta Windows OS RT OS PC periferie RT periferie RT app. Windows app. Windows OS RT OS
Windows NT jako RT systém ŘEŠENÍ 2. Emulace WIN32 API RT systém emuluje WIN32 API, vývoj může bez RT vlastností probíhat na NT, nedokonalé, je obtížné emulovat celé WIN32 API. Je možné i pro Windows 9x.
Emulace WIN32 API WIN 32 API PC Systém RT OS PC periferie RT periferie Windows app. RT app.
Windows NT jako RT systém ŘEŠENÍ 3. Modifikace HAL Efektivní, závislé pouze na změnách v HAL (NT4 NT5 ). HAL upřednostňuje RT před NT. NT systém pracuje jako úloha skutečného RT systému!
Modifikace HAL PC Systém PC periferie RT periferie RT OS Windows app. RT app. HAL Windows NT Hardware Abstraction Layer
Windows NT jako RT systém ŘEŠENÍ 4. Využití NMI NMI slouží jako časovač preemtivního multitasku pro RT systém. Windows OS NMI nevyužívá. Je nutný buď speciální HW doplněk nebo speciální MB. Jde použít i pro RT pro Windows 9x!
Využití NMI PC Systém PC periferie RT periferie RT OS Windows app. RT app. NMI hook Windows NT Přesměrování IRQ na NMI
Windows based RT INtime(RadiSys) modifikovaný HAL, 256 urovní priority, real TCP/IP stack, based on iRMX from INTEL INtime(RadiSys) modifikovaný HAL, 256 urovní priority, real TCP/IP stack, based on iRMX from INTEL RTX for Windows NT (VenturaCOM) modifikovaný HAL, podobné jako INtime NT – 13 až 95 μs RXT – 7 až 14 μs RTX for Windows NT (VenturaCOM) modifikovaný HAL, podobné jako INtime NT – 13 až 95 μs RXT – 7 až 14 μs
Windows based RT Willows RT on QNX emulace WIN32 API, based on WILLOWS od Willows Software WILLOWS RT – RT varianta pro Photon microGUI Willows RT on QNX emulace WIN32 API, based on WILLOWS od Willows Software WILLOWS RT – RT varianta pro Photon microGUI LP-VxWin (LP Elektronik) LP-VxWin (LP Elektronik) Současný běh VxWorks a Windows Lite – sw. řešení přes ISA IRQ (není RT) RTAcc – RT řešení, využívá NMI, added HW LC20 – added board s 86K (RT)
LINUX based RT RTLinux – GPL, Victor Yodoiken, Michal Barabanov, New Mexico Institut of Technology. Řešení pro Linux je postaveno podobně jako řešení s HAL pro Windows NT. Jadro Linuxu je upraveno, což je vzhledem k otevřenosti systému možné, tak aby se IRQ přesměrovaly do RT subsystému. Vlastní Linux pak běží jako úloha RT subsystému!
LINUX based RT RT úlohy RT kernel HW Linux kernel Linux úlohy RT fifo
LINUX based RT 1. Instrukce cli() v Linux kernelu jsou virtualizovány - skutečnou obsluhu provádí RT kernel. 2. RT Linux bude přijat do standardní distribuce. 3. IPC (Inter Process Communication) prostřednictvím RT FIFO.
LINUX based RT Strana Linuxu, čtení z RTfifo. Cat /dev/rtf0 > logfile Strana RT, čtení HW a zápis do RTfifo. while(1){ /* read data from HW */ rtf_put(….);/* píše do RTfifo */ rt_task_wait();/* čeká na IRQ */ }
LINUX based RT RTAI (Dipartimento di Ingegnenia Aerospaziale, Politecnico di Milano) Trochu jiná koncepce nežli RTLINUX, je efektivnější, ale nikoliv tak transparentní. RTHAL – RT HW App. Layer RTAI – RT App. Interface
LINUX based RT BlueCat (LynuxWork – dříve Lynx) RT Linux aplikačně a vývojově kompatibilní s Lynx OS. Vhodný pro embeded systémy. Je postaven na distribuci RedHat 6.2 a 2.2 kernelu.