Fragen aus ehemaligen Klausuren

Der nachfolgende Text ist eine Zusammenstellung von Fragen zur Proze�datenverarbeitung aus mehreren zur�ckliegenden Klausuren. Zur Orientierung sind die Punktzahlen angegeben. Klausuren dauern �blicherweise vier Stunden und es sind maximal 100 Punkte erreichbar.


Grundlagen der Proze�datenverarbeitung

a) (1 Punkt)

Nennen Sie die Arten der Kopplung eines Proze�rechners mit einem technischen Proze�.

b) (1 Punkt)

Welche Arten der Strukturierung von Echtzeitprogrammen kennen Sie?

c) (2 Punkte)

Was verstehen Sie unter dem Begriff echtzeitf�hig? Nennen Sie eine Technik zur zeitlichen Einplanung, die in ADA realisiert ist.

d) (2 Punkte)

Was versteht man unter einer zeitgerechten Zuteilung? Wann hei�t ein Zuteilungsalgorithmus optimal?

e) (2 Punkte)

Welche Aufgabe hat das Interruptvektorregister eines externen Bausteins?

f) (2 Punkte)

Beschreiben Sie die Sprachmittel von Ada zur Ausnahmebehandlung.

g) (2 Punkte)

Ist die Programmiersprache Ada f�r Echtzeitanwendungen geeignet? Nennen Sie mindestens drei Argumente f�r Ihre Einordnung.

h) (2 Punkte)

Beschreiben Sie den Fehlerbehandlungsmechanismus in Ada. Was passiert, wenn f�r eine Situation keine Fehlerbehandlung vorgesehen wurde?

i) (3 Punkte)

Worin unterscheiden sich Ausnahmen und Unterbrechungen? Wie k�nnen Sie jeweils ausgel�st werden?

j) (2 Punkte)

Weshalb lassen sich in Ada Spezifikation und Implementierung eines Paketes getrennt entwerfen und �bersetzen?

k) (3 Punkte)

In einer Rohrpostanlage sei ein Lichtschrankensensor zur Erfassung passierender Transportbeh�lter installiert. Die Beh�lter haben eine maximale Geschwindigkeit von 10 m/s und sind 30 cm lang. Der Abstand zwischen zwei Beh�ltern sei gr��er als die Beh�lterl�nge. Wie oft mu� der Sensor vom Zentralrechner mindestens abgefragt werden, um keinen Transportbeh�lter zu verpassen?

l) (2 Punkte)

Was bewirkt in Ada die Vereinbarung eines privaten Typs? Was ist der Unterschied zwischen der Vereinbarung private und limited private?

m) (2 Punkte)

An wen wird eine Ausnahme fortgepflanzt, wenn diese w�hrend eines Rendezvous ausgel�st wird und innerhalb des Rendezvous keine Ausnahmebehandlungsroutine existiert?

n) (2 Punkte)

Ein analoges Sprachsignal soll abgetastet und digital �bertragen werden. Die h�chste Frequenz des Signals sei 4000 Hz. Das Signal wird in 256 Quantisierungsintervalle unterteilt. Welche Abtastfrequenz ist notwendig unter Ber�cksichtigung des Abtasttheorems von Shannon? Welches ist die resultierende Bitrate?

o) (2 Punkte)

Die Firma HardRealTime m�chte einen technischen Proze� mit harten Echtzeitanforderungen durch einen Proze�rechner steuern. Die Beratungsfirma PushySalesmen r�t zu einem Rechner mit dem Prozessor vom Typ CannotDivide, weil er 100 MIPS (million instructions per second) "schafft" und damit "echtzeitf�hig" sei. Was ist an dieser Aussage zu kritisieren?

 


Aufgabe 1: Programmierung von Proze�peripherie (25 Punkte)

Entwerfen Sie mit den folgenden Vorgaben ein ADA-Steuerprogramm f�r die �berwachung eines Autorades auf Blockierung oder Schlupf.

Folgende Peripheriebausteine stehen zur Verf�gung:

  1. Im Auto ist ein Geschwindigkeitsmesser vorhanden, welcher die tats�chliche aktuelle Geschwindigkeit gegen�ber dem Untergrund unabh�ngig von den R�dern mi�t. Das Leseregister ist ein Byte gro�, an Adresse 8#500# im Speicher eingeblendet, und enth�lt die ganzzahlige Geschwindigkeit in km/h.
  2. Am zu �berwachenden Rad befindet sich ein Sensor, der nach jeder vollen Umdrehung des Rades einen Interrupt ausl�st. Der entsprechende Unterbrechungsvektor hat den Wert 8#400#.
  3. Weiterhin kann ein Timer-Baustein mit der Grundfrequenz 10 kHz eingesetzt werden. Der Baustein z�hlt von einem gegebenen Wert an r�ckw�rts und l�st bei Nulldurchgang einen Interrupt mit dem Unterbrechungsvektor 8#410# aus. An Adresse 8#600# kann der aktuelle Z�hlerstand als 16bit-Wert gelesen bzw. neu gesetzt werden. Auf Adresse 8#610# befindet sich das Steuerregister (ein Byte) des Z�hlers. Das Setzen von Bit 0 auf 1 aktiviert den Z�hlablauf, R�cksetzen des Bits stoppt das Z�hlen. Nach einem Nulldurchgang stoppt der Z�hler automatisch.

Das zu entwerfende Steuerprogramm soll in einer task RAD_EINS das Rad mit einem Durchmesser von 60 cm �berwachen und dabei folgende Funktionen erf�llen:

  1. Unterschreitet die Radgeschwindigkeit die tats�chliche Autogeschwindigkeit um 20 Prozent oder mehr, droht eine Blockierung des Rades und der Eintrittspunkt AKTIVIERT einer fiktiven task ABS mu� aufgerufen werden. Liegt der kritische Fall nicht mehr vor, mu� ABS.DEAKTIVIERT aufgerufen werden.
  2. �berschreitet die Radgeschwindigkeit die tats�chliche Autogeschwindigkeit um 10 Prozent oder mehr, droht das Durchdrehen des Rades und der Eintrittspunkt AKTIVIERT einer fiktiven task ASR mu� aufgerufen werden. Liegt der kritische Fall nicht mehr vor, mu� ASR.DEAKTIVIERT aufgerufen werden.

a) (2 Punkte)

Definieren Sie einen Datentyp f�r das Auslesen des Geschwindigkeitsmessers. Die Zuweisung von Werten au�erhalb des Bereichs 0..200 soll nicht zul�ssig sein. Erzeugen Sie eine entsprechende Variable, �ber die die Geschwindigkeit ausgelesen werden kann.

b) (3 Punkte)

Entwerfen Sie Datentypen und Variablen f�r den Zugriff auf die zwei Schnittstellenregister des Timer-Bausteins. Verwenden Sie diese Datentypen in den folgenden Teilaufgaben.

c) (2 Punkte)

Entwerfen Sie die Spezifikation der task RAD_EINS innerhalb eines Pakets RADKONTROLLE. Sorgen Sie daf�r, da� den Interrupts der Peripherieger�te entsprechende Eintrittspunkte zugeordnet werden.

d) (4 Punkte)

Berechnen Sie die kritischen Werte der Anzahl der Z�hlimpulse des Timer-Bausteins zwischen zwei Meldungen des Radumdrehungssensors, ab denen Blockierung bzw. Schlupf f�r eine gegebene Autogeschwindigkeit vAuto gemeldet werden mu�. Der Rechenweg mu� erkennbar sein.

e) (9 Punkte)

Geben Sie nun die Implementation des Pakets RADKONTROLLE mit der task RAD_EINS an. Die in den vorangegangenen Teilaufgaben spezifizierten Typen und Variablen m�ssen nicht noch einmal angegeben werden. Sicherheitshalber soll an eine �bergeordnete task MAIN nach dem erfolgreichen Ausf�hren (Initialisieren) des Pakets RADKONTROLLE die Nachricht RAD_OKgesendet werden. Dies soll nicht aus der task RAD_EINS heraus erfolgen!

f) (2 Punkte)

Beschreiben Sie kurz, wie Sie Ihr bisheriges Programm softwaretechnisch elegant erweitern w�rden, wenn identische �berwachunsprozesse f�r alle vier R�der zu implementieren sind!

g) (3 Punkte)

Nehmen Sie an, der Autohersteller fordert von Ihnen als Zulieferer des Rad�berwachungssystems, da� das Blockieren eines Rades aus Sicherheitsgr�nden sp�testens nach einer Zehntelsekunde an das ABS-System gemeldet wird. Was m��ten Sie f�r eine solche Zusicherung untersuchen?


Aufgabe 2: Proze�synchronisation (10 Punkte)

F�r einen Internet-Buchhandel sollen die Steuerprogramme von H�ndler und Kunde entworfen werden.

Das Kundenprogramm soll ein Buch (spezifiziert durch den Namen) bis zu einem gegebenen maximalen Preis erwerben und nimmt dazu Kontakt mit dem H�ndlerprogramm auf. Das H�ndlerprogramm gibt Auskunft �ber Vorhandensein und Preis des Buchs. Nach einer positiven Auskunft h�lt das H�ndlerprogramm das Buch f�r 10 Minuten reserviert. Ist das Buch vorhanden und entspricht den Preisvorstellungen des Kunden, veranla�t das Kundenprogramm die Bezahlung bei einem Online-Bankprogramm. Danach wird dem H�ndlerprogramm signalisiert, da� das Buch erworben werden soll. Das H�ndlerprogramm �berpr�ft nun den Geldeingang bzw. leitet das Geld bei der Bank auf das H�ndlerkonto. Ist alles in Ordnung, wird das Buch versandt.

Entwerfen Sie die Konzeption f�r eine Steuerung dieses Ablaufes mit Prozessen in Ada. Kunde, H�ndler und Bank sollen jeweils durch einen Proze� vertreten werden.

a) (2 Punkte)

Zeichnen Sie eine Skizze der Prozesse und ihrer Kommunikationsbeziehungen.

b) (6 Punkte)

Geben Sie die Implementierung des Kunden- und des H�ndlerprozesses an. Es gen�gt die Darstellung der Interaktionen zwischen den Prozessen in Ada und der wesentlichen Aktionen innerhalb der Prozesse. Von weiteren Einzelheiten wie Typen- und Variablendeklarationen wird abstrahiert.

c) (2 Punkte)

Kann es in dem von Ihnen entworfenen Ada-Programm zu Verklemmungen kommen? Geben Sie mindestens zwei M�glichkeiten an, wie Sie Verklemmungen erkennen und beseitigen k�nnten.


Aufgabe 3: Programmierung von Proze�peripherie (20 Punkte)

Gegeben sei ein Tankbeh�lter. Der Beh�lter habe einen Abflu� und einen Zuflu�, die je �ber ein Ventil gesteuert werden. Eine F�llstands�berwachung liefere an einer parallelen Schnittstelle ganzzahlige Werte zwischen 0 und 100 f�r den F�llstand in Prozent, die Schnittstelle ist 16 Bit breit, die Bits 0�7 werden f�r die Zahlendarstellung benutzt (Bit 0 ist LSB), Bit 8 wird auf 0 gesetzt, wenn die F�llstandswerte g�ltig sind. Zus�tzlich zur analogen F�llstands�berwachung sind zwei Me�einrichtungen f�r Extremwerte installiert, die Interrupts bei Erreichen des Grenzwertes ausl�sen.

Entwerfen Sie f�r diese Anlage ein Steuerprogramm in Ada. Darin wird keine F�llstandsregelung vorgenommen. Das Programm soll folgende Anforderungen erf�llen:

Hinweis 1: Benutzten Sie zur Behandlung der Extremwertmeldungen Unterbrechungsbehandlung in Standard-Ada. Die Unterbrechungsvektoren seien hexadezimal 200 f�r den �berlauf und hexadezimal 300 f�r die Leermeldung.

Hinweis 2: Das Schnittstellenregister l��t sich unmittelbar an seiner Adresse oktal 777700 auslesen.

a) (4 Punkte)

Entwerfen Sie zun�chst ein Task-Konzept f�r das Steuerprogramm indem Sie Proze�spezifikationen, Eintrittspunkte der Tasks und Aufrufe spezifizieren. Stellen Sie den Zusammenhang zwischen den Tasks �bersichtlich dar! (Mindestanforderung: je eine Task zum Auslesen der F�llst�nde und zur Bedienung der Ventile)

b) (2 Punkte)

Spezifizieren Sie einen Variablentyp f�r die F�llstandswerte. Die Typdeklaration soll sicherstellen, da� nur g�ltige Werte zugewiesen erden k�nnen.
Wie k�nnen Sie sicherstellen, da� auf Werte au�erhalb des g�ltigen Bereiches (verursacht beispielsweise durch einen Fehler in der Me�einrichtung) angemessen reagiert wird?

c) (7 Punkte)

Schreiben Sie den Proze� zum Auslesen der F�llstandswerte aus der parallelen Schnittstelle.

d) (7 Punkte)

Schreiben Sie den Proze� zum �ffnen und Schlie�en der Ventile. Ber�cksichtigen Sie die Extremwertmeldungen und die Ausnahme, die mit ihnen ausgel�st wird.


Aufgabe 4: Proze�synchronisation (15 Punkte)

Gegeben Sei eine "diebstahlsichere" Tankstelle, in der nach folgenden Regeln bedient wird:

Entwerfen Sie die Konzeption f�r eine Nachbildung dieses Ablaufes mit Prozessen in Ada. Kunden, Tankwart und Zapfs�ule sollen jeweils durch einen Proze� modelliert werden.

a) (3 Punkte)

Geben Sie zuerst die Spezifikationen der Prozesse an.

b) (6 Punkte)

Geben Sie die Implementierungen der Prozesse an. Es gen�gt die Darstellung der Interaktionen zwischen den Prozessen in Ada, von allen weiteren Einzelheiten wird abstrahiert.

c) (4 Punkte)

Kann es in dem von Ihnen entworfenen Ada-Programm zu Verklemmungen kommen? Geben Sie mindestens zwei M�glichkeiten an, wie Sie Verklemmungen erkennen und beseitigen k�nnten. Sch�tzen Sie den Aufwand f�r diese Ma�nahemn ab.

d) (2 Punkte)

Erkl�ren sie kurz, wie Ihr Programm modifiziert werden mu�, um mehrere Kunden ber�cksichtigen zu k�nnen. Wie k�nnen Sie erreichen, da� Kunden bevorzugt bedient werden, die das Restgeld ausbezahlt bekommen?


Aufgabe 5: Peripherieanbindung, Echtzeitabh�ngigkeit (20 Punkte)

In einem Flugzeug wird das Erfassen und Anzeigen von Beschleunigungsdaten betrachtet: ein Sensor liefert mit hoher Frequenz Me�werte, diese Werte werden einerseits weiterverarbeitet und andererseits im Cockpit angezeigt. Die Anzeige kann wegen der Tr�gheit des menschlichen Auges mit einer niedrigeren Frequenz erfolgen.

Die Steuerung soll mit zwei Ada-Prozessen durchgef�hrt werden:

-task EINLESEN

-task ANZEIGEN

Der Proze� EINLESEN liest die Werte �ber eine parallele Schnittstelle durch Hardware-Unterbrechungen gesteuert ein. EINLESEN stellt den jeweils aktuellsten Wert anderen Prozessen zur Verf�gung. Der Proze� ANZEIGEN gibt zyklisch alle 50 ms den aktuellsten Wert aus.

Das Datenregister der parallelen Schnittstelle befindet sich an der Adresse hexadezimal FFF58000 plus einem Offset von hexadezimal A1. Die Bits 0..11 des Registers werden f�r die Zahlendarstellung des Me�wertes benutzt (Bit 0 ist LSB). Der Unterbrechungsvektor befindet sich an der Adresse oktal 500. Die Unterbrechung wird ausgel�st, wenn ein g�ltiger Datenwert vorliegt.

In beiden Prozessen wird die Einhaltung von Zeitschranken �berpr�ft: der Proze� EINLESEN soll eine Ausnahme ausl�sen, falls nach einer l�ngeren Periode als 10 ms kein neuer Me�wert vom Sensor �bermittelt wurde und der Proze� ANZEIGEN soll eine Ausnahme ausl�sen, falls zwischen zwei Ausgaben mehr als 150 ms liegen.

Hinweise: Weitere Prozesse zur Zeit�berwachung sind nicht notwendig. F�r den Proze� ANZEIGEN reicht es aus, wenn die �berpr�fung der Zeitbedingung jeweils nach der Ausgabe erfolgt.

a) (1 Punkt)

Stellen Sie die Proze�struktur mit den Eintrittspunkten und Kommunikationsbeziehungen grafisch dar.

b) (3 Punkte)

Geben Sie die Proze�spezifikationen an. (Hinweis: Typen und Variablen zum Einlesen des Datenwertes sollen erst im n�chsten Aufgabenteil angegeben werden.)

c) (4 Punkte)

Zum Einlesen des Me�wertes sollen die hardwarenahen Sprachkonzepte von Ada eingesetzt werden. Geben Sie die notwendigen Typ- und Variablenvereinbarungen an.

d) (6 Punkte)

Geben Sie den Proze�rumpf von EINLESEN an. Ber�cksichtigen Sie die Zeit�berwachung und das Ausl�sen einer Ausnahme bei Zeit�berschreitungen. (Hinweis: Die Zeit zum Ausf�hren des Programms und zum Einlesen der Me�werte sowie m�gliche Proze�wechsel sollen bei der Zeit�berwachung beachtet werden.)

e) (6 Punkte)

Geben Sie den Proze�rumpf von ANZEIGEN an. Ber�cksichtigen Sie die Zeit�berwachung und das Ausl�sen einer Ausnahme bei Zeit�berschreitungen. (Hinweis: Die Zeit zum Ausf�hren des Programms und zum Einlesen der Me�werte sowie m�gliche Proze�wechsel sollen bei der Zeit�berwachung beachtet werden.)


Aufgabe 6: Proze�synchronisation (20 Punkte)

Das Abfertigen von Z�gen in einem Berliner U-Bahnhof soll durch ein Ada-Programm nachgebildet werden. Betrachtet wird das Ein- und Ausfahren der Z�ge, der mit "preu�ischer Liebensw�rdigkeit" agierende Abfertiger und die Fahrg�ste. Die folgenden Abstimmungen sind zwischen Zug, Abfertiger und Fahrg�sten n�tig:

Das Programm soll aus den folgenden 3 Ada-Prozessen bestehen:

a) (2 Punkte)

Entwerfen Sie die Proze�struktur und stellen Sie diese grafisch dar. Die Grafik soll die Eintrittspunkte und Kommunikationsbeziehungen enthalten.

b) (3 Punkte)

Geben Sie die Proze�spezifikationen an.

c) (3 Punkte)

Geben Sie den Proze�rumpf von ZUG an.

d) (4 Punkte)

Geben Sie den Proze�rumpf von ABFERTIGEN an.

e) (4 Punkte)

Geben Sie den Proze�rumpf von FAHRGAESTE an.

f) (3 Punkte)

Falls sich nach der Ansage "Zur�ckbleiben" und vor der Abfahrt des Zuges eine Gefahrensituation ergibt, kann die Abfahrt von den Fahrg�sten verhindert werden. Dazu wird die Notbremse gezogen. Wie mu� Ihre Implementierung ver�ndert werden, um dieses nachzubilden?

g) (1 Punkt)

Kann es nach der �nderung in f) zu Verklemmungen zu kommen? Begr�ndung?