200 likes | 326 Vues
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
E N D
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 • verteilte Prozessorumgebung Entwicklung verteilter eingebetteter Systeme - Einführung
Ü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 Entwicklung verteilter eingebetteter Systeme - Einführung
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 Tasksnicht getrennt werden • Aber Probleme bei der Synchronisation • z.B. Deadlocks Entwicklung verteilter eingebetteter Systeme - Einführung
Echtzeitanwendungen/-systeme • (Nebenläufige) Anwendungenmit Zeitschranken • weiche Echtzeit-Anforderungen • harte Echtzeit-Anforderungen • Begriff „Echtzeitsystem“ beinhaltet • Echtzeitanwendung(en), • Echtzeit-OS und • Echtzeit-I/O Entwicklung verteilter eingebetteter Systeme - Einführung
Echtzeitsysteme • Oft eingebettet • Interaktion mit der Umgebung • Zeitschranken • Echtzeitkontrolle • „reaktive Systeme“ Entwicklung verteilter eingebetteter Systeme - Einführung
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) Entwicklung verteilter eingebetteter Systeme - Einführung
Verteilte Anwendungen (2) • Vorteile: • bessere Verfügbarkeit • bessere Reaktionszeit • „Load Balancing“ • flexiblere Konfiguration • lokale Pflege • einfache Erweiterbarkeit • eventuell günstiger Entwicklung verteilter eingebetteter Systeme - Einführung
Umgebungen nebenläufiger Anwendungen (1) • Multitasking • Ein Rechner, ein Prozessor CPU Systembus I/O Speicher Display Entwicklung verteilter eingebetteter Systeme - Einführung
Umgebungen nebenläufiger Anwendungen (2) • symmetrische Multiprozessorumgebung • Ein Rechner, mehrere Prozessoren CPU CPU Systembus I/O Speicher Display Entwicklung verteilter eingebetteter Systeme - Einführung
Umgebungen nebenläufiger Anwendungen (3) • Verteilte Prozessorumgebung • Mehrere Rechner (Knoten) über Netzwerk Knoten 1 Knoten 2 CAN/LAN/WAN Knoten 3 Knoten 4 Entwicklung verteilter eingebetteter Systeme - Einführung
Aktive und Passive Objekte • Aktive Objekte • repräsentieren einen Task • haben ihr eigenes „Leben“ • Passive Objekte • haben Methoden, die von aktiven Objektenaufgerufen werden • meist Datenobjekte Entwicklung verteilter eingebetteter Systeme - Einführung
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 Entwicklung verteilter eingebetteter Systeme - Einführung
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 Entwicklung verteilter eingebetteter Systeme - Einführung
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 Entwicklung verteilter eingebetteter Systeme - Einführung
Softwareentwicklungsmethode vs. -notation (1) • Wir unterscheiden Softwareentwicklungs- • konzepte (z.B. „Information Hiding“) • strategien (z.B. Objekt-orientiert) • notationen (z.B. UML, Statecharts) Entwicklung verteilter eingebetteter Systeme - Einführung
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) Entwicklung verteilter eingebetteter Systeme - Einführung
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 Entwicklung verteilter eingebetteter Systeme - Einführung
Softwareentwicklungsmodelle (1) • Wasserfallmodell Requirements,Analysis andSpecification ArchitecturalDesign DetailedDesign Coding UnitTesting IntegrationTesting SystemTesting Entwicklung verteilter eingebetteter Systeme - Einführung
Softwareentwicklungsmodelle (2) • Spiralmodell 1. Define objektives,alternatives and constraints 2. Analyze risks 4. Plan next cycle 3. Develop product Entwicklung verteilter eingebetteter Systeme - Einführung