BS - Interrupts

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

BS - Interrupts
im skript, folie Programmunterbrechungen / 26: Da steht, dass es sinnvoll ist der Behandlungsroutine den Stackpointer mitzugeben. Frage: Was genau soll daran toll sein? Der Stackpointer is doch n Register und eigentlich spaetestens da wo es sinn macht nen Stackpointer zu haben (Unterbrechung von Unterbrechungen zum Bsp) waere es doch eh schon so, dass man, zumindest auf x86, auf dem SystemStack is, also seh ich schon den richtigen Stack. Ich versteh einfach nich, warum ich ner Behandlungsroutine noch den Stackpointer uebergeben soll, den sie ja eh hat.
Bitte um Klaerung!

P.S:
Kann es sein, dass das dann sinnvoll is, wenn meine Maschine mehr als 2 Arbeitsmodi hat, wo nur zum Beispiel die Unterbrechung Nr1 erst ma in den System Mode springt ( → SystemStack) und dann Unterbrechung Nr2 in den InterruptMode springt und die unterbrochene Unterbrechung tatsaechlich ihre Daten auf nem anderen stack hat, als die unterbrechende Unterbrechung :stuck_out_tongue: ?


Wosch brachte dazu in seiner BS Vorlesung das Beispiel eines Page-Faults. Der CPU muss mitgeteilt werden, dass die Behandlung erledigt worden ist, und der Seitenzugriff erneut durchgeführt werden kann. Da dabei der gleiche Aufruf, der auch zu dieser Unterbrechung geführt hat, erneut aufgerufen werden muss, muss der instrunction pointer im Stack des unterbrochenen Prozesses geändert werden. Deswegen ist ein direkter Zugriff auf die gesicherten Registerinhalte des unterbrochenen Prozesses nötig.


ham wir (cody und ich) damals auch net gepielt, trotzdem 1.0 geholt passt.