• Keine Ergebnisse gefunden

¨Ubungsblatt f¨ur die ¨Ubungen 10, 11 und 12

N/A
N/A
Protected

Academic year: 2021

Aktie "¨Ubungsblatt f¨ur die ¨Ubungen 10, 11 und 12"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Christian Baun SS2009 Systemsoftware

Ubungsblatt f¨ ¨ ur die ¨ Ubungen 10, 11 und 12

Entwickeln Sie einen Teil eines Echtzeitsystems, das aus vier Prozessen besteht:

1. Conv. Dieser Prozess liest Messwerte von A/D-Konvertern (Analog/Digital) ein. Er pr¨uft die Messwerte auf Plausabilit¨at, konvertiert sie gegebenfalls und schreibt sie in einen Speicherbereich Mess. Wir lassen Conv in Ermangelung ei- nes physischen A/D-Konverters Zufallszahlen erzeugen. Diese m¨ussen in einem bestimmten Bereich liegen, um einen A/D-Konverter zu simulieren.

2. Log. Dieser Prozess liest die Messwerte des A/D-Konverters (Conv) aus und schreibt sie in eine Datei auf der Festplatte.

3. Stat. Dieser Prozess liest die Messwerte des A/D-Konverters (Conv) aus und berechnet statistische Daten, unter anderem Mittelwert und Summe.

4. Report. Dieser Prozess greift auf die Ergebnisse von Stat zu und gibt die statistischen Daten in der Shell aus.

Bez¨uglich der Daten in den gemeinsamen Speicherbereichen gelten als Synchronisa- tionsbedingungen:

• Conv muss erst in den gemeinsamen Speicherbereich Mess die Werte eintra- gen, bevor Log und Stat die Messwerte auslesen k¨onnen.

• Stat muss erst Statistikdaten in Statistik eintragen, bevorReport die Daten aus Statistik lesen kann.

Entwerfen und implementieren Sie das vorgestellte Realzeitproblem in C mit den ent- sprechenden Systemaufrufen und realisieren Sie den Datenaustausch zwischen den vier Prozessen einmal mit Pipes, Message Queues und Shared Memory mit Semaphore. Am Ende der praktischen ¨Ubung m¨ussen drei Implementierungsvari- anten des Programms existieren. Der Quellcode soll durch Kommentare verst¨andlich sein.

Die Funktionalit¨at der Programme muss in der ¨Ubung demonstriert werden!

1 Vorgehensweise

Die Prozesse Conv, Log, Stat, und Report sind parallele Endlosprozesse, das bedeu- tet, sie werden als Endlosprozesse realisiert. Schreiben Sie ein Ger¨ust zum Start der Endlosprozesse mit dem Systemaufruf fork. Beobachten und ¨uberwachen Sie mit geeigneten Programmen wietop,ps undpstreeIhre parallelen Prozesse und stellen Sie die Vater-Kindbeziehungen fest.

Das Programm kann mit der TastenkombinationCtrl-Cabgebrochen werden. Dazu m¨ussen Sie einen Signalhandler f¨ur das Signal SIGINT implementieren. Beachten

Fakult¨at f¨ur Informatik 1 Hochschule Mannheim

(2)

Christian Baun SS2009 Systemsoftware

Sie bitte, dass Sie beim Abbruch des Programmes alle von den Prozessen belegten Betriebsmittel (Message Queues, Shared Memory, Semaphoren) freigegeben werden.

Entwickeln und implementieren Sie die folgenden frei Varianten:

• ImplementierungsvariantePipes: Benutzen Sie zum Datenaustausch zwischen den Prozessen Verbindungskan¨ale (Pipes). Ein Prozess (Produzent) kann in eine Pipe Daten ablegen und ein anderer Prozess (Konsument) kann aus der Pipe Daten entnehmen.

• Implementierungsvariante Message Queues: Benutzen Sie f¨ur die gemein- samen Daten eine Nachrichtenwarteschlange (Message Queue) in die die Produzenten-Prozesse Nachrichten ablegen und aus der die Konsumenten- Prozesse Nachrichten entnehmen.

• Implementierungsvariante Shared Memory mit Semaphore: Legen Sie die gemeinsamen Daten in gemeinsame Speichererbereiche, auf den die Prozesse zugreifen. Damit es beim gleichzeitigen Zugriff von zwei Prozessen auf einen gemeinsamen Speicher nicht zu Inkonsistenzen kommt, implementieren Sie die Synchronisationsbedingungen mit Hilfe von Semaphoren.

Uberwachen Sie die Message Queues, Shared Memory Bereiche und Semaphoren mit¨ dem Programm ipcs. Mitipcs k¨onnen Sie auch Message Queues, Shared Memory Bereiche und Semaphoren wieder freigeben, wenn Ihr Programm dieses bei einer inkorrekten Beendigung vers¨aumt hat.

Fakult¨at f¨ur Informatik 2 Hochschule Mannheim

Referenzen

ÄHNLICHE DOKUMENTE

zur Vorlesung

Geben Sie die Definitionen der Begriffe Unifikator und allgemeinster Unifikator

Zur Wiederholung und Pr¨ufungsvorbereitung: Man beweise f¨ur alle aussagenlogischen Ausdr¨ ucke A mittels vollst¨andiger Induktion ¨uber den Aufbau (struktureller Induktion)

Es sei φ eine Σ-Formel mit 6` φ, X eine abz¨ ahlbare Menge von Konstantensymbolen und Γ φ definiert wie in

Art, wenn der Patient f¨ur krank erkl¨art wird, obwohl er gesund ist (falsch-positiv-Befund). F¨ur den ELISA-Test zur Erkennung von Antik¨orpern gegen die Immunschw¨ache HIV

[r]

Beweise, dass die Funktionen a und b stetig sind.. Abgabe je

Markieren Sie einen Nachnamen zum Sortieren bei der