Entwicklung verteilter eingebetteter Systeme - Einführung

20
Entwicklung verteilter eingebetteter Systeme - Einführung Damian Bolik 25.02.2002

description

Entwicklung verteilter eingebetteter Systeme - Einführung. Damian Bolik 25.02.2002. Übersicht (1). Klassifizierung von Anwendungen nebenläufige Anwendungen Echtzeitanwendungen verteilte Anwendungen Umgebungen nebenläufiger Anwendungen Multitasking symmetrische Multiprozessorumgebung - PowerPoint PPT Presentation

Transcript of Entwicklung verteilter eingebetteter Systeme - Einführung

Page 1: Entwicklung verteilter eingebetteter Systeme - Einführung

Entwicklung verteilter eingebetteter Systeme

-Einführung

Damian Bolik

25.02.2002

Page 2: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 3: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 4: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 5: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 6: Entwicklung verteilter eingebetteter Systeme - Einführung

Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung

6

Echtzeitsysteme

• Oft eingebettet

• Interaktion mit der Umgebung

• Zeitschranken

• Echtzeitkontrolle

• „reaktive Systeme“

Page 7: Entwicklung verteilter eingebetteter Systeme - Einführung

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)

Page 8: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 9: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 10: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 11: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 12: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 13: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 14: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 15: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 16: Entwicklung verteilter eingebetteter Systeme - Einführung

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)

Page 17: Entwicklung verteilter eingebetteter Systeme - Einführung

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)

Page 18: Entwicklung verteilter eingebetteter Systeme - Einführung

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

Page 19: Entwicklung verteilter eingebetteter Systeme - Einführung

Damian Bolik Entwicklung verteilter eingebetteter Systeme - Einführung

19

Softwareentwicklungsmodelle (1)

• Wasserfallmodell

Requirements,Analysis andSpecification

ArchitecturalDesign

DetailedDesign

Coding

UnitTesting

IntegrationTesting

SystemTesting

Page 20: Entwicklung verteilter eingebetteter Systeme - Einführung

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