Zwischenbilanz, Ausblick Ada
Zwischenbilanz, Ausblick Ada
- Bisher haben wir betrachtet: Prozesse interagieren mit Hilfe gemeinsamer Variablen Protokolle und Schutzmaßnahmen nötig!
- Technischer/historischer Ausgangspunkt dafür: Rechner mit 1 Prozessor (meist, oder mehrere) und 1 Speicher.
Aber: Technische Alternative ist ein verteiltes System mit Nachrichtenaustausch (message passing).
plausibel, konkurrente Programmierung an diesem technischen Paradigma zu orientieren.
Technische Basis nicht zwingend, man kann
- eine Struktur durch eine anderen simulieren,
- eine aus Gründen der Programmierung bevorzugen!
Analogie
shared variables | global variables | |
& processes | & procedures | |
? message passing ? | explizite Schnittstelle | |
Typ der Nachricht, | Parameterübergabe | |
wer an wen, | ||
wenn ... |
Message passing
-
- asynchron (nicht blockierend)
- Sender wartet nicht auf Empfang, sondern macht weiter.
- Vorteil
- Kein Zeitverlust
- Nachteil
- Rückfluß von Informationen nicht im selben Akt möglich; Info aktuell.
- Beispiel
- Briefpost
-
- synchron
- Gemeinsamer Akt von Sender und Empfänger, jeder muß auf anderen warten.
- Vorteil/Nachteil
- siehe oben
- Beispiel
- Telephon
- Fest vorgegebene (uni-, bidirektionale) Kanäle.
- Sender kennt Empfänger,,anschrift``, nicht umgekehrt.
- Broadcast (,,Rundfunk``, Info öffentlich)
Beispiele
2 + 3 | : | occam |
1 + 5 | : | Linda |
2 + 4 | : | Ada Rendezvous |
Die Techniken in Ada
- Rendezvous
- Synchrone Kommunikation mit Möglichkeit zur Antwort und Hilfsberechnung; z.B. Telephonauskunft.
- Protected objects
- Gekapselte passive Struktur, ähnlich Monitor.
Die verschiedenen für konkurrente Programmierung vorgeschlagenen / benutzten Konstrukte (Semaphore, Monitore, asynchrone/synchrone Nachrichten, ...) sind gleichwertig in dem Sinn, daß sie sich wechselseitig simulieren können; also nur Unterschiede in
- Effizienz (je nach Kontext und Problemstellung)
- Sicherheit, Klarheit im Gebrauch
- Modellierungsqualität
Ada hatte ursprünglich nur rendezvous; protected objects in Ada95 weil manchmal
- Klarer und einfacher im Gebrauch.
- Effizienter zu implementieren.
Hausaufgabe
- Monitor simuliert Semaphore.
- Asynchrone Nachrichtenkommunikation simuliert synchrone.
Nächste Seite:Ada Tasking IIAufwärts:Vorlesungsskriptum zu Spezielle AnwendersprachenVorherige Seite:Semaphore und MonitoreInhaltsverzeichnis Ronald Blaschke 2001-06-02