COMET-Methodik: Realzeit Karsten Balzer Entwicklung verteilter eingebetteter Systeme Februar 2002.
Entwicklung verteilter eingebetteter Systeme - Einführung Damian Bolik 25.02.2002.
-
Upload
elke-muhlestein -
Category
Documents
-
view
117 -
download
0
Transcript of Entwicklung verteilter eingebetteter Systeme - Einführung Damian Bolik 25.02.2002.
Entwicklung verteilter eingebetteter Systeme
-Einführung
Damian Bolik
25.02.2002
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
2
Übersicht (1)
• Klassifizierung von Anwendungen– nebenläufige Anwendungen
– Echtzeitanwendungen
– verteilte Anwendungen
• Umgebungen nebenläufiger Anwendungen– Multitasking
– symmetrische Multiprozessorumgebung
– verteilte Prozessorumgebung
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
3
Übersicht (2)
• EES-Konzepte– aktive und passive Objekte
– Prozesse, Threads, Tasks
– Synchronisation von Tasks
– Monitore
• Softwareentwicklungsmethode vs. -notation
• Weitere Aspekte bei der Entw. von EES– Task Scheduling
– Middleware
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
4
Nebenläufige Anwendungen
• Parallele Ausführung von Tasks– Ereignisse zufällig und überlappend
• Viele Probleme sind von Natur aus nebenläufig (Dijkstra 1968)– komplexes Design, wenn die Tasks
nicht getrennt werden
• Aber Probleme bei der Synchronisation– z.B. Deadlocks
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
5
Echtzeitanwendungen/-systeme
• (Nebenläufige) Anwendungenmit Zeitschranken– weiche Echtzeit-Anforderungen
– harte Echtzeit-Anforderungen
• Begriff „Echtzeitsystem“ beinhaltet – Echtzeitanwendung(en),
– Echtzeit-OS und
– Echtzeit-I/O
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
6
Echtzeitsysteme
• Oft eingebettet
• Interaktion mit der Umgebung
• Zeitschranken
• Echtzeitkontrolle
• „reaktive Systeme“
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
7
Verteilte Anwendungen (1)
• Anwendung ist auf „Knoten“ an geographisch verschiedenen Orten verteilt
• Jeder Knoten ist eine eigenständige Ausführungseinheit (Computersystem)
• Knoten sind verbunden über Netzwerk (LAN/WAN)
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
8
Verteilte Anwendungen (2)
• Vorteile:– bessere Verfügbarkeit
– bessere Reaktionszeit
– „Load Balancing“
– flexiblere Konfiguration
– lokale Pflege
– einfache Erweiterbarkeit
– eventuell günstiger
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
9
Umgebungen nebenläufiger Anwendungen (1)
• Multitasking– Ein Rechner, ein Prozessor
Systembus
I/O Speicher Display
CPU
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
10
Umgebungen nebenläufiger Anwendungen (2)
• symmetrische Multiprozessorumgebung– Ein Rechner, mehrere Prozessoren
Systembus
I/O Speicher Display
CPU CPU
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
11
Umgebungen nebenläufiger Anwendungen (3)
• Verteilte Prozessorumgebung– Mehrere Rechner (Knoten) über Netzwerk
CAN/LAN/WAN
Knoten 3 Knoten 4
Knoten 1 Knoten 2
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
12
Aktive und Passive Objekte
• Aktive Objekte– repräsentieren einen Task
– haben ihr eigenes „Leben“
• Passive Objekte– haben Methoden, die von aktiven Objekten
aufgerufen werden
– meist Datenobjekte
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
13
Prozesse, Threads, Tasks• Prozess
– Vom Betriebssystem verwaltete Ausführungseinheitbei Multitasking
– „heavyweight process“,da beim Taskwechsel viel Zeit benötigt wird
– oder einziger Prozess auf einer CPU
• evtl. intern mehrere nebenläufige Threads– „lightweight process“
• Task– ist ein Prozess ohne Threads
– oder ein Thread
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
14
Synchronisation von Tasks• Semaphore
– bei Ressourcen, auf die exklusiv zugegriffen werden muss
– Fehleranfällig
• Signale (Events)– meist ohne Datenaustausch
– Signale sind asynchron
• Nachrichten– mit Datenaustausch
– synchron: auf Antwort wird gewartet
– asynchron: auf Antwort wird nicht gewartet
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
15
Monitore
• Monitor ist ein Objekt– Kapselt eine kritische Ressource
(Daten, Peripherie, etc.)
– Semaphore ist integriert
– Auf die Ressource wird über die Methoden des Objektes zugegriffen
– Dabei wird automatisch die Semaphore gesetzt, wodurch Zugriff exklusiv ist
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
16
Softwareentwicklungsmethode vs. -notation (1)
• Wir unterscheiden Softwareentwicklungs-– konzepte (z.B. „Information Hiding“)
– strategien (z.B. Objekt-orientiert)
– notationen (z.B. UML, Statecharts)
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
17
Softwareentwicklungsmethode vs. -notation (2)
• Softwareentwicklungsmethoden(z.B. CODARTS, ROOM, COMET)
• beinhalten:– mehrere Softwareentwicklungskonzepte
– eine oder mehrere Softwareentwicklungsstrategien
– eine oder mehrere Softwareentwicklungsnotationen
– „Schritt für Schritt“-Anleitung zur Softwareentwicklung (Prozess)
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
18
Weitere Aspektebei der Entwicklung von EES
• Task Scheduling– Im Multitasking muss Betriebssystem zwischen
nebenläufigen Tasks wechseln
– Verschiedene Algorithmen(z.B. round robin, priority preemption)
– Besonders kritisch bei Echtzeit-Anwendungen
• Middleware– Software, um heterogene Plattformen über einheitliche
Schnittstellen zu verbinden
– Beispiele: RPC, Java RMI, COM, CORBA
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
19
Softwareentwicklungsmodelle (1)
• Wasserfallmodell
Requirements,Analysis andSpecification
ArchitecturalDesign
DetailedDesign
Coding
UnitTesting
IntegrationTesting
SystemTesting
Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung
20
Softwareentwicklungsmodelle (2)
• Spiralmodell
1. Define objektives,alternatives and constraints
2. Analyze risks
3. Develop product4. Plan next cycle