CS计算机代考程序代写 ER cache 1 Prozesse und Scheduling (11 Punkte)

1 Prozesse und Scheduling (11 Punkte)
a) Prozesserzeugung (insgesamt 8 Punkte)
1. Prozessmodelle (7 Punkte) Was geben die folgenden C-Programme aus? Wieso ist die Ausgabe unterschiedlich? #include der Systemheader und Fehlerabfragen wurden der Einfachheit halber weggelassen; gehen Sie von einer fehlerfreien Abarbeitung aller Systemaufrufe aus.
1 int counter; 1 22
3 void ∗erledigeArbeit (void ∗param) {
4 counter++;
5 printf (“%d\n” , counter ); 66
7 return NULL; 7 8} 8} 99
counter ;
∗erledigeArbeit (void ∗param) { counter++;
10
11
12
13
14
15
16 17}
18
19 }
Ausgabe:
int main(void) { counter = 42;
10 int main(void) {
11 counter = 42; 12 pthread_t id ;
if (fork() == 0) { 13
}else{ return 0;
erledigeArbeit (NULL);
14 pthread_create(&id ,
15 NULL ,
16 erledigeArbeit , 17NULL);
18 pthread_join(id , NULL); 19 erledigeArbeit (NULL); 20 return 0;
21 }
Ausgabe:
erledigeArbeit (NULL);
int 3 void
4 5
printf (“%d\n” , return NULL;
counter );
2. Synchronisation (1 Punkt) An welcher Stelle muss in dem linken Programm ein Aufruf von wait() eingefügt werden, damit die Ausgabe bei jeder Ausführung in der gleichen Reihenfolge erfolgt?
Probeklausur Betriebssysteme, 29.06.2020 Seite 1 von 8

b) „fork“-Aufruf (3 Punkte) Durch welchen Mechanismus können moderne UNIX-Systeme, die mit ei- ner Memory Management Unit (MMU) ausgestattet sind, die Ausführung des „fork“-Systemaufrufes beschleunigen? Erläutern Sie diesen Mechanismus kurz.
Probeklausur Betriebssysteme, 29.06.2020 Seite 2 von 8

2 Synchronisation und Verklemmungen (14 Punkte)
a) Synchronisation (5 Punkte)
Die drei Funktionen des folgenden Programms werden als Fäden ausgeführt. Alle drei Fäden sind zur selben Zeit laufbereit. Sorgen Sie durch geeignete Synchronisation der Abläufe dafür, dass das Programm die ersten sechs Primzahlen in einer aufsteigenden Reihenfolge (2, 3, 5, 7, 11, 13) ausgibt. Zu diesem Zweck stehen ihnen drei Semaphore zur Verfügung. Diese gilt es geeignet zu initialisieren und anschließend, an den freien Stellen im Programm, die nötigen Semaphor-Operationen einzufügen.
Initialwerte der Semaphoren: S1: 0 S2: 0 S3: 0
f1() {
printf(“3”);
printf(“5”);
}
f2() {
printf(“2”);
printf(“13”);
}
f3() {
printf(“7”);
printf(“11”);
}
b) Verklemmungsvarianten (3 Punkte) Beschreiben Sie den Begriff des Livelocks. Welche der beiden Verklemmungsvarianten (deadlock, livelock) ist prinzipiell problematischer? Begründen Sie ihre Ant- wort.
Probeklausur Betriebssysteme, 29.06.2020 Seite 3 von 8

c) Prozessverläufe (6 Punkte) Gegeben seien folgende drei Prozessfortschrittsdiagramme (1,2,3) mit je- weils zwei Prozessen (P1 und P2), die exklusiv nutzbare Betriebsmittel (L und R) anfordern. Falls ein Betriebsmittel belegt ist, blockiert der anfordernde Prozess solange, bis die gewünschte Ressource wieder frei wird. Gehen Sie davon aus, dass beide Prozesse mit der Bearbeitung ihrer Aufgaben zur gleichen Zeit anfangen und jeder über einen eigenen Prozessor verfügt. Geben Sie für jedes der Dia- gramme an, ob eine Verklemmung stattfinden kann oder der jeweilige Ablauf verklemmungsfrei bleibt. Begründen Sie kurz ihre Antworten.
1)
Verklemmungsfrei: Ja Nein
L R
L R
Betriebsmittel
2)
Fortschritt
Prozess P1 Betriebsmittel
Fortschritt
Prozess P2
Fortschritt
Prozess P1 Betriebsmittel
Fortschritt
Prozess P2
Verklemmungsfrei: Ja Nein
Betriebsmittel
3)
Verklemmungsfrei: Ja Nein
Betriebsmittel
Probeklausur Betriebssysteme, 29.06.2020
Seite 4 von 8
Fortschritt
Prozess P1 Betriebsmittel
Fortschritt
Prozess P2
L R
L R
L R
L R

3 Speicherverwaltung und Virtueller Speicher (11 Punkte)
a) Speichersegmentierung (4 Punkte) Geben Sie für die Speicheranfragen (logische Adressen) 0x0000BEEF und 0x1CEB00DA 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.
Segmenttabelle:
Startadresse
0010 0000 00E016
0110 B542 000016
0210 0515 000016
0310 0006 000016

2810 0001 000016
Länge
21 20FF16
01 000016
20 000016
00 FFFF16
FF FFFF16
logische Adresse: 0x0000BEEF16
→ physikalische Adresse: 0x0000 BFcF
logische Adresse: 0x1CEB00DA16 → physikalische Adresse:
Probeklausur Betriebssysteme, 29.06.2020
Seite 5 von 8

b) Buddy-Verfahren (3 Punkte) Gegeben sei ein freier Arbeitsspeicher der Größe 32 MiB. Die Prozesse A, B, C und D fordern nacheinander Speicher ein. Ergänzen Sie die folgenden Tabellen um Markierungen für die Anfragen. Nutzen Sie das Buddyverfahren zur dynamischen Speicherverwaltung. Für den ersten Prozess A wurde der Speicher bereits allokiert.
Hinweis: Falls eine Belegung/Freigabe nicht erfüllt werden kann, kennzeichnen Sie die betreffende Zeile geeignet.
Wichtig: Beachten Sie, dass ein Feld in den Tabellen zwei MiB entspricht!
Prozess A: Prozess A belegt 6 MiB
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
AAAA
Prozess B: Prozess B belegt 9 MiB
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Prozess C: Prozess C belegt 1 MiB
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Prozess D: Prozess D belegt 6 MiB
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Probeklausur Betriebssysteme, 29.06.2020 Seite 6 von 8

c) LRU (4 Punkte) In einem System mit Seitenadressierung und der Seitenersetzungsstrategie LRU (Least Recently Used) tätigt ein Prozess Seitenzugriffe entsprechend folgender
Referenzfolge: 5, 3, 5, 1, 2, 5, 4, 6, 1
Das Betriebssystem sieht für diesen Prozess eine feste Anzahl von drei Hauptspeicherkacheln vor. Tragen Sie in die Tabelle unter „Hauptspeicher“ jeweils die Nummer der Seite ein, die zum gegebenen Zeitpunkt in der jeweiligen Kachel eingelagert ist. Die Felder unter „Kontrollzustände“ können Sie zum Notieren des Alters der eingelagerten Seiten zuhilfenehmen.
Referenzfolge 535125461
Hauptspeicher
Kontrollzustände
Kachel 1 5 Kachel 2 Kachel 3 Kachel 1 0 Kachel 2 Kachel 3
Probeklausur Betriebssysteme, 29.06.2020
Seite 7 von 8

4 Ein-/Ausgabe und Dateisysteme (9,5 Punkte)
a) Block-Buffer-Cache (3 Punkte) Nennen und erläutern Sie drei Ereignisse, die das Rückschreiben des Block-Buffer-Caches auslösen.
b) Kontinuierliche Speicherung (2 Punkte) Nennen Sie je einen Vor- und einen Nachteil der kontinu- ierlichen Speicherung von Dateien.
c) I/O-Scheduling (4,5 Punkte) Gegeben sei ein Plattenspeicher mit 8 Spuren. Der dazugehörige I/O- Scheduler bekommt immer wieder Leseaufträge für eine bestimmte Spur. Die Leseaufträge in L1 sind dem I/O-Scheduler bereits bekannt. Nach drei bearbeiteten Aufträgen erhält er die Aufträge in L2. Nach weiteren drei (d.h. nach insgesamt 6) bearbeiteten Aufträgen erhält er die Aufträge in L3. Zu Beginn befinde sich der Schreib-/Lesekopf über Spur 0.
L1 = {1,4,7,2},L2 = {3,6,0},L3 = {5,2}
Der I/O-Scheduler arbeitet nach der Fahrstuhlstrategie (Elevator). Bitte tragen Sie die Reihenfolge der gelesenen Spuren ein.
!. .. .. .. .. .. .. .. ..
Probeklausur Betriebssysteme, 29.06.2020 Seite 8 von 8