Home
 

Beispiele aus der Vorlesung

Beispiele

Folgende Beispiele benötigen die stringpack Bibliothek.

tierwelt.adb
Primitive Tasks in Ada.
shared_demo1.adb
Ungeschützter Zugriff von 2 Tasks auf eine gemeinsame Variable.
shared_demo2.adb
Brauchbarer Ansatz für den wechselseitigen Ausschluß.
shared_demo2a.adb
Wie shared_demo2.adb, jedoch mit Messung der Ineffizienz von busy waiting.
tierwelt2.adb
Demonstration von Ada-Rendezvous zur Synchronisation.
shared_demo3.adb
Schlechte Lösung zur Imitation von binären Semaphoren mittels Rendezvous.
arbeitsteilung.adb
Summiere 1..n: Hauptprogramm mit 2 Arbeitern, die summieren; Hauptprogramm faßt die Teilergebnisse zusammen.
arbeitsteilung2.adb
Summiere 1..n: Hauptprogramm mit 1 Arbeiter, der für sich einen Helfer erzeugt.
arbeitsteilung2a.adb
Summiere 1..n: Wie arbeitsteilung2.adb, jedoch mit Rendezvous zu Dritt.
arbeitsteilung2b.adb
Summiere 1..n: Wie arbeitsteilung2.adb, jedoch mit call-back.
arbeitsteilung3.adb
Summiere 1..n: Wie arbeitsteilung2.adb, jedoch mit dynamischer Erzeugung des Helfers nach Bedarf.
arbeitsteilung4.adb
Summiere 1..n: Hauptprogramm mit 1 Arbeiter, der einen Teil aufsummiert und für den Rest einen Task erzeugt (Rekursion).
task_nr_demo.adb
Demonstration: Erzeugung einer gegebenen Anzahl von Tasks und Messung der benötigten Zeit.
bounded_buffer.adb
Summiere 1..n: Altes Beispiel, jetzt mit protected entries.
exception_demo1.adb
Exception bei der Task Aktivierung.
exception_demo2.adb
Exception bei einem Kommunikationsproblem.
exception_demo2a.adb
Wie exception_demo2.adb, jedoch begrenzte accepts anstatt eines abort.
exception_demo3.adb
Exception ausgelöst im Rumpf einer task, ohne handler.
exception_demo4.adb
Exception ausgelöst im Rumpf einer task, mit handler.
exception_demo5.adb
Exception während eines Rendezvous, accept enthält keinen handler.
exception_demo6.adb
Exception während eines Rendezvous, accept enthält einen handler.
bounded_buffer2.adb
Summiere 1..n: Consumer-Producer-Problem mit task als Puffer; vgl. bounded_buffer.adb.
primes.adb
Primzahlen durch Siebmethode.
watchdog_demo.adb
Demonstration der delay-Alternative durch einen Watchdog.
readers_writers1.adb
Readers-Writers Demo, keine Bevorzugung des Schreibers, keine potentiell blockierenden Operationen.
readers_writers2.adb
Readers-Writers Demo, Bevorzugung des Schreibers, potentiell blockierende Operationen erlaubt.
readers_writers2a.adb
Readers-Writers Demo, keine Bevorzugung des Schreibers, potentiell blockierende Operationen erlaubt.
readers_writers3.adb
Readers-Writers Demo, Bevorzugung des Schreibers, potentiell blockierende Operationen erlaubt.
philosophers.adb
Die speisenden Philosophen.
grid.adb
Beispiel für chaotische Iteration; Lösung einer partiellen Differentialgleichung.
gridsynchro.adb
Wie Beispiel grid.adb, jedoch zum Vergleich mit Standard-Iteration.
grid2.adb
Wie Beispiel grid.adb, mit besserem Terminierungsprotokoll.
resources1.adb
Ressource-Management für variierende Anfragen. Version 1: Doppelte Interaktion.
resources2.adb
Ressource-Management für variierende Anfragen. Version 2: Erneute Einreihung unbearbeiteter Anfragen.
metro.adb
Illustration des requeue-Sprachkonstrukts. Modellierung einer U-Bahn-Linie mit 1 Zug und mehreren Stationen, wo Passagiere ein- und aussteigen.