Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » Betriebssysteme 7.5 ECTS Prüfung 11.04.2022   (Übersicht)

Betriebssysteme 7.5 ECTS Prüfung 11.04.2022

Meta-Informationen

  • Fach: Betriebssysteme 7.5, WS21/22
  • Datum: 11.04.2022
  • Typ: mündliche Prüfung
  • Prüfer: Dr.-Ing. Volkmar Sieh
  • Note: sehr gut

Angenehme Atmosphäre. Volkmar fragt nach, wenn er etwas genauer wissen will und lässt auch Zeit um über eine (oder viele) Frage(n) nachzudenken. Falls man doch nicht drauf kommt, gibt er Hinweise, damit man sich den Rest selbst erdenken kann. Die Benotung habe ich als überaus fair empfunden.

Ich war sehr aufgeregt und hatte deshalb nach der Prüfung schon wieder einiges vergessen, weshalb das hier ein Mix zwischen Protokoll und Notizensammlung und in echt vermutlich etwas anders abgelaufen ist.

Prüfung

Was ist denn Scheduling?

Verfahren, um den Ablauf von Prozessen zu planen. Ein paar Scheduling-Einteilungen genannt (u. a. kooperatives).

Bleiben wir mal beim kooperativen Scheduling. Wie funktioniert das denn genau?

resume, context_switch etc.

Ist der rip ein flüchtiges- oder nicht-flüchtiges Register? Wie wird denn der rip gesichert, den kann man ja nicht pushen oder poppen?

Habe nach etwas überlegen gesagt, dass der rip nichtflüchtig ist.

Wie funktioniert denn das präemptive Scheduling?

Es gibt regelmäßig Timer-Interrupts, durch die ein resume ausgelöst wird.

Erkläre doch mal den Vorgang bei einem Interrupt.

Durfte den Tastatur-Interrupt wählen und habe daran den Weg von der Tastatur über I/O-APIC und LAPIC bis zum potenziellen relay erklärt.

Warum werden die Interrupts denn während der Behandlung ausgeschaltet?

Warum teilen wir die Interruptbehandlung denn in Epilog und Prolog auf? Es wäre doch schneller, wenn das einfach in einem Wisch erledigt wird.

Stimmt, aber dann würden andere Interrupts verzögert werden. Hier hätte ich das Problem vermutlich etwas offensichtlicher sagen können (auch viel wichtigere Interrupts könnten verzögert werden).

Wie funktioniert denn das enter zur Epilogebene?

Der Kern sollte als aktiv auf der Epilogebene gekennzeichnet werden (beim Zugriff auf die Variable(n) Interrupts sperren). Anschließend kann das BigKernelLock angefordert werden.

Wie funktioniert denn so ein Lock?

Synchronisationsmittel um max. einen Prozess in einen kritischen Abschnitt zu lassen, der sich das Lock holen und wieder freigeben kann. Dazu sollte atomar geschalten werden.

Das ist mir zu ungenau. Wie geht das denn genau?

Versucht zu erklären wie das im TicketLock geht (mit zwei Zählern). Kann sein, dass ich hier die Variablen teilweise durcheinander gebracht habe.

Was passiert denn, wenn die Variablen überlaufen?

Nix, solange sie den gleichen Datentypen haben.

Genau, solange es keine 4 Milliarden Prozessoren gibt, aber soweit sind wir ja noch nicht.

Her war sicher noch etwas, das mir entfallen ist. Könnte sein, dass es über aktives Warten beim Lock zum Semaphor (passives Warten) gekommen ist.

Implementiere doch mal ein p und v.

Hab p und v implementiert (ohne enter/leave) und dann gesagt, dass Synchronisation nötig sein könnte.

Nehmen wir mal das folgende Szenario: Ich habe einen Drucker und Druckaufträge, die eine Anzahl an Papierseiten brauchen. Wie muss ich p und v ändern, um den Semaphor dafür nutzen zu können?

Dann noch kurz IPC. Was für Arten gibt es? Sind die gleichwertig? Wie genau kann man die eine Art mit der anderen emulieren und andersrum?