Aufgabe 1
BS Klausurprotokoll – 2020 II
Thogs September 21, 2020
1. Was bewirkt folgender Befehl?
find | grep “dortmund” | wc –
2. Programmcode wie folgt: (Selbe Aufgabe wie 2018) int num = 4;
void confuse () { num−−;
printf(“%d␣”, num); }
void main () { t_tr thread ;
int pid = fork (); num−−;
if (pid > 0) { // Elternprozess? num−−;
wait(NULL); num−−;
} else {
printf(“%d␣”, num);
pthread_create(&thread , NULL, &confuse , NULL); pthread_join(&trhead );
printf (“%d␣” , num − 1);
exit (0);
}
1
}
(a) Was wird ausgegeben?
num−−;
printf (“%d\n” , num); exit (0);
Loesung:3 2 1 0
(b) Was könnte stattdessen ausgegeben werden, wenn das wait(NULL) in Zeile 14
weggelassen wird? 子进程可能成为孤儿进程/僵尸进程
3. Warum werden bereits beendete Prozesse noch nicht direkt gelöscht? 为了将子进程的状态
信息传递给父进程
4. Standardaufgabe zu Round Robin mit einer Zeitscheibe von 20 ms – Prozesse einze- ichnen mit Blocked, Ready, Running (Im Stil von Probeklausur 2017 Aufgabe 1 a))
Aufgabe 2
1. Aufgabe zu Semaphoren: Es soll ein kritischer Abschnitt beschützt werden, indem
2 Semaphoren genutzt werden unter Verwendung von V, P bzw. wait/signal. Es gilt die Semaphoren mit sinnvollen Werten zu initialisieren und den Programmcode entsprechend zu ergänzen.
(a) i. Der kritische Abschnitt darf nur von einem Prozess gleichzeitig betreten werden:
Semaphore S1 = 1__;
prozess1 () {
P(S1)
// Kritischer Abschnitt
V(S1)
}}
void
void prozess2 () { P(S1)
// Kritischer Abschnitt
V(S1)
Der kritische Abschnitt darf nur von bis zu 3 Prozessen gleichzeitig be- treten werden:
2
释放 占用
Semaphore S2 = __;
3
prozess1 () {
P(S2)
// Kritischer Abschnitt
V(S2)
}}
void
void prozess2 () { P(S2)
Nun wird stattdessen auf eine Queue zugegriffen. Es können beliebig viele Elemente vom producer an die Queue angehangen werden, es darf jedoch vom consumer nur ein Element entfernt (“konsumiert”) werden, wenn die Queue nicht leer ist. Zu Beginn ist die Queue leer:
void producer () {
queue . enqueue ( ) ;
V(S3)
(b) UmdenZugriffaufkritischeBereicheabzusichern,könnenAssembler-Instruktionen verwendet werden, um vor Betreten Interrupts abzuschalten und nach Ver- lassen wieder anzuschalten. Nennen Sie 2 Gründe, warum dies im Allgemeinen nicht verwendet werden sollte.
(c) Nennen Sie alle 4 Bedingungen, die für eine Verklemmung existieren müssen (Es reichen die deutschen/englischen Bezeichnungen):
i. ii. iii.
Semaphore S3 = __;
0
queue . dequeue ( ) ;
Semaphore S4 = __; void consumer () {
P(S3)
0
}}
3
// Kritischer Abschnitt
V(S2)
iv.
(d) Nennen Sie 2 Möglichkeiten, Verklemmungen vorzubeugen oder aufzulösen, unter Bezug auf die entsprechend entkräftete Bedingung (1-4) aus d)
Aufgabe 3
1. Es waren 2 virtuelle Adressen gegeben, die in physische konvertiert werden sollten, anhand einer gegebenen Tabelle. (Im Stil von Probeklausur 2020 Aufgabe 3 a))
2. VerschiedeneAussagenankreuzen(KeinenegativenPunktebeifalschemAnkreuzen): wahr falsch
X X
X X
X
Die gleiche virtuelle Adresse kann bei verschiedenen Prozessen auf verschiedene Daten zeigen
TLBs dienen der Beschleunigung der Konvertierung zwischen virtuellen und physischen Adressen
FIRST FIT Best Fit wählt die erste passende Lücke
Seitenflattern bezeichnet das häufige Einlagern kurz zuvor ausgelagerter Seiten
Seitenadressierung erzeugt internen Verschnitt
3. Es sollte für 2 Speicherallokationen angegeben werden, ob Platz ist und falls ja, wo der Prozess Platz bekommt (Im Stil von Probeklausur 2020 Aufgabe 3 b) nur mit einem Szenario für Buddy-Verfahren und einem Szenario für Next Fit).
4. Eine Tabelle zur Seiteneinlagerung für das LRU (Least Recently Used) Verfahren ausfüllen (Im Stil von Probeklausur 2020 Aufgabe 3 c).
Aufgabe 4
1. Es war eine Festplatte gegeben und 3 Mengen an Zugriffen, welche nach 2 verschiede- nen Verfahren durchgeführt werden sollten (Im Stil von Probeklausur 2020 Aufgabe 4 c), jedoch mit zwei Verfahren, aber für ein und dieselben Zugriffsmengen):
(a) Elevator (b) SSTF
2. Für folgende Ereignisse soll die Reihenfolge nummeriert werden bei der Erzeugung von Interrupts:
4
3 2
1 4
Akzeptieren des Interrupts durch die CPU (“acknowledge”) Controller signalisiert Unterbrechungsanforderung Gerät hat Operation beendet (Interrupt Request, “IRQ”) Controller nennt der CPU die Interrupt Nummer
3. Die folgenden E/A-Varianten erläutern:
(a) Programmierte E/A
(b) Unterbrechungsorientierte E/A
(c) DMA
Aufgabe 5
1. VerschiedeneAussagenankreuzen(KeinenegativenPunktebeifalschemAnkreuzen): wahr falsch
X
Spin Locking basiert auf dem Prinzip des aktiven Wartens
Eine gemeinsame Ready-Liste von Prozessen für alle CPUs erleichtert die Synchronisation Cache-Kohärenz bedeutet, dass in allen Caches bei einem Eintrag der gleiche Wert steht Der Umgang mit Multiprozessorsystemen in aktuell “normalen” PCs ist noch nicht relevant
2. Erläutern Sie den Unterschied zwischen Space Sharing und Time Sharing
5