2021/7/14 Probeklausur (Seite 2 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
UNIX-Systemaufrufe
Geben Sie die Ausgabe des folgenden C-Programms an.
Hinweis: Das Einbinden der Header-Dateien sowie ein Teil der Fehlerbehandlung wurden ausgelassen. Gehen Sie von einem
Frage 2
Bisher nicht beantwortet Erreichbare Punkte: 4,00
fehlerfreien Ablauf aus. Das Symbol ␣ steht für ein Leerzeichen.
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=1
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 3 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Fehlerbehandlung
Wir nehmen nun an, dass unmittelbar nach Start des Programms (noch vor dem fork-Aufruf) die maximal erlaubte Prozesszahl des ausführenden Nutzers auf 1 beschränkt wird. Es darf also nur ein einziger Prozess dieses Nutzers gleichzeitig existieren. Geben Sie hier die Ausgabe an, die in diesem Szenario vom Programm ausgegeben wird.
Hinweis: Das Einbinden der Header-Dateien sowie ein Teil der Fehlerbehandlung wurden ausgelassen. Gehen Sie von einem fehlerfreien Ablauf aus. Das Symbol ␣ steht für ein Leerzeichen.
Frage 3
Bisher nicht beantwortet Erreichbare Punkte: 2,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=2
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 4 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
UNIX Shell-Operatoren
Geben Sie die Auswirkungen der beiden Befehle “ls > wc” sowie “ls | wc” an und erläutern Sie anhand dessen den Unterschied zwischen den Shell-Operatoren “>” und “|”.
Frage 4
Bisher nicht beantwortet Erreichbare Punkte: 3,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=3
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 5 von 22)
Frage 5
Bisher nicht beantwortet Erreichbare Punkte: 5,00
Prozess-Scheduling mit Round Robin
Ein Betriebssystem verwaltet drei zyklisch arbeitende Prozesse P1, P2 und P3. Jeder Prozess führt zunächst Berechnungen auf der CPU aus. Sobald diese vollständig abgeschlossen sind, folgt ein E/A-Stoß, anschließend ist der Prozess wieder rechenbereit. Die Prozesse treffen zum Zeitpunkt der in der Tabelle angegebenen Ankunftszeit ein. In der folgenden Tabelle sind die Zeitangaben für die Ankunftszeit und Dauer von CPU- und E/A-Stößen jeweils in ms angegeben.
Prozess Ankunftszeit CPU-Zeit E/A-Zeit
P1 0 20 20 P2 10 40 20 P3 30 40 30
Zeichnen Sie in das folgende Gantt-Diagramm ein, wie die drei Prozesse P1, P2 und P3 abgearbeitet werden, wenn das Scheduling nach der Round-Robin-Strategie mit einer Zeitscheibendauer von 30 ms vorgenommen wird. Die Prozessumschaltzeit kann vernachlässigt werden. E/A-Vorgänge können parallel ausgeführt werden. Markieren Sie in dem folgenden Diagramm die Prozesszustände entsprechend der Legende. Es genügt, die ersten 200ms anzugeben.
Hinweis: Die ersten zwei Zeiteinheiten sind bereits fertig ausgefüllt.
P1 X X P2 — P3
t[ms] 0 50 100 150 200
Legende
X Running — Ready O Blocked
P1 X X P2 — P3
Backup-Tabellen
P1 X X P2 — P3
◄ Prüfungsfähigkeit
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=4 2/3
2021/7/14 Probeklausur (Seite 6 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Schedulingverfahren
Welchen wesentlichen Vorteil hat Virtual Round Robin gegenüber Round Robin? Nennen Sie zudem den wesentlichen Unterschied zwischen Round Robin und Virtual Round Robin, der diesen Vorteil bewirkt.
Frage 6
Bisher nicht beantwortet Erreichbare Punkte: 3,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=5
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 7 von 22)
Frage 7
Bisher nicht beantwortet Erreichbare Punkte: 6,00
Synchronisation
Im Folgenden sind C-Programmausschnitte von zwei nebenläufigen Programmen A und B gegeben, die auf einem gemeinsamen Speicher arbeiten. Die Funktion arbeite(int *,int *) verändert die referenzierten Parameter a, b und c und setzt dabei voraus, dass diese während der Ausführung nicht von anderen Prozessen verändert werden (gegenseitiger Ausschluss). Die Mutex-Variablen mutex a, mutex b und mutex c sind vorgeben um den Zugriff auf den gemeinsamen Speicher zu schützen. Mit lock(Mutex *) und unlock(Mutex *) werden diese gesperrt bzw. wieder freigegeben.
/* gemeinsamer Speicher */
int a = 0, b = 0, c = 0; Mutex mutex a;
Mutex mutex b;
Mutex mutex c;
Zeile: /* Programm A */
A1 lock(&mutex a); B1
A2 lock(&mutex b); B2
A3 arbeite(&a, &b); B3
A4 unlock(&mutex b); B4
A5 lock(&mutex c); B5
A6 arbeite(&a, &c);
A7 unlock(&mutex a);
A8 unlock(&mutex c);
Zeile: /* Programm B */ lock(&mutex c); lock(&mutex a);
arbeite(&c, &a); unlock(&mutex a); unlock(&mutex c);
1) Verklemmungen (4 Punkte) Geben Sie einen konkreten Programmablauf der beiden Programme A und B an, bei dem es zu zyklischem Warten (circular wait) kommt. Tragen Sie schrittweise in die folgenden Tabelle ein, welche Zeile (A1-A8, B1-B5) abgearbeitet werden soll, bis es zur Verklemmung kommt.
Hinweis: Im ersten Schritt ist also entweder A1 oder B1 einzutragen. Die korrekte Lösung benötigt nicht alle Zellen der Tabelle. 2) Vorbeugung (2 Punkte) Beschreiben Sie, wie der obige Programmcode geändert werden muss, so dass es nicht zu zyklischem
Warten kommen kann. Sie können dabei Bezug auf die Zeilen (A1-A8, B1-B5) nehmen.
1) Verklemmungen (4 Punkte)
Schritt 1 2 3 4 5 6 7 8 9 10 11 12 13 Zeile
Backup-Tabelle:
Schritt 1 2 3 4 5 6 7 8 9 10 11 12 13 Zeile
2) Vorbeugung (2 Punkte)
◄ Prüfungsfähigkeit
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=6 2/3
2021/7/14 Probeklausur (Seite 8 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Erzeuger-/Verbraucher-Problem
In den folgenden C-Programmausschnitten ist ein Erzeuger-/Verbraucher-Problem gegeben, bei dem eine gemeinsame Queue queue von zwei Prozessen genutzt werden soll. Vorgegeben ist, dass der Erzeuger-Prozess neue Elemente mit der Funktion produce erzeugt und diese mit enqueue in die Queue einfügt. Der Verbraucher-Prozess nimmt Elemente mit dequeue aus der Queue und verbraucht diese mit der Funktion consume. Außerdem ist vorgegeben, dass durch die Semaphore elements_ready der Verbraucher nur Elemente aus der Queue entnimmt, wenn zuvor der Erzeuger Elemente eingefügt hat.
Damit es beim Zugriff auf die Queue nicht zu race conditions kommt, darf immer nur ein Prozess zur gleichen Zeit auf die Queue zugreifen, was mit der Semaphore mutex realisiert werden soll. Die Queue soll außerdem maximal 100 Elemente gleichzeitig aufnehmen, was mit der Semaphore max_elements realisiert werden soll. Sorgen Sie nur durch die entsprechende Initialisierung der Semaphoren mutex und max_elements und durch Einfügen der Semaphor-Operationen p(&mutex), p(&max elements), v(&mutex) und v(&max elements) innerhalb des Codes dafür, dass die Erzeuger- und Verbraucher-Prozesse entsprechend der oberen Beschreibung synchronisiert werden.
Frage 8
Bisher nicht beantwortet Erreichbare Punkte: 6,00
/* gemeinsamer Speicher */
Semaphore mutex = ; Semaphore max_elements =
Semaphore elements_ready = 0; struct list *queue;
;
/* Erzeuger */
Element *e = produce();
enqueue(queue, e);
v(&elements_ready); // Signal
/* Verbraucher */
Element *e;
p(&elements_ready);// Signal
e = dequeue(queue);
consume(e);
◄ Prüfungsfähigkeit
Direkt zu:
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=7
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 9 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Verklemmungen
Erklären Sie kurz den Unterschied zwischen einem Deadlock und einem Livelock. Weshalb sind Deadlocks das “geringere Übel”?
Frage 9
Bisher nicht beantwortet Erreichbare Punkte: 3,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=8
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 10 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speicherverwaltung
Ist die folgende Aussage wahr oder falsch?
Hinweis: Eine falsche Antwort führt nicht zu Punktabzug.
Bitte wählen Sie eine Antwort:
Wahr Falsch
◄ Prüfungsfähigkeit
Frage 10
Bisher nicht beantwortet Erreichbare Punkte: 0,50
Mit virtuellem Speicher wird der Anwendung mehr Speicher als physikalisch verfügbar vorgetäuscht.
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=9
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 11 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speicherverwaltung
Ist die folgende Aussage wahr oder falsch?
Hinweis: Eine falsche Antwort führt nicht zu Punktabzug.
Bitte wählen Sie eine Antwort:
Wahr Falsch
◄ Prüfungsfähigkeit
Frage 11
Bisher nicht beantwortet Erreichbare Punkte: 0,50
Virtueller Speicher erlaubt dem Betriebssystem nicht benötigte Speicherbereiche auszulagern.
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=10
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 12 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speicherverwaltung
Ist die folgende Aussage wahr oder falsch?
Hinweis: Eine falsche Antwort führt nicht zu Punktabzug.
Bitte wählen Sie eine Antwort:
Wahr Falsch
◄ Prüfungsfähigkeit
Frage 12
Bisher nicht beantwortet Erreichbare Punkte: 0,50
Das dirty bit in der Seitenkacheltabelle gibt an, ob eine Seite gelesen wurde.
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=11
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 13 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speicherverwaltung
Ist die folgende Aussage wahr oder falsch?
Hinweis: Eine falsche Antwort führt nicht zu Punktabzug.
Bitte wählen Sie eine Antwort:
Wahr Falsch
◄ Prüfungsfähigkeit
Frage 13
Bisher nicht beantwortet Erreichbare Punkte: 0,50
Ein größerer Hauptspeicher unter Verwendung der FIFO-Ersetzungsstrategie führt immer zu weniger Aus-/Einlagerungen.
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=12
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 14 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speicherverwaltung
Ist die folgende Aussage wahr oder falsch?
Hinweis: Eine falsche Antwort führt nicht zu Punktabzug.
Bitte wählen Sie eine Antwort:
Wahr Falsch
◄ Prüfungsfähigkeit
Frage 14
Bisher nicht beantwortet Erreichbare Punkte: 0,50
Seitenadressierung benötigt keine Kompaktifizierung.
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=13
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 15 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speicherverwaltung
Ist die folgende Aussage wahr oder falsch?
Hinweis: Eine falsche Antwort führt nicht zu Punktabzug.
Bitte wählen Sie eine Antwort:
Wahr Falsch
◄ Prüfungsfähigkeit
Frage 15
Bisher nicht beantwortet Erreichbare Punkte: 0,50
Seitenadressierung erzeugt externen Verschnitt.
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=14
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 16 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Speichersegmentierung
Geben Sie für die Speicheranfragen (logische Adressen) 0x10C0 FFEE und 0x0242 4710 die physikalische Adresse unter Anwendung des Speichersegmentierungsverfahrens an. Die höchstwertigen 8 Bit der logischen Adresse geben die Position innerhalb der Segmenttabelle an. Löst eine Speicheranfrage eine Zugriffsverletzung aus, so machen Sie dies bitte kenntlich.
Frage 16
Bisher nicht beantwortet Erreichbare Punkte: 4,00
Segmenttabelle:
Startadresse 0016 0010 000016
0116 B542 000016
0216 0815 000016
0316 8080 000016
…
1016 4310 000016
Länge 00 000F16
01 000016
50 000016
00 FFFF16
00 FFFF16
logische Adresse: 0x10C0 FFEE16 → physikalische Adresse:
logische Adresse: 0x0242 471016 → physikalische Adresse:
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=15
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 17 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Seitenflattern
Was passiert beim Seitenflattern (Thrashing) im Betriebssystem? Nennen Sie einen Lösungsansatz für dieses Problem und beschreiben Sie ihn stichpunktartig.
Frage 17
Bisher nicht beantwortet Erreichbare Punkte: 4,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=16
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14
Probeklausur (Seite 18 von 22)
Meine Startseite / Meine Kurse /
Frage 18
Bisher nicht beantwortet Erreichbare Punkte: 2,00
Platzierungsstrategien
V_BS-21_1
/ Probeklausur /
Probeklausur
Die folgenden Tabellen zeigen die Belegung eines Speichers der Größe 32 MiB. In der ersten Tabelle sind beispielsweise zum Zeitpunkt t=1 8 MiB von Prozess A belegt. Tragen Sie in die Zeile für t=2 die Speicherbelegung nach der Ausführung der jeweiligen Operation ein. Wenden Sie hierbei das Buddy-Verfahren an.
Hinweis: Falls eine Belegung nicht erfüllt werden kann, kennzeichnen Sie die betreffende Tabelle deutlich. Wichtig: Beachten Sie, dass ein Feld in den Tabellen zwei MiB entspricht!
1) Prozess P belegt 6 MiB
t 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1AAAAC DD E
2
2) Prozess P belegt 9 MiB
t 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1AA EE 2
1) Prozess P belegt 6 MiB
t 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1AAAAC DD E
2
Weitere Anmerkungen:
2) Prozess P belegt 9 MiB
t 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1AA EE 2
Weitere Anmerkungen:
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=17 1/2
2021/7/14 Probeklausur (Seite 19 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
E/A-Scheduling
Gegeben sei ein Plattenspeicher mit 16 Spuren. Der E/A-Scheduler bekommt immer wieder Aufträge für eine bestimmte Spur. Die Leseaufträge in L0 sind dem E/A-Scheduler bereits bekannt. Nach einem bearbeiteten Auftrag erhält er die Aufträge in L1. Nach vier weiteren (d.h. nach insgesamt fünf) bearbeiteten Aufträgen erhält er die Aufträge in L5. Zu Beginn befindet sich der Schreib-/Lesekopf über Spur 0.
L0 = {3, 7, 9, 15} L 1 = {2, 13}
L 5 = {0, 7, 8, 12}
Tragen Sie in der Vorlage die Reihenfolge der gelesenen Spuren für einen E/A-Scheduler ein, der nach der Fahrstuhlstrategie (Elevator) arbeitet.
Frage 19
Bisher nicht beantwortet Erreichbare Punkte: 4,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=18
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 20 von 22)
Meine Startseite / Meine Kurse / V_BS-21_1 / Probeklausur / Probeklausur
Geräteklassen
Nennen Sie die aus der Vorlesung bekannten Geräteklassen von E/A-Geräten, und erläutern Sie kurz den Unterschied zwischen ihnen.
Frage 20
Bisher nicht beantwortet Erreichbare Punkte: 3,00
◄ Prüfungsfähigkeit
Direkt zu:
Moodle | Über ITMC | Kontakt | Impressum | Datenschutzerklärung
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=19
1/2
Anonyme Umfrage zur Probeklausur ►
2021/7/14 Probeklausur (Seite 21 von 22)
Frage 21
Bisher nicht beantwortet Erreichbare Punkte: 15,00
Programmieraufgabe execute
Implementieren Sie eine Funktion execute, die eine als Zeichenkette (Parameter line) vorliegendes Kommando mittels execvp() in einem neuen Prozess ausführt.
Beispiel: command -argument1 -argument2 -argument3 target
Dazu soll die übergebene Zeile zunächst an Tabulatoren und Leerzeichen geteilt und so in Kommandoname und Argumente zerlegt werden (analog zu dem Format von argv[]). Anschließend wird das Kommando mit seinen Argumenten in einem neu erzeugten Prozess ausgeführt.
Ist eine Ausführung grundsätzlich nicht möglich soll -1 zurückgegeben werden. Beendet sich dieses Programm selbst, soll dessen Exit-Status zurückgegebenwerden,ansonstenwird-2zurückgegeben.
Schnittstelle:
int execute(const char *line);
Rückgabewerte:
-1: bei der Bearbeitung trat ein Fehler auf
-2: das Kind lieferte keinen Exit-Status
Korrekte Beendigung: Exit-Status des ausgeführten Kommandos
Hinweise:
Einfache syntaktische Fehler (z.B. vergessene Strichpunkte) führen nicht zu Punktabzug, es geht um die sematische Umsetzung.
Verwenden Sie die Funktion strsep() zum Zerteilen der Zeichenkette. Beachten Sie zu deren Nutzung die man-Page.
Es ist nicht notwendig, die Funktionen malloc() und realloc() zu verwenden. Überlegen Sie stattdessen wie viele Einträge der zu erzeugende Argumentenvektor im schlimmsten Fall aufweisen könnte.
Die Funktion soll keine Meldungen ausgeben, auch keine Fehlermeldungen.
Relevante Manual-Seiten:
execvp, wait, strsep
#include
/* Funktion execute */
https://moodle.tu-dortmund.de/mod/quiz/attempt.php?attempt=958285&cmid=941194&page=20 2/3