Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » Betriebssystemtechnik 7.5 ECTS Prüfung 2024-07-22

Betriebssystemtechnik 7.5 ECTS Prüfung 2024-07-22

Meta-Informationen

  • Fach: Betriebssystemtechnik 7.5 ECTS, SS 24
  • Datum: 22.07.2024
  • Prüfungsart: mündlich
  • Prüfer/Beisitzer: Volkmar/Dustin
  • Note: 1.0

Klausur

* Wie funktioniert Paging bei Intel?

Seitendisktriptor + Mehrstufige Seitentabelle

* Andere Arten Paging zu realisieren?

Einstufige Seitentabelle erklärt + Vor-/Nachteile: Einstufig vs Mehrstufige Seitentabelle

* Weitere Arten Paging zu realisieren?

Linear invertierte Seitentabelle erklärt; Hab auch erwähnt, dass Suche aufwendig ist

* Wie beschleunigt man die Suche?

Einsatz von Streutabelle → gestreut invertierte Seitentabelle erklärt

* Streutabelle in Hardware implementieren ist aufwendig, was kann man da machen?

Software-geführter-TLB:
TLB Lookup von Adresse X → Miss → Behandlungsroutine sucht X in Mapping
(Streutabelle wird also in Software implementiert) → Wenn X in Mapping, X in TLB eintragen, Unterbrochenes
Programm fortsetzen

Unterschied Software-geführter TLB und Hardware-geführter TLB erklärt

* Wie sieht es mit der Performance der TLBs aus?

- Hardware-geführter-TLB:
Ablaufen der Seitentabelle ist schneller, da in Hardware realisiert

- Software-geführter-TLB:

Durch Protokollieren der Zugriffsmuster:
- Bessere Verdrängungsstrategie für TLB Einträge
- Prefetching

* Welchen Performance Vorteil hat Software-geführter TLB beim Kontextwechsel?

TLB vor Kontextwechsel von Prozess X nach Y sichern und beim Kontextwechsel zu Prozess X wiederherstellen,
Prozess X hat vollen TLB und vermeidet so die anfänglichen TLB Misses, die er hätte wenn wir den TLB
beim Kontextwechsel spülen würden.

* Wie funktioniert Segmentierung bei Intel?

Hier ging es um die Seitennummerierte Segmentierung II aus der Vorlesung.
- Umrechnung der virtuellen Adresse auf die physische Adresse erklärt.

- Für Programmierer eindimensionale Adressen, da Intel automatisch das Segment auswählt.
- Text Segment wenn Instruktionen geladen werden.
- Zugriff auf Operanden: Daten/Stack Segment.
- Daten und Stack Segment sind das gleiche, da man nicht unterscheiden kann ob es sich bei den Operanden um lokale oder globale Variablen handelt

* Seitennummerierte Segmentierung, wie geht es noch?

Hier ging es um die Seitennummerierte Segmentierung I aus der Vorlesung.

* Vor-/Nachteile der genannten Segmentierungsarten?

Seitenverschnitt bei Variante I

* Vor-/Nachteile Segmentierung vs Paging:

Bei ursprünglicher Segmentierung, war Segment immer als ganzes im Speicher oder ausgelagert → Hier ist die
Mischform mit Paging besser, da feingranularer ausgelagert wird.

Segmentierung + Paging: Seitentabelle nur so groß wie das Segment, keine leeren Entries in der Seitentabelle,
anders als beim den Seitentabellen beim reinen Paging

* Was ist Paging, was ist Swapping?

Paging; Speicherverwaltung/-zugriff erfolgt auf Granularität von Pages
Swapping: Auslagern von Segmenten
( ich hab gesagt, es sei das Auslagern von Pages, er meinte das sei falsch. Swapping meint eigentlich das auslagern von Segmenten)

* Was kannst du mir zu Physisch und Logisch verteiltem Speicher sagen?

Erklärt wie so ein System aufgebaut ist.
Problem: Die Wahrung der Konsistenz!
→ False Sharing: Konsistenzwahrung durch Differenzmasken erklärt.
→ Shared Data: Hierzu hab ich nur gesagt, dass man synchronisieren muss, wenn man auf das Datum zugreifen möcht, er wollte das genauer wissen.

* Wie funktioniert die Synchronisierung im Detail?

1. Wenn Thread A das Datum X der Seite Y schreiben möchte,
müssen alle anderen Threads die ein lokales Y haben dieses in den globalen Speicher
zurückschreiben und warten.
(Vereinigung im globalen Speicher durch Differenzmasken, siehe False Sharing)

2. Thread A holt sich aktualisierte Seite Y aus globalem Speicher und modifiziert es.
Wenn Thread A fertig ist, schreib er Seite Y zurück in den globalen Speicher.
Thread A signalisiere auf ihn wartenden Threads, dass sie weiter machen können.

3. Wartende Threads sind nicht mehr blockiert → holen sich Seite Y aus dem globalen Speicher