Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » MPStuBS   (Übersicht)

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
pruefungen:hauptstudium:ls4:bs-2019-04-11 [11.04.2019 13:56] – angelegt xilef97pruefungen:hauptstudium:ls4:bs-2019-04-11 [04.04.2022 12:34] (aktuell) – fix typo xilef97
Zeile 1: Zeile 1:
-===== MPStuBS =====+====== MPStuBS ======
 Prüfer: Volkmar Sieh, Beisitzer: Bernhard Heinloth Prüfer: Volkmar Sieh, Beisitzer: Bernhard Heinloth
  
-==== Allgemein ====+===== Allgemein =====
 Sehr entspannt. Bernhard hat keine Fragen gestellt. Er hat aber manchmal Volkmar gestikuliert, wenn eine Frage etwas seltsam war, z.B. nicht ganz korrekt formuliert war. Einmal hat Volkmar dann auch gesagt, dass die Frage nicht so sinnvoll war, und hat die nächste Frage gestellt. Sehr entspannt. Bernhard hat keine Fragen gestellt. Er hat aber manchmal Volkmar gestikuliert, wenn eine Frage etwas seltsam war, z.B. nicht ganz korrekt formuliert war. Einmal hat Volkmar dann auch gesagt, dass die Frage nicht so sinnvoll war, und hat die nächste Frage gestellt.
-Als Vorbereitung bin ich die Vorlesungsfolien durchgegangen und habe mir ein paar alte Prüfungsprotokolle angeschaut. Die Aufgaben habe ich alleine und sehr gründlich bearbeitet, d.h. ich war dadurch relativ gut vorbereitet, und habe dann gar nicht mal so viel Zeit mit Vorlesungsfolien/Prüfungsprotokollen verbacht.+ 
 +Als Vorbereitung bin ich die Vorlesungsfolien durchgegangen und habe mir ein paar alte Prüfungsprotokolle angeschaut. Die Aufgaben habe ich alleine und sehr gründlich bearbeitet, d.h. ich war dadurch relativ gut vorbereitet, und habe dann gar nicht mal so viel Zeit mit Vorlesungsfolien/Prüfungsprotokollen verbracht.
 Note: 1,0. Note: 1,0.
  
 Manche Fragen weiß ich nicht mehr genau, d.h. es ist vermutlich etwas unvollständig. Es ging aber gefühlt sehr lange um Interrupts. Manche Fragen weiß ich nicht mehr genau, d.h. es ist vermutlich etwas unvollständig. Es ging aber gefühlt sehr lange um Interrupts.
  
-==== Fragen ==== +===== Fragen ===== 
-=== Betriebssystementwicklung === +==== Betriebssystementwicklung ==== 
-**Was ist Bare-Metal-Programmierung?**+  **Was ist Bare-Metal-Programmierung?**
  
 Habe praktisch den ersten Foliensatz erzählt. Bei der Linkerkonfiguration wollte er wissen, was da besonders ist, was ich nicht wusste. Er wollte darauf hinaus, dass standardmäßig virtuelle Adressen verwendet werden. Habe praktisch den ersten Foliensatz erzählt. Bei der Linkerkonfiguration wollte er wissen, was da besonders ist, was ich nicht wusste. Er wollte darauf hinaus, dass standardmäßig virtuelle Adressen verwendet werden.
  
-**Wie kann man debuggen?**+  * **Wie kann man debuggen?**
  
 Habe den Rest des ersten Foliensatzes erzählt. Hier hab ich praktisch alles aufgezählt, weswegen er dann auch gesagt hat "Reicht schon". Habe den Rest des ersten Foliensatzes erzählt. Hier hab ich praktisch alles aufgezählt, weswegen er dann auch gesagt hat "Reicht schon".
  
-=== Interrupts/Synchronisation === +==== Interrupts/Synchronisation ==== 
-**Verschiedene Fragen bzgl. weicher/harter Synchronisation, aktivem/passivem Warten. Wie sieht eine simple Mutex-Implementierung aus?**+  **Verschiedene Fragen bzgl. weicher/harter Synchronisation, aktivem/passivem Warten. Wie sieht eine simple Mutex-Implementierung aus?**
  
 Habe die verschiedenen Sachen erklärt. Für den Mutex habe ich in etwa das hingeschrieben: Habe die verschiedenen Sachen erklärt. Für den Mutex habe ich in etwa das hingeschrieben:
Zeile 30: Zeile 31:
 ''unlock() { locked = false; }'' ''unlock() { locked = false; }''
  
-**Wie macht man da jetzt passives Warten?**+  * **Wie macht man da jetzt passives Warten?**
  
 In lock ein scheduler.block in der while-Schleife, und im unlock ein scheduler.wakeup. In lock ein scheduler.block in der while-Schleife, und im unlock ein scheduler.wakeup.
  
-**Muss man da synchronisieren o.ä.?**+  * **Muss man da synchronisieren o.ä.?**
  
 Habe die Synchronisation mit dem Scheduler erzählt, d.h. auch ein bisschen die Strukturen dort. Habe die Synchronisation mit dem Scheduler erzählt, d.h. auch ein bisschen die Strukturen dort.
Zeile 40: Zeile 41:
  
  
-**Was ist die Epilogebene, wie wird das verwendet?**+  * **Was ist die Epilogebene, wie wird das verwendet?**
  
 Habe zuerst allgemein das Ebenenmodell kurz beschrieben und dann die Aufteilung Prolog/Epilog. Habe zuerst allgemein das Ebenenmodell kurz beschrieben und dann die Aufteilung Prolog/Epilog.
  
-**Worauf muss man bei der Interruptbehandlung/Prolog achten? Wie habt ihr das z.B. bei der Tastatur gemacht?**+  * **Worauf muss man bei der Interruptbehandlung/Prolog achten? Wie habt ihr das z.B. bei der Tastatur gemacht?**
  
 Dass es so kurz wie möglich dauert. Dass es so kurz wie möglich dauert.
 Bei der Tastatur holt man sich im Prolog nur das Zeichen aus dem Tastaturpuffer. Bei der Tastatur holt man sich im Prolog nur das Zeichen aus dem Tastaturpuffer.
  
-**Es gibt zwei verschiedene Arten von Interrupts(signalisierungen), inwiefern wirkt sich das auf das Abholen aus dem Tastaturpuffer aus?** (oder so ähnlich)+  * **Es gibt zwei verschiedene Arten von Interrupts(signalisierungen), inwiefern wirkt sich das auf das Abholen aus dem Tastaturpuffer aus?** (oder so ähnlich)
  
 Hier war ich etwas verwirrt; er hat gesagt "Du wusstest ja bisher alles, jetzt muss ich mal etwas schwierigere Fragen stellen". :D Hier war ich etwas verwirrt; er hat gesagt "Du wusstest ja bisher alles, jetzt muss ich mal etwas schwierigere Fragen stellen". :D
Zeile 55: Zeile 56:
 Er wollte auf etwas sehr detailliertes hinaus: die beiden verschiedenen Trigger-Modes //Edge// und //Level// (im IO-APIC). Er hat dann behauptet, dass wenn man ein Zeichen nicht abholt, das System nichts mehr tut. Damit meinte er, dass die Behandlung von Tastaturinterrupts den Trigger-Mode //Level// verwendet, und das BS deswegen die ganze Zeit wieder in den Interrupthandler springen würde, weil die Interruptleitung erst auf 0 gesetzt wird, wenn das Zeichen abgeholt wurde. Hierauf bin ich nur so halb gekommen. Er wollte auf etwas sehr detailliertes hinaus: die beiden verschiedenen Trigger-Modes //Edge// und //Level// (im IO-APIC). Er hat dann behauptet, dass wenn man ein Zeichen nicht abholt, das System nichts mehr tut. Damit meinte er, dass die Behandlung von Tastaturinterrupts den Trigger-Mode //Level// verwendet, und das BS deswegen die ganze Zeit wieder in den Interrupthandler springen würde, weil die Interruptleitung erst auf 0 gesetzt wird, wenn das Zeichen abgeholt wurde. Hierauf bin ich nur so halb gekommen.
  
-**Welche Interrupt(signalisierungs)art wird beim Timer-Interrupt verwendet?**+  * **Welche Interrupt(signalisierungs)art wird beim Timer-Interrupt verwendet?**
  
 Hier hab ich ziemlich lange überlegt, bin dann aber darauf gekommen. Es war //Edge//, weil es ja keine Daten abzuholen gibt, sondern es nur um die Signalisierung bzgl. der abgelaufenen Zeit geht. Hier hab ich ziemlich lange überlegt, bin dann aber darauf gekommen. Es war //Edge//, weil es ja keine Daten abzuholen gibt, sondern es nur um die Signalisierung bzgl. der abgelaufenen Zeit geht.
  
-=== IPC === +==== IPC ==== 
-**Was ist Virtual Shared Memory?**+  **Was ist Virtual Shared Memory?**
  
 Habe kurz allgemein was zu IPC gesagt, und dann eben, dass Virtual Shared Memory die Nachstellung von Shared Memory über Nachrichten ist. Da hab ich ein bisschen erklärt wie das abläuft, mit dem Versenden von Seiten usw. Habe kurz allgemein was zu IPC gesagt, und dann eben, dass Virtual Shared Memory die Nachstellung von Shared Memory über Nachrichten ist. Da hab ich ein bisschen erklärt wie das abläuft, mit dem Versenden von Seiten usw.
  
-**Wenn man mehrere Variablen hat, und auf die Variablen von verschiedenen Prozessen zugegriffen wird, warum könnte das problematisch sein?**+  * **Wenn man mehrere Variablen hat, und auf die Variablen von verschiedenen Prozessen zugegriffen wird, warum könnte das problematisch sein?**
  
 Wei die Variablen vermutlich in der gleichen Seite liegen. Wei die Variablen vermutlich in der gleichen Seite liegen.
  
-**Wie würde man Raytracing mit vielen PCs wie im CIP machen?**+  * **Wie würde man Raytracing mit vielen PCs wie im CIP machen?**
  
 Jeder PC hat eine Kopie von der Szene, weil sie sich nicht verändert. Dann berechnet jeder PC einen Teil der Szene, und am Ende schreiben alle ihr Ergebnis synchronisiert auf Platte. Jeder PC hat eine Kopie von der Szene, weil sie sich nicht verändert. Dann berechnet jeder PC einen Teil der Szene, und am Ende schreiben alle ihr Ergebnis synchronisiert auf Platte.