• Keine Ergebnisse gefunden

Portfolioprüfung – Werkstück A – Alternative 1

N/A
N/A
Protected

Academic year: 2021

Aktie "Portfolioprüfung – Werkstück A – Alternative 1"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Christian Baun, Leonard Hußke, Anton Rösler

Betriebssysteme und Rechnernetze (SS2021) Fachbereich 2 Frankfurt Univ. of Appl. Sciences

Portfolioprüfung – Werkstück A – Alternative 1

1 Aufgabe

Entwickeln und implementieren Sie ein Echtzeitsystem, das aus vier Pro- zessen besteht:

1. Conv . Dieser Prozess liest Messwerte von A/D-Konvertern (Analog/Digital) ein. Er prüft die Messwerte auf Plausibilität und konvertiert sie gegebenen- falls. Da keine physischen A/D-Konverter vorliegen, soll Conv Zufallszahlen erzeugen.

2. Log . Dieser Prozess liest die Messwerte von Conv aus und schreibt sie in eine lokale Datei.

3. Stat . Dieser Prozess liest die Messwerte von Conv aus und berechnet statisti- sche Daten (Mittelwert und Summe).

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

Beachten Sie bei der Implementierung folgende Synchronisationsbedingungen:

Conv muss erst Messwerte schreiben, bevor Log und Stat diese auslesen können.

Stat muss erst Statistikdaten schreiben, bevor Report diese auslesen kann.

Entwickeln und implementieren Sie das geforderte System mit den entsprechenden Systemaufrufen oder (Standard-)Bibliotheksfunktionen und realisieren Sie den Da- tenaustausch zwischen den vier Prozessen einmal mit Pipes , Message Queues , Shared Memory mit Semaphore und mit Sockets .

Als gefordertes Ergebnis müssen vier Implementierungsvarianten des Pro- gramms existieren.

2 Anforderungen

• Die Prozesse Conv, Log, Stat, und Report sind parallele Endlosprozesse.

Schreiben Sie ein Gerüst zum Start der Endlosprozesse mit dem Systemaufruf fork . Überwachen Sie mit geeigneten Kommandos wie top , ps und pstree Ihre parallelen Prozesse und stellen Sie die Elternbeziehungen fest.

• Das Programm kann mit der Tastenkombination Ctrl-C abgebrochen werden.

Dazu müssen Sie einen Signalhandler für das Signal SIGINT implementieren.

Beachten Sie bitte, dass beim Abbruch des Programms alle von den Prozessen

Portfolioprüfung – Werkstück A – Alternative 1 Seite 1 von 2

(2)

Prof. Dr. Christian Baun, Leonard Hußke, Anton Rösler

Betriebssysteme und Rechnernetze (SS2021) Fachbereich 2 Frankfurt Univ. of Appl. Sciences belegten Betriebsmittel (Pipes, Message Queues, gemeinsame Speicherberei- che, Semaphoren) freigegeben werden.

• Entwickeln und implementieren Sie die vier Varianten, bei denen der Daten- austausch zwischen den vier Prozessen einmal mit Pipes , Message Queues , Shared Memory mit Semaphore und via Sockets funktioniert.

• Überwachen Sie die Message Queues, Shared Memory-Bereiche und Semapho- ren mit dem Kommando ipcs . Mit ipcrm können Sie Message Queues, Shared Memory-Bereiche und Semaphoren wieder freigeben, wenn Ihr Programm die- ses bei einer inkorrekten Beendigung versäumt hat.

Entwickeln und implementieren Sie Ihre Lösung als Bash-Skript

1

, als C-Programm oder als Python-Skript als freie Software (Open Source) und verwenden Sie hierfür ein Code-Repository, z.B. bei GitHub.

• Ihre Anwendung soll eine Kommandozeilenanwendung sein.

• Der Quellcode soll durch Kommentare verständlich sein.

• Bearbeiten Sie die Aufgabe in Teams zu 3 Personen .

• Schreiben Sie eine aussagekräftige und ansehnliche Dokumentation (Umfang:

8-10 Seiten ) über Ihre Lösung.

• Die Funktionalität der Lösung müssen Sie in der Übung demonstrieren. Be- reiten Sie einen Vortrag mit Präsentationsfolien und eine Live-Demonstration (Umfang: 15-20 Minuten ) vor.

3 Literatur

• Foliensätze 4 und 6 der Vorlesung Betriebssysteme und Rechnernetze im SS2021

Betriebssysteme kompakt , Christian Baun , 2. Auflage, Springer Vieweg, S. 200-252

Operating Systems / Betriebssysteme: Bilingual Edition , Christian Baun , 1. Auflage, Springer Vieweg (2020), S. 179-228

Betriebssysteme , Erich Ehses, Lutz Köhler, Petra Riemer, Horst Stenzel, Frank Victor , 1. Auflage, Pearson (2005), S. 55-84

Betriebssysteme , Carsten Vogt , 1. Auflage, Spektrum (2001), S. 109-127

Betriebssysteme , William Stallings , 4. Auflage, Pearson (2003), S. 334-339

1

Bei dieser Alternative ist die Implementierung als Bash-Skript die schwierigste Alternative. Ein- facher ist es mit C oder Python.

Portfolioprüfung – Werkstück A – Alternative 1 Seite 2 von 2

Referenzen

ÄHNLICHE DOKUMENTE

Dieser soll einen Speicher mit einer bestimmten Größe und Konfiguration darstellen und die Zuweisung von Prozessen bzw.. Freigabe von Prozes- sen korrekt simulieren

Entwickeln und implementieren Sie einen Simulator für die Seitenersetzungsstrate- gien Optimal , Random , FIFO und Clock/Second Chance.. Der Simulator soll einen Speicher mit

Entwickeln Sie einen Simulator für die Scheduling-Verfahren (Algorithmen) FCFS , HRRN und Round Robin mit frei definierbarem Zeitquantum.. Der Simulator soll die

Hierfür können Sie beispielsweise eine Bibliothek wie ncurses (für C-Programme), Termbox (für C-Programme oder Python-Scripte), dialog (für Shell-Scripte) oder Whiptail

Hier- für können Sie beispielsweise eine Bibliothek wie ncurses (für C-Programme), Termbox (für C-Programme oder Python-Scripte), dialog (für Shell-Scripte) oder Whiptail

Dieser soll einen Speicher mit einer bestimmten Größe und Konfiguration darstellen und die Zuweisung von Prozessen bzw.. Freigabe von Prozessen korrekt simulieren

Es ist Ihnen freigestellt, ob Ihr Simulator den Benutzer am Anfang der Program- mausführung fragt, welche Seiten-Ersetzungsstrategie er simulieren möchte oder ob Sie für

Es ist Ihnen freigestellt, ob Ihr Simulator den Benutzer am Anfang der Programm- ausführung fragt, welches Scheduling-Verfahren er simulieren möchte oder ob Sie für