Ich kann mich nicht mehr an alle gestellten Fragen erinnern. Insgesamt habe ich scheinbar sehr viel geredet und er hat dadurch nur wenige Themengebiete/Fragen gestellt, wobei er hin und wieder kleinere zusätzliche Fragen gestellt hat. Ich hab meistens mehr gesagt als hier steht. Insgesamt war die Atmosphäre sehr entspannt und obwohl ich bei zwei Fragen nicht direkt/oder garnicht auf die Antwort gekommen bin war er sehr zufrieden → 1.0
* Habe hier echt viel zu led als Debughilfe, printf, Remote Debugging (gdb stub), Emulatoren und Lauterbach CPU gesagt.
* Timings ändern sich und Raceconditions treten möglicherweise nicht mehr auf.
* War quasi seine Überleitung zu Interrupts. Hab grob erzählt, dass in einem BS manchmal zeitkritische „Events“ vorkommen die schnell behandlet werden sollten (Bsp: Reaktor wird sonst warm).
* CPU blockiert kurz Interrupts damit das gleiche Interrupt das aktuelle nicht nochmal unterbrechen kann (wusste ich nicht, aber war laut ihm nicht ganz so schlimm weil es eher Rechnerarchitektur sei). Danach wird der aktuelle Kontext gesichert und die Behandlungsfunktion gestartet welche sich um den Rest kümmert. * Dann hab ich noch das Prioritätsebenenmodell sowie das Prolog/Epilog-Modell erklärt und die Gründe für das Epilogmodell genannt.
* Habe ich dann auch grob erklärt. Aufschreiben musste ich hier nichts.
* Es kann schneller auf Interrupts reagiert werden und sie gehen nicht verloren, da normale Anwendungen maximal die Epilogebene anstatt Interrupts „blockieren“. (Falls der Reaktor warm wird kann schneller gekühlt werden.)
* Spurious interrupts
* Defensiv programmieren.
* Hab ihm dann nach anfänglichen Leichtsinnsfehlern die ich selber noch rechtzeitig bemerkt hab die Implementierungen aufgeschrieben.
* Hier habe ich etwas über Lost-Wakeup erzählt. Damit war er scheinbar zufrieden.
* Bin ich leider nicht direkt drauf gekommen. Hören wollte er hier, dass block() implizit einen neuen Thread einlastet welcher das leave aufruft, weil resume() auf der Epilogebene stattfindet.
* Queue mit messages mit Semaphore synchronisieren.
* Beide gleich mächtig, weil das eine jeweils das andere emulieren kann. Habe da noch ein paar Vor und Nachteile aufgezählt.
* Liste mit Nachrichten welche mit Semaphoren synchronisiert ist. (Reihenfolge der P()-Aufrufe in receive wichtig, da ansonsten Deadlock!)
* Konzept ganz grob anhand einer Skizze erklärt. Hierbei aufpassen, dass man die MMU mit dem Pagefault nicht vergisst. (Speicher kopieren, Rechte anpassen, etc)
* Man braucht Shared memory + Interrupts. Stichwort IPI (Hier bin ich leider erst kurz vor Schluss draufgekommen, nachdem er mich mehrfach auf den richtigen Weg bringen wollte: „Was mache ich, wenn ein CPU-Kern nichts zu tun hat ich aber in der Readylist Threads habe?“)