Fachschaft Informatik

Prüfungsprotokolle


Prüfungsprotokolle lesen



Protokolle (16 gefunden)

Nr.PrüferFach
127 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
10.Aug.2005

= Benötigte Lernzeit als Empfehlung
1-3 Wochen

= Verwendete Materialien (Bücher, Skripte etc...)
Vorlesungsfolien, Übersicht Prüfungskomplexe

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Ruhige, freundliche, ungezwungene Atmosphäre.

= Prüfungsfragen
Erstes Thema "Prozesse" (fast die ganze Prüfungszeit):
Definition, Beschreibung, Wie realisiert? Im Prinzip genau
so, wie in der Übersicht Prüfungskomplexe angezeigt und in
den Folien ausgeführt (PID, fork, exec exit, Adressierung,
Prozesskontrollblock, Aufbau aus Stack, Heap, Data, Code,
..., besonders auch clone, vfork, fork und ihre Besonder-
heiten). Dazu ein bisschen Quelltext:
Zunächst einen Prozess neu per fork erzeugen, später dann
eine Pipe mit hinzufügen und zwischen Eltern- und Kind-
prozess Nachrichten umherschicken (aber sehr genau und jede
Anweisung auch erklären können!).

Letztes Thema "Virtuelle Maschinen" (5-10 min):
Ziele und Anwendungsgebiete virtueller Maschinen.
Welche Virtuelle Maschinen gibt es, worin unterscheiden
sie sich? Wie sind sie umgesetzt? Und ganz wichtig (ich
hatte es vergessen): Die x86-Architektur ist schwierig bis
gar nicht zu virtualisieren, weil manche Befehle Sachen
machen, die die Virtualisierungssoftware nicht nachvoll-
ziehen kann (pushf, iret: Folie 22 von Nr. 1-5 Virtual
Machines).

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Gute Prüfung. Meine 2,0 war sehr angemessen, weil ich das,
was er fragte wusste, manchmal ein bisschen unsicher war,
und nur beim letzten Thema wirklich Dinge nicht mehr
wusste.

Nr.PrüferFach
182 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
23.09.2006
= Benötigte Lernzeit als Empfehlung
2-3 Wochen
= Verwendete Materialien (Bücher, Skripte etc...)
Vorlesungsfolien + Mitschriften, Google
= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
sehr freundlich, entspannt, gemütlich
= Prüfungsfragen
1. Virtual Memory (als Einstieg ausgesucht)
warum gibt es das?
Welche Techniken zum Mapping?
Abgrenzung der Begriffe logische, virtuelle, physikal. Adresse
Vor-/Nachteile der verschiedenen Mappings, Kombination
Segment. und Paging
invertierte Pagetable (was ist das, Vor- Nachteile)

2. NTFS
(das war mein schwarzes Loch und hat mich eine bessere Not
gekostet)

3. Virtualisierung
Grafik zu VMM, VM + Erklärung
Techniken zur Virtualisierung der CPU (direct Execution +
binary Translation)
welche Formen der Binary Translation gibt es, warum gibt es
immer noch beide Formen (synthetische Instruktion vs. call)

4. Deadlocks und Starvation
Unterschied zw. Deadlock und Starvation
Avoidance: was ist das, wie funktioniert das
Safety-Algorithmus + Resource-Request-Algo. erläutern

Zusatzfrage: Monitore als Synchron.
Prinzip der Monitore, was ist das besondere an Monitoren (im
Unterschied zu den Semaphoren)

= Note (Optional)
2.0 (leider)
= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Die Note geht so in Ordnung. Leider hat mich das Nichtwissen
um NTFS eine bessere Note gekostet. Fair war insbesondere,
dass ich die Möglichkeit bekam, mit einer Zusatzfrage
wenigstens noch eine 2,0 zu bekommen.
Insgesamt kann ich nur jedem diesen Kurs und Prof. Redlich
als Prüfer empfehlen. Auch wenn der Aufwand während des
Semesters im Praktikum sehr hoch ist.

Nr.PrüferFach
185 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
August 2006

= Benötigte Lernzeit als Empfehlung
6 Tage, 5-8Stunden pro Tag - macht ungefähr 42 Stunden ;)

= Verwendete Materialien (Bücher, Skripte etc...)
lediglich das Vorlesungsskript (zusätzlich noch wikipedia)

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
sehr entspannte Athmosphäre

= Prüfungsfragen
- entweder, man wählt das Anfangsthema, oder man darf ein
Thema gänzlich ausschliessen
- ansonsten sollte man alle Fragen der Prüfungskomplexe
beantworten können

* mein Thema: Scheduling
- es wurden alle Punkte der Prüfungskomplexe angesprochen
- wie kann man  bei RR fairness erzeugen (Kredits verteilen)

* Virtuelle Maschinen
- VM-Typen
- warum kann man in XEN diese nicht virtualisierbaren
Befehle normal benutzen? (weil man sich ausschließlich im
user-level befindet)

* NTFS (scheint sehr häuffig gefragt zu werden!!!)
- Aufbau (Boot, MFT, Daten, Attribute, Extends ... )
- wie sieht ein Eintrag (einer Datei) in der MFT aus?
- warum können Dateien 2 Namens-Attribute haben? (DOS, Extendet)
- warum können Dateien 2 Daten-Attribute haben? (Daten + 1
Stream - z. B. Bild mit Voransicht)
- Encrypted Filesystem (EFS) (also kurz erklären: FEK ist
ein symmetrischer Schlüssel, der wird für jeden user mit dem
jeweiligen asymetrischen schlüssel verschlüsselt ... +
vorteile / nachteile ... )


= Note (Optional)
1.3 :)

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
kann jedem empfehlen diese Prüfung zu machen 

Nr.PrüferFach
198 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
  10.10. 2006

= Benötigte Lernzeit als Empfehlung
        Da der Berg an in der Vorlesung besprochenem Stoff
riesig ist, sollte man für eine gute Note schon 2-3 Wochen 
veranschlagen. Prof. Redlich bemüht sich, die gesamte
Bandbreite von Themen abzufragen.

= Verwendete Materialien (Bücher, Skripte etc...)
        Folien der Vorlesung.
Ein kleiner Tipp am Rande: SAR ist nicht sehr zuverlässig.
Sichert euch also am besten alle Folien im Vorraus, dann
steht ihr nicht so dumm da wie ich, wenn am Wochenende vor
der Prügung der Server nicht erreichbar ist.
        Silberschatz (neueste Auflage)
        Linux-Kernelarchitektur (Kernel 2.6)
-> Für beide sind nur wenige Exemplare in der Bibliothek   
   vorhanden.
        Inside Windows NT 

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Die Prüfungsatmosphäre ist mit Abstand die entspannteste,
die ich bisher bei einer Prüfung erlebt habe.
Prof. Redlich lässt einen immer Ausreden und macht selten
abrupte Sprünge, was die behandelten Themen angeht.
Weiß man einmal nicht weiter, versucht er einem mit kleinen
Tipps wieder auf die Beine zu helfen. 

= Prüfungsfragen
        Linux-Bootprozess
        Virtuelle Maschinen:
VMM, VM, Ablauf der Codeausführung, nicht
strikt-virtualisierbare Architekturen, insbesondere x86 mit
iret + fpush, Lösung dieser Probleme auf Xen.
        Threads
User-Level vs Kernel-Level, Many-To-Many-Model.
        Thrashing
Beschreibung des Phänomens; Situationen, in denen es
auftritt; Rolle von Working-Set und Balance-Set bei der
Vermeidung; Bestimmung des Working-Sets durch die
PageFaultFrequency (Diagramm im entsprechenden Foliensatz).

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Für mich persönlich kann ich ein durchweg positives Fazit
der Prüfung ziehen. Die Benotung war gerade angesichts der
ein oder anderen Schwäche meinerseits (Xen - *aaarrggghhh*)
sehr fair. Der Praktikumsaufwand sowie der Lernaufwand für
die Prüfung sind meines Erachtens enorm. Trotzdem liegt man
mit diesem Halbkurs sicherlich nicht daneben.

Nr.PrüferFach
200 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

Datum der Prüfung:
10.10.2006

Benötigte Lernzeit als Empfehlung:
Nicht zu knapp! Mehrere Wochen.

Verwendete Materialien (Bücher, Skripte etc...)
V. a.:
-"Operating System Principles", Seventh Edition 
(Silberschatz, Galvin, Gagne)
Ansonsten:
-VL-Folien (v. a. für Thema Virtual Machines)
-"Structured Computer Organization", Fourth Edition 
(Tanenbaum) (für Linking, Loading, Segmentation, Paging)
-"Moderne Betriebssysteme" (Tanenbaum) (Unix filesystem, 
NTFS)
-Online Manuskript zu "Linkers and Loaders" (Levine) 
(Kapitel 0 und 1)

"Atmosphäre" der Prüfung / Verhalten der Beisitzer:
Angenehm. Prof. Redlich sagte mir, ich müsste zwar meinen 
Personal- und Studentenausweis zeigen, aber er kennt mich 
ja schon, und auch dem Beisitzer Herr Gandre war ich nicht 
unbekannt. ;)
Das Verhalten von Herrn Gandre war tadellos. ;)

Prüfungsfragen:
Ich konnte mir zu Beginn aussuchen, ob ich ein bestimmtes 
Thema abwählen oder auswählen möchte. Ich entschied mich 
für die Auswahl von Virtual Memory, was Prof. Redlich 
irgendwie erfreute. ;) Über dieses Thema durfte ich dann 
auch lange und ausführlich sprechen.
Dann ging es um NTFS, wozu ich zwar so einiges sagen 
konnte, was aber nicht meine Stärke war.
Zu Encrypted File Systems konnte ich garnichts sagen.
Dann ging es noch kurz um Virtal Machines

Microkernel war auch noch kurz dran: Hat Linux einen 
Microkernel? Merkmale von einem Microkernel


Note:
1,3

Fazit (Gute/schlechte Prüfung , angemessene Benotung 
etc...):
Gute Prüfung, freundliche Bewertung. Man muss viel lernen, 
eine gute Note ist kein Schnäppchen. Aber die Benotung war 
völlig o.k. und fair. Andere Prüfer (keine Namen... ;)) 
hätten möglicherweise härter bewertet.

Nr.PrüferFach
297 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
9.10.2007

= Benötigte Lernzeit als Empfehlung
2-3 Wochen

= Verwendete Materialien (Bücher, Skripte etc...)
Folien, Buch von Silberschatz, Wikipedia (englische Variante)

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Angenehme, entspannt Atmosphäre. Beisitzer war ruhig.

= Prüfungsfragen

Man hat eine Vorbereitungsaufgabe bekommen, die man in der
Zeit lösen konnte wie der Vorgänger in der Prüfung ist.

1. Vorbereitungsaufgabe: Deadlock
   - Was ist ein Deadlock?
   - Welche Bedingungen müssen gelten, damit einer auftritt?
(Coffmann Kriterien)
   - Für jedes Kriterium erklären, wie man es verhindern kann.
   - Dann konkrete Frage zur Aufgabe: PC Pool mit
Druckerserver (inkl. Spooling)
     - Kann ein Deadlock auftreten? Wie behebt man diesen?
     - Welche Ressourcen sind unterbrechbar, welche nicht?
2. Synchronisation und Nebenläufigkeit
   - Was ist das Problem? (Race Conditions)
   - Wie kann man das Lösen? ( Mutexe + Atomare Instruktionen)
   - Wie sind Mutexe implementiert?
   - Was kann man machen, wenn kein ASWAP unterstützt wird?
(Simulation mit restartible atomic sequence -> Scheduler
anpassen)

3. Bootprozess
   - Was passiert wenn Sie Ihren Rechner anschalten?
   - Wie kommt das BIOS in den Speicher?
   - Master Boot Sector, Partitionstabelle erläutern
   - Bootloader erläutern

4. Flash File System
   - welche zwei Ansätze (layered vs. YAFFS + JFFS)
   - Unterschiede erläutern
   - ein bisschen genauer auf YAFFS eingehen (logged file
system)

5. Mitzenbacher Theorem erläutern + Kurve zeichnen und erklären.

= Note (Optional)
1.3

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Gute und faire Prüfung. Die Veranstaltung und Prüfung kann
ich nur empfehlen.

Nr.PrüferFach
524 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
18.07.11

= Benötigte Lernzeit als Empfehlung
min. 1 Woche
= Verwendete Materialien (Bücher, Skripte etc...)
Skript, Wiki
= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer
SCHRIFTLICHE PRÜFUNG
= Prüfungsfragen
Die Prüfung wurde in BA und D unterteilt. Wobei BA Aufg 1-8 + opt. 9 
und     D  Aufg 1-11 + opt. 12 
erledigen mussten.

1) Vorteile Mikrokernel gegenüber Monolith und umgekehrt
2) ...
3) Schedulingstrategien (FCFS, SJF, Priority, RR), dazu auswerten der turarroundtime und Latenz
4) Programmierung eines Semaphors mittels vorgegebenen Mutex
5) Threadsafe / re-entrant Unterschied? Warum ist das wichtig für Threads?
6) Pagetable.. Größe berechnen, Anzahl Einträge, Inverted Pagetable
7) zu gegebenen Quellcode eines Bankenproblems (Transaktionen) entscheiden, ob es zu Deadlocks bzw. Race Conditions kommen kann (Begründung!)
8) Coffmann Kriterien nennen
im weiteren noch : 
9) 
-FAT : Berechnung der Cluster und FAT Größe bei gegebenen Plattengrößen
-Inode : zu gegebenen Werten max. Dateigröße berechnen
Zusatz : Page Fault Frequenzy eines konkreten CPUs angeben, sodass CPU Leistung min. die Hälfte ist

= Note (Optional)
noch nicht da
= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
absolut faire Prüfung, es hätte wohl wesentlich schlimmer kommen können. Man sollte in der Vorbereitung ALLE Rechnungen nachvollziehen. Prof. Redlich übernimmt die Beispiele aus der Folien nicht, sondern ändert die Werte. Es muss also verstanden werden ! 
Alles in allem eine empfehlenswerte Prüfung

Nr.PrüferFach
535 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung: Oktober 2011
= Benötigte Lernzeit als Empfehlung: 2 Wochen täglich 8 Stunden - Ich konnte die Vorlesung nicht besuchen.
Vorbereitung:
Relevante Kapitel im Tannenbaum durcharbeiten und danach die Folien durchgehen und das Wissen mit den zusätzlichen kleinen Konzepten ergänzen. Vor allem werden in den Folien zum teil andere Begriffe benutzt. Man muss sich manchmal klarmachen, dass zwei Begriffe ein Konzept meinen. Virtuelle Maschinen habe ich ganz zum schluss gelernt um im Blick zu haben, was da wirklich alles getan werden muss. Aber die Großen Zusammenhänge sind wohl nicht erwünscht (in der Prüfung). s.u.

Fragen:
Womit wollen wir Anfangen?: Prozesse
Was ist ein Prozess und was gehört so dazu?
Wie wird ein Prozess erstellt?
Was ist eine Pagetable?
Wei groß wird denn eine Pagetable maximal wenn die Virtuelle Adresse soundso lang ist und soundsoviel Bit davon Offset sind.
Wie funktioniert eine Inverse Pagetable?
Wie kommt es zu Thrashing? 
Er wollte unbedingt wissen, dass es ab einem bestimmten Verhältnis von Resident Set und Working Set umkippt. 

Ich habe so gelertn, dass ich eine klare Vorstellung von den Dingen bekomme, über die man da redet. Ich hatte die ganzen Zusammenhänge und Konzepte zu einem Großen Bild erarbeitet. Auf eine Frage konnte ich also auf völlig verschiedenen Ebenen Antworten. Das heißt, ich wusste nicht welche Ebene er nun grad meint.

Beispiel:
Wie entseht ein Prozess? (genau diese Formulierung)
Aus welcher Sicht soll man das Beantworten?
Betriebssystemsicht und Hardwaresicht?: Das OS berechnet wie viel Speicher benötigt wird, initialisiert alle möglichen Tabellen (Processtable, Pagetable,...) und MMU und TLB und so weiter

Er wollte aber einfach ganz KONKRET fork() wissen - Also die Programmiersicht aus der ich wenn ich über Betriebssysteme nachdenke nicht gucke. Außerdem ist ja fork() und seine Arbeitsweise total UNIX-Spezifisch  und hat nichts mit dem großen ganzen Verständnis zu tun...


Was Professor Redlich aber leider haben will ist nicht prüfen ob eine Vorstellung vom großen und ganzen da ist sondern: Er stellt eine Frage sehr konkret gemeinte (aber leider nicht so zielgerichtet gestellte) Frage und hat seine 5 Punkte und Buzzwords im Kopf die kommen müssen.
Er will von der ABstrakten Vorstellung sehr schnell ins Detail und hakt so lange nach bis ein Wort fällt. 

Beispiel: Sie haben Workingset erwähnt wie heißt den die Menge von Pages die grad eingelagert sind? Gefragt war nach Residentset (was einfach nur ne Übersetzung von der Bedeutung ist. Das hat meinermeinung nach nichts mit Verständnis zu tun sondern mit Auswendiglernen. Nochdazu fällt dieser Begriff im Tanenbaum nicht, mit dem ich gelernt habe.

Entgegen allen anderen Berichten von Redlich über angenehme, faire Prüfung muss ich leider sagen, dass die Art des Stoffes der für eine gute Note verlangt wird, nicht meinen Vorstellungen von Lernen und Verstehen entspricht.

Er bemängelte genau das, was ich als erfolgreiches Verstehen sehe. Zu einem Aspekt alle anderen auch im Kopf zu haben. Er bemängelte, dass ich auf die Fragen viel zu breit gefächert und \"unkonzentriert\" geantwortet habe.

Also doch Karteikarten mit den 6 Begriffen zum Thema Threads auswendigkernen. Pah.

Aufgrund all dessen wurde das nur ne 3...

Nr.PrüferFach
609 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
08.08.13

= Benötigte Lernzeit als Empfehlung
Eine Woche, wenn man die Vorlesung mehr oder weniger regelmäßig besucht und die Praktikumsaufgaben bearbeitet hat.

= Verwendete Materialien (Bücher, Skripte etc...)
Vorlesungsfolien, Wikipedia

= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer
Schriftliche Prüfung, genügend Zeit, insgesamt angenehm

= Prüfungsfragen
1. Scheduling (6 Punkte)
Gegeben ein Zustandsgraph mit drei Zuständen (Running, Ready, Blocked) und sechs gerichteten Kanten zwischen je zwei Zuständen. Man sollte für jede Kante beschreiben, ob der Zustandsübergang auftreten kann und falls ja, durch welches Ereignis dieser ausgelöst wird.

2. Scheduling (10 Punkte)
Jeweils eine gute und eine schlechte Eigenschaft folgender Scheduler nennen: First Come First Serve, Round Robin, Shortest Job First, Multilevel Feedback Queue, Lottery Scheduling.

3. Synchronisation/Locks (8 Punkte)
Auf einer Kreuzung können von allen vier Seiten Autos ankommen. Um Kollisionen zu vermeiden, soll vor Befahren der Kreuzung von jedem Fahrer eine Funktion auf einem zentralen Rechner ausgeführt werden. Erst wenn diese zurückkehrt, darf die Kreuzung befahren werden. Selbiges für das Verlassen der Kreuzung.
Die Aufgabe bestand darin, die Funktionen hinauffahren() und herunterfahren() in Pseudocode zu implementieren, wobei Locks gegeben waren. Dabei waren folgende Bedingungen zu beachten:
- Wenn ein Auto fahren kann, soll es auch fahren
- Es sollen keine Kollisionen vorkommen
- Es sollen keine Deadlocks entstehen.

4. Synchronisation/Semaphoren (6 Punkte)
Mehrere Prozesse sollen sich an einer bestimmten Stelle im Programm \"treffen\", um danach die Bearbeitung gemeinsam fortzusetzen. Dies soll durch den Aufruf einer Funktion barrier() passieren, die solange blockiert, bis alle Prozesse sie aufgerufen haben. Die Aufgabe bestand darin, diese Funktion in Pseudocode mithilfe von Semaphoren zu implementieren.

5. Synchronisation/Deadlocks (4 Punkte)
Auf einem System gibt es drei identische Ressourcen, wobei jeder Prozess maximal zwei davon benötigt. Welche der folgenden Aussagen ist richtig? Begründung!
a) Deadlocks sind unmöglich
b) Deadlocks sind möglich, aber vermeidbar
c) Ob ein Deadlock auftritt, hängt von der Reihenfolge ab, in der die Prozesse die Ressourcen beanspruchen. Es gibt Fälle, in denen Deadlocks unvermeidbar sind.

6. Demand Paging, Thrashing (6 Punkte)
Gegeben ein System mit 100ns Zugriffszeit für den Hauptspeicher und 10ms Zugriffszeit für die Festplatte.
a) Berechne die durchschnittliche Zugriffszeit, wenn 0,1% der Anfragen in einem Page Fault resultieren.
b) Berechne die maximale Page Fault Rate, damit die durchschnittliche Zugriffszeit maximal 110ns beträgt.

7. Thrashing (5 Punkte)
Auf einem Unix-System mit einer Multilevel Feedback Queue tritt Thrashing auf. Gesucht waren die möglichen Ursachen.
a) Ist der Verursacher ein Prozess mit hoher oder mit niedriger Priorität?
b) Welche Eigenschaft des Prozesses könnte die Ursache sein?
c) Welche Eigenschaft des Gesamtsystems könnte die Ursache sein?

8. Linking (4 Punkte)
a) Nenne einen Vorteil von dynamischem Linking gegenüber statischem.
b) Nenne ein Problem, das bei dynamischem Linking auftritt, bei statischem aber nicht.

9. Virtual Memory (Zusatzaufgabe, 1 Punkt)
Müssen virtuelle Adressen immer gleich lang sein wie die physikalischen Adressen?

10. Virtual Memory (Zusatzaufgabe, 1 Punkt)
Muss der Offset bei virtuellen Adressen immer gleich lang sein wie bei den physikalischen?

11. Synchronisation (Zusatzaufgabe, 4 Punkte)
Gegeben ein System mit vier laufenden Threads, die alle auf eine Shared Variable V zugreifen. Dabei muss vor dem Zugriff ein Lock L angefordert werden, das nach dem Zugriff wieder freigegeben wird. Kann es dabei trotzdem zu einer Race Condition kommen? Begründung!

= Note (Optional)
1,3

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Angenehme Prüfung, keine unlösbaren oder zu schweren Aufgaben dabei. Benotung war auch sehr fair.

Nr.PrüferFach
678 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

28.07.14= Datum der Prüfung
5tage á ca. 4h, dann schafft man aber nicht jedes detail, aber es sollte reichen= 
Benötigte Lernzeit als Empfehlung
Folien, Wikipedia= Verwendete Materialien (Bücher, Skripte etc...)
sehr angenehm, redlich lockert wieder mal gut durch seine witze und storries auf= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer

1. Grundlagen
Was ist Micro-kernel, \"Spooling\"?
Vor-/Nachteil bei Micro- und bei monolithischem kernel.
Warum ist \"time-sharing\" gut?
Szenario nennen, bei dem das sequentielle abbarbeiten der jobs besser ist als time-sharing. Hier sollte nicht nur mit \"kontext switch dauert lange\" argumentiert werden.

2. Scheduling
a) Gegeben war ein Zustandsgraph mit drei Zuständen (Running, Ready, Blocked) und sechs gerichteten Kanten zwischen je zwei Zuständen. Man sollte für jede Kante beschreiben, ob der Zustandsübergang auftreten kann und falls ja, durch welches Ereignis dieser ausgelöst wird.
b) Drei segmente des Unix-Hauptspeichers nennen und angeben ob sie bei fork() kopiert werden.

3. Multilevel Feedback Queue
Es wurde behauptet, dass MFQ schlecht ist. Ein Prozess der lange braucht, würde, wenn er erstmal an der reihe ist alles ewig blockieren, weil MFQ nicht wie bei RR unterbricht. Verifizieren, bzw. Falsifizieren mit Begründung

4. Threads
Unterschied erklären von Reentrant und thread-safe

5.
Synchronisation/Semaphore
Mehrere Prozesse sollen sich an einer bestimmten Stelle im Programm \"treffen\", um danach die Bearbeitung gemeinsam fortzusetzen. Dies soll durch den Aufruf einer Funktion barrier() passieren, die solange blockiert, bis alle Prozesse sie aufgerufen haben. Die Aufgabe bestand darin, diese Funktion in Pseudocode mithilfe von Semaphoren zu implementieren. Die Anzahl der Threads war durch die Variable MAX gegeben, außerdem konnten die Prozesse ihre PID abfragen. Weiterhin war es erlaubt globalen Code hinzuschreiben.

6. Synchronisation/locks
Auf einer Kreuzung können von allen vier Seiten Autos ankommen. Um Kollisionen zu vermeiden, soll vor Befahren der Kreuzung von jedem Fahrer eine Funktion auf einem zentralen Rechner ausgeführt werden. Erst wenn diese zurückkehrt, darf die Kreuzung befahren werden. Selbiges für das Verlassen der Kreuzung.
Die Aufgabe bestand darin, die Funktionen hinauffahren(int fahrbanabschnitt) und herunterfahren(int fahrbahnabschnitt) in Pseudocode zu implementieren, wobei Locks gegeben waren. Dabei waren folgende Bedingungen zu beachten:
- Wenn ein Auto fahren kann, soll es auch fahren
- Es sollen keine Kollisionen vorkommen
- Es sollen keine Deadlocks entstehen.

7. 
a) Unterschied ext./int. Fragmentierung
b) virt. adr. gleich groß wie physikalische? Begründung!
c) Eine CPU vertauscht Offset und VPN, beides ist gleich lang. Funktioniert das? Gibt es trotzdem Probleme?

8. Paging
Gegeben ein System mit 100ns Zugriffszeit für den Hauptspeicher und 10ms Zugriffszeit für die Festplatte.
a) Berechne die durchschnittliche Zugriffszeit, wenn 1% der Anfragen in einem Page Fault resultieren.
b) Berechne die maximale Page Fault Rate, damit die durchschnittliche Zugriffszeit maximal 150ns beträgt.
Alle Teilaufgaben brachten ungefähr 4-5 Punkte. Insgesamt jedenfalls 40 reguläre Punkte plus 4 Zusatzpunkte

9. Massenspeicher
a) Greift man auf eine Festplatte mit random access zu dauert das Ergebnis weit länger als erwartet. Warum?
b) Zwei Dinge nennen um obiges Problem zu verbessern.

10. UNIX Datei System
Blockgröße: 2KB
Adresse(Platte): 8B
a) Max. Dateigröße, falls i-node zehn direkte einträge und jeweils einen einfachen, einen doppelten und einen dreifachen indirekten eintrag besitzt.
b) Größte Datei bei FAT16, Blockgröße 4KB
c) Wie groß ist die FAT-Datenstruktur bei b) wenn die Platte 10MB hat

11. Zusatzaufgabe
Job A schickt Daten zu Job B. Job B bearbeitet diese und schickt ein gleich großes Paket (2B) wieder zurück. Beide Jobs haben einen 2B großen Puffer. Was ist das kleinste N, was zu einem deadlock führt?

A:
send N bytes to B
while(receive data)
	display data
exit

B: while(receive 2 bytes of data)
	proces data
	send 2 bytes result to A
exit= Prüfungsfragen
noch nicht da= Note (Optional)
ausreichend zeit, schwierigkeit auch in ordnung und die altklausur zu rechnen hat mir sehr geholfen, da diese sehr ähnlich war= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)

Nr.PrüferFach
679 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

28.07.14= Datum der Prüfung
5tage á ca. 4h, dann schafft man aber nicht alles= 
Benötigte Lernzeit als Empfehlung
Folien, Wikipedia= Verwendete Materialien (Bücher, Skripte etc...)
sehr angenehm, redlich lockert wieder mal gut durch seine witze und storries auf= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer

1. Grundlagen
Was ist Micro-kernel, \"Spooling\"?
Vor-/Nachteil bei Micro- und bei monolithischem kernel.
Warum ist \"time-sharing\" gut?
Szenario nennen, bei dem das sequentielle abbarbeiten der jobs besser ist als time-sharing. Hier sollte nicht nur mit \"kontext switch dauert lange\" argumentiert werden.

2. Scheduling
a) Gegeben war ein Zustandsgraph mit drei Zuständen (Running, Ready, Blocked) und sechs gerichteten Kanten zwischen je zwei Zuständen. Man sollte für jede Kante beschreiben, ob der Zustandsübergang auftreten kann und falls ja, durch welches Ereignis dieser ausgelöst wird.
b) Drei segmente des Unix-Hauptspeichers nennen und angeben ob sie bei fork() kopiert werden.

3. Multilevel Feedback Queue
Es wurde behauptet, dass MFQ schlecht ist. Ein Prozess der lange braucht, würde, wenn er erstmal an der reihe ist alles ewig blockieren, weil MFQ nicht wie bei RR unterbricht. Verifizieren, bzw. Falsifizieren mit Begründung

4. Threads
Unterschied erklären von Reentrant und thread-safe

5.
Synchronisation/Semaphore
Mehrere Prozesse sollen sich an einer bestimmten Stelle im Programm \"treffen\", um danach die Bearbeitung gemeinsam fortzusetzen. Dies soll durch den Aufruf einer Funktion barrier() passieren, die solange blockiert, bis alle Prozesse sie aufgerufen haben. Die Aufgabe bestand darin, diese Funktion in Pseudocode mithilfe von Semaphoren zu implementieren. Die Anzahl der Threads war durch die Variable MAX gegeben, außerdem konnten die Prozesse ihre PID abfragen. Weiterhin war es erlaubt globalen Code hinzuschreiben.

6. Synchronisation/locks
Auf einer Kreuzung können von allen vier Seiten Autos ankommen. Um Kollisionen zu vermeiden, soll vor Befahren der Kreuzung von jedem Fahrer eine Funktion auf einem zentralen Rechner ausgeführt werden. Erst wenn diese zurückkehrt, darf die Kreuzung befahren werden. Selbiges für das Verlassen der Kreuzung.
Die Aufgabe bestand darin, die Funktionen hinauffahren(int fahrbanabschnitt) und herunterfahren(int fahrbahnabschnitt) in Pseudocode zu implementieren, wobei Locks gegeben waren. Dabei waren folgende Bedingungen zu beachten:
- Wenn ein Auto fahren kann, soll es auch fahren
- Es sollen keine Kollisionen vorkommen
- Es sollen keine Deadlocks entstehen.

7. 
a) Unterschied ext./int. Fragmentierung
b) virt. adr. gleich groß wie physikalische? Begründung!
c) Eine CPU vertauscht Offset und VPN, beides ist gleich lang. Funktioniert das? Gibt es trotzdem Probleme?

8. Paging
Gegeben ein System mit 100ns Zugriffszeit für den Hauptspeicher und 10ms Zugriffszeit für die Festplatte.
a) Berechne die durchschnittliche Zugriffszeit, wenn 1% der Anfragen in einem Page Fault resultieren.
b) Berechne die maximale Page Fault Rate, damit die durchschnittliche Zugriffszeit maximal 150ns beträgt.
Alle Teilaufgaben brachten ungefähr 4-5 Punkte. Insgesamt jedenfalls 40 reguläre Punkte plus 4 Zusatzpunkte

9. Massenspeicher
a) Greift man auf eine Festplatte mit random access zu dauert das Ergebnis weit länger als erwartet. Warum?
b) Zwei Dinge nennen um obiges Problem zu verbessern.

10. UNIX Datei System
Blockgröße: 2KB
Adresse(Platte): 8B
a) Max. Dateigröße, falls i-node zehn direkte einträge und jeweils einen einfachen, einen doppelten und einen dreifachen indirekten eintrag besitzt.
b) Größte Datei bei FAT16, Blockgröße 4KB
c) Wie groß ist die FAT-Datenstruktur bei b) wenn die Platte 10MB hat

11. Zusatzaufgabe
Job A schickt Daten zu Job B. Job B bearbeitet diese und schickt ein gleich großes Paket (2B) wieder zurück. Beide Jobs haben einen 2B großen Puffer. Was ist das kleinste N, was zu einem deadlock führt?

A:
send N bytes to B
while(receive data)
	display data
exit

B: while(receive 2 bytes of data)
	proces data
	send 2 bytes result to A
exit= Prüfungsfragen
noch nicht da= Note (Optional)
ausreichend zeit, schwierigkeit auch in ordnung und die altklausur zu rechnen hat mir sehr geholfen, da diese sehr ähnlich war= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)

Nr.PrüferFach
723 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

Datum der Prüfung: 21.07.15 
Entspannte, angenehme "Atmosphäre"

11 Aufgaben, 2 Zusatzaufgaben
120 Minuten Bearbeitungszeit, sehr ausreichend

Aufgabe 1:  Architektur

a)	Zwei Vorteile von monolithischer Kernel zu Mikrokernel
b)	Zwei Vorteile von Mikrokernel zu monolithischem Kernel

Aufgabe 2: Context Switch

Intel SSE Register für Multimedia gesichert in PCB bei Context Switch? Begründung

Aufgabe 3: Context Switch

I/O Register gesichert in PCB bei Context Switch? Begründung

Aufgabe 4:  Scheduling

FIFO soll kleinere Turnaround-Time haben als Round Robin, dafür 4 Prozesse mit Ankunftszeit und Dauer angeben und Time Quantum für Round Robin.

Aufgabe 5: Thread Safe / Re-entrant

a)	Was passiert wenn eine Funktion keine der beiden Eigenschaften hat?
b)	Unterschied zwischen threadsafe und reentrant?
c)	Kann eine Funktion gleichzeitig beides sein?

Aufgabe 6: Rade Condition / Deadlock

Code gegeben:
Class Account {

	Lock L;
	Int balance;
	
	Private void book(int x) {
		Acquire(L);
		Balance += x;
		Release(L);
	}

	Transfer1(Account dest, int x) {
		This.book(-x);
		Dest.book(x);
	}

	Transfer2(Account dest, int x){
		Acquire(This.L);
		Acquire(Dest.L);
			This.Balance -= x;
			Dest.Balance += x;
		Release(Dest.L);
		Release(This.L);
	}
}

a)	Race Condition bei Verwendung von ausschließlich Transfer1? Begründung
b)	Race Condition bei gemischter verwendung von Transfer1 und Transfer2? Begründung
c)	Deadlock bei ausschließlicher Verwendung von Transfer1? Begründung
d)	Deadlock bei ausschließlicher Verwendung von Transfer2? Begründung

Aufgabe 6b (Vergessen zu Nummerieren): Deadlock

Drei identische Ressourcen, jeder Prozess braucht maximal 2 davon
MC:
[ ] kein Deadlock möglich
[ ] Deadlock möglich, aber vermeidbar
[ ] Deadlock möglich und nicht vermeidbar
Begründung.

Aufgabe 7: External/Internal Fragmantation

Erkläre beide Begriffe so dass der Unterschied klar wird.

Aufgabe 8: Page Table

24 bit virtuelle Adressen, 32 bit physische Adresse, 256 MB RAM, 4KB große Seiten, 16 Prozesse
Wie viele Einträge in der Pagetable bei

Einstufiger Page Table _____
Invertierter Page Table _____

Aufgabe 9: MMU

Prozessor mit defekter MMU, die virtuelle Page Number und Offset vertauscht. Funktioniert das trotzdem? Wenn ja, mit welchen „Nebenwirkungen“?

Aufagbe 10: Thrashing

Es kommt zu Thrashing
a)	Multilevel-Feedback-Queue
	Hat Prozess hohe oder niedrige Priorität? Begründung
b)	Prozesseigenschaft, die zu Thrashing führt
c)	Systemeigenschaft, die zu Thrashing führt

Aufgabe 11: Page Faults

CPU: 1000 MIPS (Million Instructions per Second)
Festplatte: 10 ms Zugriffszeit
Berechne die Page Fault Frequency, so dass man nicht mehr als die Hälfte an CPU-Rechenleistung verliert.

-----------------------------------------------------------------------------------------

Zusatzaufgabe 1: FAT

Festplatten mit 512 GB und 4 TB
a)	Berechne jeweils minimale Clustergröße für FAT16 und FAT 32
b)	Berechne jeweils die Größe der FAT für FAT16 und FAT32

Zusatzaufgabe 2: Unix File System

2KB Blöcke, 8 Byte Adressen
a)	Berechne die maximale Dateigröße
b)	Berechne die maximale Größe des Dateisystems

Nr.PrüferFach
763 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
25.07.2016

= Benötigte Lernzeit als Empfehlung
1-2 Wochen, je nach dem wie gut man aufgepasst hat.

= Verwendete Materialien (Bücher, Skripte etc...)
Redlichs Folien, manchmal Google

= Prüfungsfragen

Maximale Anzahl der Punkte 31.
Es gab zwei Zusatzpunkte.

AUFGABE 1 (6 Punkte)

a) Was ist ein Mikro-Kernel?
b) Was sind die Vorteile von einem Mikro-Kernel gegenüber einem monolithischen Kernel?
c) Was sind die Nachteile von einem Mikro-Kernel gegenüber einem monolithischen Kernel?
d) Was ist Spooling?
e) N Jobs werden sequenziell ausgeführt. Hätte man Time-Sharing benutzt, wäre die Bearbeitung schneller gegangen. Bei welchem Typ Job ist das der Fall?
f) Wann ist das sequenzielle Ausführen von Jobs schneller als die Benutzung von Time-Sharing?

= = = =

AUFGABE 2 (3 Punkte)

Implementieren sie eine Funktion "halfbarrier".
Es gibt N Threads und es ist bekannt, dass jeder Thread halfbarrier einmal aufruft.
Wenn ein Thread die Funktion halfbarrier aufruft, dann soll die Funktion blockieren, bis mehr als N/2 Threads die Funktion halfbarrier aufgerufen haben.
Wenn bereits mehr als N/2 Threads die Funktion halfbarrier aufgerufen haben, dann soll die Funktion für die anderen Threads nicht mehr blockieren, sondern sofort zurückkehren.

Als Hilfe kann man die Funktion threadID benutzen, welche jedem Thread seine eindeutige ID zwischen 0 und N-1 zurückgibt.

Wichtig ist, dass man kein Spin-Lock benutzt, sondern dass die Funktion wirklich blockiert!

[Tipp von mir: In der VL wurde die Funktion barrier implementiert, halfbarrier funktioniert fast genauso und die Funktion threadID braucht man in der "optimalen" Lösung nicht!]

= = = =

AUFGABE 3 (3 Punkte)

Gegeben die Implementierung eines Buffers (genau das gleiche Bild wie in der Vorlesung):

char buf[];
int head = 0, tail = 0;
sem cnt = 0;

void put(char c)
   buf[head++] = c;
   V(cnt);

char get(void)
   P(cnt);
   c = buf(tail++);
   return c;

a) Was ist mit dem obigen Code nicht in Ordnung?
b) Korrigieren Sie den Code!

= = = =

AUFGABE 4 (3 Punkte)

Die Firma BilligPC verkauft CPUs, die eine defekte MMU haben. Die defekte MMU vertauscht die VPN (Virtual Page Number) und den Offset. Das bedeutet: Die MMU schaut mit dem Offset in der Page-Table nach und addiert dann die VPN darauf.
Ihr Freund behauptet, mann kann mit der defekten MMU trotzdem virtuelle Adressen realisieren. Hat er damit recht? Und wenn ja, gibt es negativen Nebenwirkungen?

= = = =

AUFGABE 5 (2 Punkte)

Graf Zahl hat eine neue malloc-Funktion geschrieben: malloc(len). Die funktioniert wie folgt: Die Größe (len in Bytes) wird auf ganze tausender aufgerundet (dh. 512 -> 1000, 1024 -> 2000, usw.). Dann wird der Speicher allokiert, aber immer mindestens eine ganze Seite (4K groß).

Wie groß ist die externe Fragmentierung: _____
Wie groß ist die interne Fragmentierung: _____

= = = =

AUFGABE 6 (3 Punket)

Der Prinz und die Prinzessin lassen sich scheiden. Die Gütertrennung der beiden wird mit folgendem Algorithmus vollzogen:
Beide schreiben an den Anwalt des anderen einen Brief, in dem sie einen Gegenstand X fordern. Sollten beide am gleichen Tag denselben Gegenstand fordern, so müssen sie am folgenden Tag einen Brief schreiben, der die Forderung (ganz offiziell) wieder rückgängig macht.
Unter den Besitztümern der beiden befinden sich auch ein Hund und sein Hundehaus, sowie ein Vogel und dessen Vogelkäfig. Man hat sich geeinigt: Sollte am Ende der Gütertrennung ein Tier von seiner Behausung getrennt sein, das heißt, einer der beiden bekommt das Tier und der andere sein Haus, so fängt man die Gütertrennung wieder ganz von vorne an.
Der Prinz und die Prinzessin fahren nun getrennt in den Urlaub. Beide haben ein Programm geschrieben, um die Gütertrennung für sie nach dem Algorithmus abzuhandeln. Als sie lange Zeit später aus dem Urlaub zurückkommen stellen sie fest: Die Güterverhandlung ist immer noch nicht fertig.
Warum? Nehmen Sie zu folgenden drei Aussagen stellung:
a) Es ist ein Deadlock aufgetreten.
b) Es ist ein Livelock aufgetreten.
c) Eines der Programme ist "verhungert". (Hiermit sollte Starvation gemeint sein...)

= = = =

AUFGABE 7 (2 Punkte)

[Hier bin ich mir nicht so sicher.]
Jemand hat eine Idee, Computer "besser" zu machen: Das Textsegment soll nicht aus dem Swap-Space geladen werden, sondern direkt aus dem Programm-Code von der Platte. Nennen Sie zwei Probleme dabei bzw. Voraussetzungen, unter denen es funktioniert.

= = = =

AUFGABE 8 (3 Punkte)

Gegeben sind 8 identische Festplatten, die jeweils 1TB groß sind.

(Hier folgte eine Erklärung von RAID0, RAID1 und RAID4)

Wie viele Daten kann man mit dem jeweiligen System speichern?
RAID0:
RAID1:
RAID5:

Wie viele Festplatten müssen mindestens kaputt sein, damit Daten verloren gehen, wenn die Fehler MAXIMAL UNGÜNSTIG verteilt sind?
RAID0:
RAID1:
RAID5:

Wie viele Festplatten müssen mindestens kaputt sein, damit Daten verloren gehen, wenn die Fehler MAXIMAL GÜNSTIG verteilt sind?
RAID0:
RAID1:
RAID5:

[Hierbei ist anzumerken: Fehler bedeutet, dass eine ganze Festplatte ausfällt.]
[Zweite Anmerkung: Pro Frage gab es 1 Punkt und zwar NUR wenn man alle 3 richtig hatte]

= = = =

AUFGABE 9 (3 Punkte)

Gegeben ein Dateisystem: FAT10 und eine 1GB große Festplatte.

Wie groß muss ein Cluster mindestens sein?
Wie groß ist die größte Datei, wenn ein Cluster 1KB groß ist?
Wie groß ist die FAT, wenn ein Cluster 1KB groß ist? [Gemein: die Clustergröße spielt hier keine Rolle!]

= = = =

AUFGABE 10 (3 Punkte)

Gegeben ein Unix-Dateisystem, das wie folgt aussieht:
Die ersten 8 Einträge einer inode sind direkt, es gibt 1 indirekten Eintrag, 2 zweifach-indirekte Einträge und 3 dreifach-indirekte Einträge.
Blöcke sind 2KB groß, Adressen sind 8 Byte groß.

Was ist die maximale Dateigröße?
Was ist die maximal verwaltbare Festplattengröße?

= = = =

ZUSATZAUFGABE (2 Zusatzpunkte)

Zuerst wurde (sehr ausführlich) die Page Fault Frequency (PFF) erklärt (sogar mit dem Bild aus den Folien).

Aufgabe:
Die CPU arbeitet mit 1000MIPS (Millionen Instruktionen pro Sekunde). Ein Festplatttenzugriff dauert 10ms. Wie groß darf die PFF maximal sein, damit das System nicht mehr als 4 mal so langsam wird?

= Note (Optional)
1.0

WICHTIGER TIPP FÜR ALLE:
Ich würde es jedem empfehlen zur Klausureinsicht zu gehen!
Die Korrektoren waren bei uns schon am selben Abend fertig und haben dabei auch Fehler gemacht. Auf Aufgabe 2 haben viele Studenten 0/3 Punkten trotz einer richtigen Lösung bekommen.
Viele Studenten die da waren konnten ihre Note noch aufbessern - es lohnt sich :)

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Die Aufgabe mit der Internen und Externen Fragmentierung war komisch, weil nicht klar war, auf was sich die Fragmentierungen beziehen sollen (den Allokator oder die Pages?).
Prinz und Prinzessin waren zwar witzig, aber mir gefallen solche Textaufgaben nicht.

Ansonsten ließ sich alles mit dem Wissen aus der VL gut beantworten, besonders haben auch die vorherigen Protokolle geholfen, denn es stellt sich heraus: Viele Aufgaben werden immer wieder gestellt. Diese vorher zu üben/durchzurechnen kann ich nur empfehlen.


Nr.PrüferFach
858 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Datei (Zugriff nur aus dem HU-Netz)

OSP-Klausur SOSE2018.pdf

Nr.PrüferFach
894 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
25.07.2019

= Benötigte Lernzeit als Empfehlung
4 Monate intensiv jeden Tag 8 std Netflix und eine halbe stunde Skript lesen. Also auch sehr gut in zwei Wochen zu schaffen.

= Verwendete Materialien (Bücher, Skripte etc...)
Little Book of Semaphores, Operating Systems Principles and Practices von Anderson und die guten Folien.

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
In der Ferne hat man ein verhaltenes Wimmern gehoert. Es hat den Ernst der Lage dramarturigsch unterstrichen. Aber Redlich ist natuerlich, wie immer, sehr freundlich.

= Prüfungsfragen
 1) [6]
	a) Was ist ein Micro-Kernel.
	b) Nenne einen Vorteil von Micro-Kernel gegenueber von Monolithischem Kernel.
	c) Nenne einen Nachteil von Micro-Kernel gegenueber con Monolithischem Kernel.
	d) Time-Sharing Single CPU hat geringere Laufzeit als sequentielle ausfuehrung. Warum?
	e) Wann ist Time-Sharing schlechter als sequentielle ausfuehrung.

 2) Scheduling [6]
Eine Single CPU mit 1GB phsischen Hauptspeicher und irgednwas mit Swap. Ein Prozess A mit 4GB working set und ein Prozess B mit einem 100MB working set. Es wird eine Multilevel Feedback Queue verwendet.

	a) Nach einiger Zeit wird geschaut welcher Prozess welche Prioritaet hat. Gebe an welche Prioritaet Prozess A und B haben (hoch = bevorzugt gescheduled)
	b) Es wird eine zweite CPU eingebaut. Aendert sich etwas?
	c) Es wird 8GB HS eingebaut. Aendert das etwas?

 3) Coffman Conditions [8]
	Nenne alle 4 Coffman Conditions beim Namen und erklaere, wie man jede einzelne nutzen kann, um 
	Deadlocks zu vermeiden.

 4) F-Barrier [5]
	Implementiere eine Art Barrier aber anstatt, das N Threads passieren muessen, sollen nur N-1 Thread
	passieren, bevor fbarrier() nicht mehr blockiert. Dazu waren einem Semaphore, Locks und Mutexe gestellt. Es gab drei Punkte Abzug, wenn
	mann Busy Waiting in seiner Implementierung verwendet hatte (also lieber keine Locks verwenden).

 5) Producer/Consumer [3]
	a) Was ist das Problem im Code.
	b) Korrigiere den Code.

 6) Virtual Memory [2]
	Es gibt Systeme die Segmentierung mit Paging verbinden. Macht es auch andersherum Sinn? Begruende.

 7) Linking [6]
	a) Vorteile von statischem Linken gegenueber dynamischen Linken
	b) Vorteile von dynamischen Linken gegenueber statischem Linken
	c) Wird das Working-Set kleiner, wenn dynamisches Linken verwendet wir?

 8) Page Fault Frequency [3] (exakt die gleiche aus wie im Jahr 2016)
	Zuerst wurde (sehr ausführlich) die Page Fault Frequency (PFF) erklärt (sogar mit dem Bild aus den Folien).

	Die CPU arbeitet mit 1000MIPS (Millionen Instruktionen pro Sekunde). Ein Festplatttenzugriff dauert 10ms. Wie groß darf die PFF maximal sein, damit das System nicht mehr als 4 mal so langsam wird?


 9) Filesystems (i-Node) [3]
	2kb Bloecke, 8byte Adressen, 10 direkte, 
	a) max Datei
	b) max Filesystem groeße

10) Filesystems (FAT) [4]
	a) min cluster groeße
			FAT16	FAT32
	   512GB
	     4TB
	b) FAT Groeße (bei platzoptimierter Speicherung)
			FAT16	FAT32
	   512GB
	     4TB

= Note (Optional)
1.0

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Die Pruefung war ok. Gerne wieder.

Nr.PrüferFach
983 Redlich, Jens-Peter, Prof. Grundlagen moderner Betriebssysteme

Protokoll

= Datum der Prüfung
19.07.2022

= Benötigte Lernzeit als Empfehlung
1 Woche

= Verwendete Materialien (Bücher, Skripte etc...)
Folien

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Angenehm , Redlich geht die Klausur vor Beginn einmal durch

= Prüfungsfragen
Aufgabe 1)    [2+2 Punkte]

a) Intel SSE Register für Multimedia gesichert in PCB bei Context Switch? Begründung

b) I/O Register gesichert in PCB bei Context Switch? Begründung

Aufgabe 2)   [3]
3 Segmente eines Unix Prozesses angeben und ankreuzen, ob sie bei fork() kopiert werden

Aufgabe 3)   [5]
Vorteil und Nachteil nennen von:
- FCFS
- Round Robin
- SJF
- Multilevel Feedback Queue
- Lottery 

Aufgabe 4)    [6]
Auf einer Kreuzung können von allen vier Seiten Autos ankommen. Um Kollisionen zu vermeiden, soll vor Befahren der Kreuzung von jedem Fahrer eine Funktion auf einem zentralen Rechner ausgeführt werden. Erst wenn diese zurückkehrt, darf die Kreuzung befahren werden. Selbiges für das Verlassen der Kreuzung.
Die Aufgabe bestand darin, die Funktionen hinauffahren(int fahrbanabschnitt) und herunterfahren(int fahrbahnabschnitt) in Pseudocode zu implementieren, wobei Locks gegeben waren. Dabei waren folgende Bedingungen zu beachten:
- Wenn ein Auto fahren kann, soll es auch fahren
- Es sollen keine Kollisionen vorkommen
- Es sollen keine Deadlocks entstehen.
- Auto 1 und 3 müssen immer links abbiegen 
- Auto 0 und 2 fahren geradeaus

Aufgabe 5)   [3]
Gegeben die Implementierung eines Buffers (genau das gleiche Bild wie in der Vorlesung):

char buf[];
int head = 0, tail = 0;
sem cnt = 0;

void put(char c)
   buf[head++] = c;
   V(cnt);

char get(void)
   P(cnt);
   c = buf(tail++);
   return c;

a) Was ist mit dem obigen Code nicht in Ordnung?
b) Korrigieren Sie den Code!

Aufgabe 6)   [6]
Programmierung eines Semaphors mittels vorgegebenen Mutex

Aufgabe 7)   [2+3]
a) Gegeben war eine 32-Bit Architektur, 9 Bit für die erste Pagetable und 11 Bit für die zweite Pagetable und das Offset.
- Wie viele Pagetable gibt es?
- Wie groß ist eine solche Page?
b) Gegeben waren 32 Bit für virtuelle und physische Adressen, 256 MB Ram, 8KB große Pages, 1 Programm, welchen 4MB Daten hatte, die ab Stelle 0 im virtuellen Speicher liegen und 1MB Stack welche in den Letzten virtuelle Adressen liegt.
- Wie viele Pageeinträge sind für dieses Programm bei einer einstufigen Pagetable nötig?
- Wie viele Pageeinträge sind für dieses Programm bei einer zweistufigen Pagetable nötig?
- Wie viele Pageeinträge sind für dieses Programm bei einer invertierten Pagetable nötig?

Aufgabe 8)   [3]
Auf einem Unix-System mit einer Multilevel Feedback Queue tritt Thrashing auf. Gesucht waren die möglichen Ursachen.
a) Ist der Verursacher ein Prozess mit hoher oder mit niedriger Priorität? Begründung!
b) Welche Eigenschaft des Prozesses könnte die Ursache sein?
c) Welche Eigenschaft des Gesamtsystems könnte die Ursache sein?

Aufgabe 9)   [2]
Es gibt 40 Zylinder, die Seektime pro Zylinder beträgt 6ms, 2 aufeinander folgende Blöcke liegen im nicht optimierten Fall 13 Zylinder voneinander entfernt, im optimierten Fall liegen sie nur 2 Zylinder voneinander entfernt.
Zu berechnen war die Zeit für 100 Blöcke mit einer Umdrehungszeit von 100ms und einer Transferzeit von 25ms.
a) Für nicht optimierten Fall
b) Für optimierten Fall

Aufgabe 10)  [2]
Gegeben ein Unix-Dateisystem, das wie folgt aussieht:
Die ersten 10 Einträge einer inode sind direkt, es gibt 1 indirekten Eintrag, 1 zweifach-indirekte Einträge.
Blöcke sind 1KB groß, Adressen sind 4 Byte groß.

Aufgabe 11)   [3]
Festplatten mit 1 GB
a)	Berechne minimale Clustergröße für FAT10
b)	Berechne die Größe der FAT für FAT10
c)      Berechne größte Datei, wenn die Cluster 1KB groß sind

= Note (Optional)
= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)