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