PDF-File - Institut für Robotik und Prozessinformatik
Transcription
PDF-File - Institut für Robotik und Prozessinformatik
Überblick • Einführung • Realzeitbetriebssysteme • Betriebsystemarchitekturen • Interprozesskommunikation • Scheduling • Interrupt-Handling • Dateisysteme • Tools, Zubehör, etc. • Zusammenfassung - QNX Realzeitbetriebssysteme Torsten Kröger Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Aufgaben Technische Universität Braunschweig Architekturübersicht einer Robotersteuerung Hardware PCInterface Leistungselektronik PC unter ??? WinNT-PC Hardwaretreiber für Manipulator TCP/IPInterface GUI Regler MiRPA Object Server Zero++ Programm Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Realzeitbetriebssysteme µC/OS, R&D Books Miller Freeman Inc.; µITRON, TRON Association - ITRON Technical Committee; AIX, IBM; AMX, KADAK Products Ltd; Ariel, Microware Systems Corporation; ARTOS, Locamation; ASP6x, DNA Enterprises, Inc.; Brainstorm Object eXecutive, Brainstorm Engineering Company; Byte-BOS, Byte-BOS Integrated Systems; C Executive, JMI Software Systems Inc.; Chimera, The Robotics Institute Carnegie Mellon University; ChorusOS, Sun Microsystems; CMX, CMX Company; CORTEX, Australian Real Time Embedded Systems (ARTESYS); CREEM, GOOFEE Systems; CRTX, StarCom; DDC-I Ada Compiler Systems (DACS), DDC-I, Inc.; Diamond, 3L; eCos, Cygnus Solutions; Embedded DOS 6 -XL, General Software, Inc.; EOS, Etnoteam S.p.A.; ERCOS EK, ETAS GmbH & Co.KG; EUROS, Dr. Kaneff Engineering Consultants; Fusion OS, Pacific Softworks; Granada, Ingenieursbureau B-ware; Harmony Real-Time OS, Institute for Information Technology; National Research Council of Canada; Helios, Perihelion Distributed Software; HP-RT, Hewlett-Packard; Hyperkernel, Imagination Systems, Inc.; Inferno, Lucent Technologies; INTEGRITY, Green Hills Software, Inc.; INtime (real-time Windows NT), iRMX, Radisys Corp.; IRIX, Silicon Graphics, Inc.; iRMX III, RadiSys Corporation; ITS OS, In Time Systems Corporation; JBed, Oberon microsystems, Inc.; JOS, JARP micro operating system; Joshua, David Moore; LP-RTWin Toolkit, LP Elektronik GmbH; LP-VxWin, LP Elektronik GmbH; LynxOS, Lynx Real-Time Systems; MC/OS runtime environment, Mercury Computer Systems, Inc.; MotorWorks, Wind River Systems Inc.; MTEX, Telenetworks; NevOS, Microprocessing Technologies; Nucleus PLUS, Accelerated Technology Inc.; OS-9, Microware Systems Corp.; OS/Open, IBM Microelectronics North American Regional Sales Office; OSE, Enea OSE Systems; OSEK/VDX, Universität Karlsruhe ; PDOS, Eyring Corporation Systems; PERC - Portable Executive for Reliable Control, NewMonics; pF/x, Forth, Inc.; PowerMAX OS, Concurrent Computer Corporation; Precise/MQX, Precise Software Technologies Inc; PRIM-OS, SSE Czech und Matzner; pSOS, pSOSystem, Integrated Systems, Inc.; PXROS, HighTec EDV Systeme GmbH; QNX, QNX Software Systems, Ltd.; QNX/Neutrino, QNX Software Systems, Ltd.; Real-time Extension (RTX) for Windows NT, VenturCom, Inc.; Real-Time Software, Encore Real Time Computing Inc.; REALTIME CRAFT, TECSI; Realtime ETS Kernel, Phar Lap Software, Inc.; RMOS, Siemens AG; Roadrunner, Cornfed Systems, Inc.; RT-Linux, New Mexico Tech; RT-mach, Carnegie Mellon University; RTEK, Motorola; RTEMS, OAR Corporation; RTKernel-C, On Time Informatik GmbH; RTMX O/S, RTMX Inc.; RTOS-UH/PEARL, Universität Hannover; RTTarget-32, On Time Informatik GmbH; RTX-51, RTX-251, RTX-166, Keil Software; RTXC, Embedded System Products, Inc.; RTXDOS, Technosoftware AG; RxDOS, Api Software; Smx, Micro Digital, Inc.; SoftKernel, Microdata Soft; SORIX 386/486, Siemens AG; SPOX, Spectron Microsystems, Inc.; SunOS, Solaris , Sun Microsystems, Inc.; Supertask!, U S Software; SwiftOS, Forth, Inc.; ThreadX, Express Logic, Inc.; Tics, Tics Realtime; TNT Embedded Tool Suite, Phar Lap Software, Inc.; Tornado/VxWorks, Wind River Systems Inc.; TSX-32, S&H Computer Systems, Inc.; UNOS, Charles River Data Systems, Inc; velOSity, Green Hills Software, Inc.; VERSAdos Real-Time Operating System, Linden Technologies, Inc.; Virtuoso, Eonic Systems; VRTX, Microtec (Stand 3/99) Research; Windows CE, Microsoft Inc.; XOS/IA-32, Nexilis Communications Corp.; XTAL , Axe, Inc. ProgramEditor TeachBox Kollisionsschutz Sensoren TCP/IPInterface ... Hardwaretreiber für Sensoren ... Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Vergleich und Aktuelle Interessenlagen Betriebssystem QNX VxWorks AE Windows CE.NET Installation und Konfiguration RTOS Architektur API-Umfang Internet Support Tools Dokumentation und Support 7 9 7 8 7 5 4 7 8 9 8 4 5 7 7 9 8 5 Performance-Test 9 5 7 Quelle: Dedicated Systems, 2002 http://www.realtime-info.be Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig 1 Anforderungen an ein Realzeitbetriebssystem • Prozessverwaltung • Prioritätsgesteuerte Prozessorzuteilung, bei gleichzeitiger Vermeidung von Prioritätsinversion • Interprozesskommunikation • Deterministisches Zeitverhalten • Unterbrechbarkeit des Betriebssystemkerns • Möglichst kurze Interrupt-Antwortzeiten und Kontextwechselzeit Flache Architektur Applikation Applikation Gemeinsame Adressierung des Speichers ohne Speicherschutz! Dateisystem Gerätetreiber Grafikunterstützung Netzwerktreiber E/A-Manager Grafiktreiber usw... Hardware Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Technische Universität Braunschweig Hardwarezugriff bei Monolithischer Architektur Monolithische Architektur Applikation Institut für Robotik und Prozessinformatik Applikation Win32 Subsystem geschützter Speicher Win32 Client DeviceIoControl() User Mode Kernel Mode Dateisystem Grafikunterstützung Gerätetreiber Netzwerktreiber I/O-Manager E/A-Manager Erzeugt I/O Request Packet (IRP) und ruft Treiber auf monolithischer Kernel Grafiktreiber usw... Vervollständigt IRP und sendet Return Status Hardwaretreiber Hardware Hardware Windows NT Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Beispiel Linux Institut für Robotik und Prozessinformatik Beispiel RT-Linux User Applikationen User Applikationen KernelModule KernelModule KernelModule Technische Universität Braunschweig KernelModule KernelModule RT-FIFOs KernelModule RT-Tasks Shared Memory Linux-Kernel Linux-Kernel RT-Linux-Kernel-Module RT-LinuxKernel Hardware Hardware Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig 2 UPM-Architektur (Universal-Prozess-Modell) Applikation geschützter Speicher GUIManager Flache Architektur • alle Softwaremodule in demselben Adressraum (kein Speicherschutz!) • Änderungen erfordern Testung der kompletten Software Applikation E/AManager ... Mikrokernel geschützter Speicher Dateisystem Gerätetreiber Netzwerktreiber Treiber für Grafik Hardware Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Der QNX-Microkernel Prozess B Merkmale der System-Architekturen Monolithische Architektur • Anwendungsmodule in einem speichergeschützten Adressraum • „low-level“-orientierte Module (HW-Treiber, Dateisystem usw. ) sind in demselben Adressraum • Erschwerte Fehlersuche bei Systemabsturz UPM-Architektur • Erholung von Softwarefehlern ohne Neustart • nur essentielle Dienste innerhalb des Kernels • Kernel enthält nur wenig Programmcode der fehlerhaft sein könnte • unwahrscheinlich, dass ein (evtl. schlecht programmiertes) Modul den Kernel korrumpieren kann • jeder Teil des Softwaresystems lässt sich ohne Neustart beliebig starten, stoppen, verändern oder aktualisieren Institut für Robotik und Prozessinformatik Threads und Prozesse QNX 4 System Prozess C Prozess mit eigenem geschützten Adressraum Prozess A IPC Technische Universität Braunschweig Prozess mit eigenem geschützten Adressraum Netzwerk Manager Netzwerkschnittstelle QNX 6 System Interrupt- Scheduler Weiterleitung Prozess mit eigenem geschützten Adressraum Netzwerkmedien Prozess mit eigenem geschützten Adressraum Thread Thread Hardwareinterrupts Institut für Robotik und Prozessinformatik Thread Thread Thread Thread Quelle: QNX Operating System – System Architecture Technische Universität Braunschweig QNX IPC Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Message-passing mit Nachrichten I ChannelCreate() Service Implementiert im: Message-passing Kernel Signals Kernel POSIX Message Queues externen Prozess Shared Memory Prozessmanager Pipes externen Prozess FIFOs externen Prozess Thread A Connection Channel Thread B ConnectAttach() Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig 3 Message-passing mit Nachrichten II Thread A Connection Channel Message-passing Zustandsdiagramm MsgReply() Thread B MsgSend() MsgSend() MsgSend() MsgReceive() Zeit Nachricht SEND blockiert oder MsgError() RECEIVE blockiert MsgReceive() READY MsgReceive() MsgReply() Antwort MsgSend() oder MsgError() Nachricht Institut für Robotik und Prozessinformatik lokaler Thread anderer Thread MsgReply() Antwort Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Message-passing mit Pulses Thread A Technische Universität Braunschweig Signals Thread B Prozess A MsgSendPulse() Prozess B MsgReceivePulse() Zeit Zeit 8 Bit Code 32 Bit Value blockiert kill() Signal Aufhebung der Blockierung Aufruf Signalhandler MsgReceivePulse() MsgSendPulse() 8 Bit Code 32 Bit Value Institut für Robotik und Prozessinformatik Technische Universität Braunschweig QNX-Knoten 1 „Willy“ Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Datendurchsatz Message-passing über das Netzwerk QNX-Knoten 2 „Klaus“ Nachricht (36 Byte) Client Prozessmanager Server Antwort (36 Byte) Prozessmanager Qnet Client ser1 Technische Universität Braunschweig KommunikationsDatendurchsatz art Betriebssystem Hardware Solaris SunOs 5.5.1 Sparc ULTRA-2 Message Queues ~250 kB/s Linux Kernel 2.2 200 MHz Pentium Message Queues ~600 kB/s QNX 4.25 400 MHz Celeron QNX-Nachrichten ~3400 kB/s Qnet open(/net/Klaus/dev/ser1,...) Institut für Robotik und Prozessinformatik REPLY blockiert MsgReply() MsgReceive() Institut für Robotik und Prozessinformatik Technische Universität Braunschweig 4 Thread-Scheduling Warteschlange der Threads im Zustand READY Thread A Thread B Thread C Thread E Thread G Thread H Thread D Technische Universität Braunschweig Threadpriorität 63 Thread G Thread B Thread C Thread H Thread D Thread E Thread B Thread G Thread C Thread H Thread D Thread E Thread I Thread F Institut für Robotik und Prozessinformatik blockiert Warteschlange der Threads im Zustand READY Thread A Thread A Technische Universität Braunschweig Round-Robin-Scheduling Beispiel 2 für FIFO-Scheduling 13 12 11 10 9 8 7 6 5 4 3 2 1 0 blockiert Warteschlange der Prozesse im Zustand READY 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Thread I Thread F Institut für Robotik und Prozessinformatik 63 63 Threadpriorität 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Beispiel 1 für FIFO-Scheduling blockiert Thread I Thread F Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Adaptives Scheduling (QNX 4) blockiert Warteschlange der Threads im Zustand READY 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Threadpriorität Threadpriorität 63 Thread B Thread C Thread A Thread H Thread D Thread E Thread G Thread I Thread F Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Sporadic Scheduling I Replenishment period T („Wiederauffüllungszeit“) Warteschlange der Threads im Zustand READY Budget time C Threadpriorität 9 Priorität N Thread B 8 7 Thread C Thread A Priorität L 6 Höchstens C/T Prozent CPU-Auslastung auf Priorität N! Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Zeit Technische Universität Braunschweig 5 Schwierigkeiten bei Client/Server-Modellen Sporadic Scheduling II 3 ms 7 ms 3 ms L T T Zeit Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Clientgetriebene Priorität 63 Threadpriorität N 63 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RECEIVE blockiert Server Thread Threadpriorität 63 C = 10 ms T = 40 ms Client Thread 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Institut für Robotik und Prozessinformatik Prioritätsinversion Server Thread anderer Thread Client Thread SEND/REPLY blockiert Technische Universität Braunschweig Synchronisationsdienste 63 • Mutexes RECEIVE blockiert Server Thread Threadpriorität Threadpriorität 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Client Thread 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Institut für Robotik und Prozessinformatik • Condvars • Barriers Prioritätsvererbung • Sleepon locks • Reader/writer locks • Semaphores anderer Thread SEND/REPLY blockiert Client Thread Server Thread Technische Universität Braunschweig Interrupt Handling I • FIFO scheduling • Send/Receive/Reply • Atomic operations Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Interrupt Handling II Thread A ISR triggert Treiberthread IRQ Interrupt Latenzzeit Thread C Interrupt Handler Scheduling Latenzzeit IRQ x Treiberthread Thread B Triggert Thread C ISRx Zeit IRQ y Triggert Thread B ISRy Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Zeit Technische Universität Braunschweig 6 Plattendateisysteme Echtzeitperformance Interrupt 1.84 µs Interrupthandler triggert Pulse 4.7 µs InterruptAusführungszeit InterruptLatenzzeit QNX6 auf 100 MHz Pentium • DOS (16-Bit FAT; Partitionen <32MB) • DOS erweiterte Partition Treiberprozeß läuft • DOS 4.0 (16-Bit FAT; Partitionen >=32MB) • OS/2 HPFS SchedulingLatenzzeit Quelle: QNX Windows NT auf 133 MHz Pentium Interrupt • DOS (12-Bit FAT) Deferred Procedure Call (DPC) 10 µs • vorangegangene QNX Version 2 (vor-1988) • QNX 1.x und 2.x ("qny") • QNX 1.x und 2.x ("qnz") 27 µs • DOS 32-Bit FAT; Partitionen bis zu 2047GB InterruptAusführungszeit Treiberprozeß läuft • QNX POSIX Partition • UNIX InterruptLatenzzeit • LINUX DPC-Latenzzeit Institut für Robotik und Prozessinformatik Quelle: iRP Technische Universität Braunschweig Weitere Dateisysteme Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Tools und Zubehör NFS-Dateisystem (Network File System, NFS) Ermöglicht transparenten Dateizugriff auf entfernte Dateisysteme anderer Betriebssysteme, die NFS unterstützen. SMB-Dateisystem (Server Message Block, SMB), CIFS (Common Internet File System) Protokoll für den gemeinsamen Zugriff auf Dateien. Es wird von verschiedenen Servern wie Windows NT, Windows 95, Windows for Workgroups, LAN-Manager und Samba benutzt. Es erlaubt einem QNX-Client transparent auf entfernte Laufwerke von solchen Servern zuzugreifen. Flash-Dateisystem Ermöglicht Zugriff auf Flash-Speichermedien. Wichtig für Embedded Anwendungen! • komplette IDE für C, C++, Embedded C++, Java • Application Builder • Driver Deveopment Kits • diverse weitere Wizzards • GNU C/C++ Compiler, Linker und Debugger • Photon – Graphische Benutzeroberfläche für QNX • Phindows – Einbindung von Photon in eine MS-Windows Umgebung • PhinX – Einbindung von Photon in eine X Windows Umgebung • ...... Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig 7 Zusammenfassung - QNX Quellen • POSIX-konformes Realzeitbetriebssytem • Microkernel-Architektur • Plattformen: X86, PPC, ARM, MIPS, SH4 • zunehmender Einsatz im Bereich Embedded Systems • Gute Scheduling- und Interrupt-Latenzzeiten • Umfangreiche Programmiertools und Zubehör • Nicht-kommerzielle Version kostenlos zum Download: • QNX-Hauptseite: www.qnx.com • Vertrieb QNX in Deutschland: www.bitctrl.de • Vertrieb QNX4 in Deutschland www.swd.de • Echtzeitbetriebssysteme: www.dedicated-systems.com • QNX Neutrino RTOS V6.3 System Architecture www.get.qnx.com Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Institut für Robotik und Prozessinformatik Technische Universität Braunschweig Zeit für Fragen... • Einführung • Realzeitbetriebssysteme • Betriebsystemarchitekturen • Interprozesskommunikation • Scheduling • Interrupt-Handling • Dateisysteme • Tools, Zubehör, etc. • Zusammenfassung Institut für Robotik und Prozessinformatik Technische Universität Braunschweig 8