• 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, Henry Cocos

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

Portfolioprüfung – Werkstück A – Alternative 1

1 Aufgabe

Entwickeln und implementieren 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üft die Messwerte auf Plausibilität und konvertiert sie gegebenenfalls.

Wir lassen Conv in Ermangelung eines physischen A/D-Konverters Zufallszah- len erzeugen.

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

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.

Beachten Sie bei der Implementierung folgende Synchronisationsbedingungen:

Convmuss erst Messwerte schreiben, bevorLogundStatMesswerte auslesen können.

Statmuss erst Statistikdaten schreiben, bevorReportStatistikdaten auslesen kann.

Entwickeln und implementieren Sie das geforderte System mit den entsprechenden Systemaufrufen und realisieren Sie den Datenaustausch zwischen den vier Prozessen einmal mit

Pipes,

Message Queues,

Shared Memory mit Semaphore und mit

Sockets.

Am Ende müssenvier Implementierungsvarianten des Programmsexistieren.

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. Bereiten Sie dafür einen Vortrag mit Präsentationsfolien (Umfang: 15-20 Minuten) vor.

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

(2)

Prof. Dr. Christian Baun, Henry Cocos

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

2 Vorgehensweise

Entwickeln und implementieren Sie Ihre Lösung als C-Programm oder als Python-Skript.

Ihre Anwendung soll eine Kommandozeilenanwendung sein.

Die Prozesse Conv, Log, Stat, und Report sind parallele Endlosprozesse. Schreiben Sie ein Gerüst zum Start der Endlosprozesse mit dem Systemaufruf fork. Über- wachen 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. Da- zu müssen Sie einen Signalhandler für das SignalSIGINT implementieren. Beachten Sie bitte, dass beim Abbruch des Programms alle von den Prozessen belegten Be- triebsmittel (Pipes, Message Queues, gemeinsame Speicherbereiche, Semaphoren) freigegeben werden.

Entwickeln und implementieren Sie die vier Varianten, bei denen der Datenaus- tausch zwischen den vier Prozessen einmal mitPipes,Message Queues,Shared Memory mit Semaphoreund via Sockets funktioniert.

Überwachen Sie die Message Queues, Shared Memory Bereiche und Semaphoren mit dem Kommandoipcs. Mit ipcrmkönnen Sie Message Queues, Shared Memory Bereiche und Semaphoren wieder freigeben, wenn Ihr Programm dieses bei einer inkorrekten Beendigung versäumt hat.

Der Quellcode soll durch Kommentare verständlich sein.

Bearbeiten Sie die Aufgabe in Teams zu maximal 3 Personen.

3 Literatur

• Foliensätze 4 und 6 der VorlesungBetriebssysteme und Rechnernetzeim SS2020

Betriebssysteme kompakt, Christian Baun, 1. Auflage, Springer Vieweg, S. 175-229

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

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

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

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

Referenzen

ÄHNLICHE DOKUMENTE

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

Die wichtigsten Attribute (u.a. Da- teiname, Dateigröße. Zugriffsrechte, Datum der letzten Änderung, etc.) der Dateien im jeweils aktuellen Unterverzeichnis sollen angezeigt werden.

Entwickeln und Implementieren Sie eine einfaches Spiel für die Kommandozeile, das sich entweder an dem U-Boot- oder dem Flugzeug-Level von Super Mario Land orientiert.. Spieler

Der Simulator soll in der Lage sein, für eine bestimmte Anzahl an Knoten und Kan- ten mit Pfadkosten einen Spannbaum mit den kürzesten Pfaden vom Startknoten zu allen anderen Knoten