Home
 

Zwischenbilanz, Ausblick Ada

Zwischenbilanz, Ausblick Ada

  • Bisher haben wir betrachtet: Prozesse interagieren mit Hilfe gemeinsamer Variablen $\Rightarrow$ 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).

$\Rightarrow$ 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$\sim$global variables
& processes & procedures
$\Bigg\downarrow$ $\Bigg\downarrow$
? message passing ?$\sim$explizite Schnittstelle
Typ der Nachricht, Parameterübergabe
wer an wen,  
wenn ...  

Message passing

  1. 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
  2. synchron
    Gemeinsamer Akt von Sender und Empfänger, jeder muß auf anderen warten.
    Vorteil/Nachteil
    siehe oben
    Beispiel
    Telephon
  3. Fest vorgegebene (uni-, bidirektionale) Kanäle.
  4. Sender kennt Empfänger,,anschrift``, nicht umgekehrt.
  5. 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.

\includegraphics{telAuskunft.eps}

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.

nextnextupuppreviouspreviouscontentscontents
Nächste Seite:Ada Tasking IIAufwärts:Vorlesungsskriptum zu Spezielle AnwendersprachenVorherige Seite:Semaphore und MonitoreInhaltsverzeichnis
Ronald Blaschke 2001-06-02