Diskussion:Computerhardware: Prozessor: Details: Protected Mode

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Der Abschnitt "Interrupts und Exceptions" ist leider grosser Schwurbel, dass heisst unverstaendlich sowie sprachlich und inhaltlich stark zu verbessern.

En detail:

> Um das Betriebssystem über einen Fehler im Programm, eine Hardewaremeldung, ... zu unterrichten werden Interrupts (to interrupt = <engl.> unterbrechen) ausgelöst.

> Man unterscheidet zwischen externen (Hardwareinterrupts) und internen ("INT"-Befehle, Exception, ...) Interrupts.

How about Softwareinterrupts? (INT-Befehle)

> Es existiert eine Tabelle, in der vermerkt ist, wo die Codeausführung fortgesetzt werden soll, wenn ein Interrupt ausgelöst wird.

ich war so frei...

> Normalerweise sind dort Gates eingetragen. Diese Tabelle heißt Interrupt Descriptor Table, kurz IDT.

> Registriert die CPU einen Interrupt. schaut sie in der IDT nach, an welche Adresse (Segment und Offset) gesprungen werden soll.

Register sichern?

> Die Prozedur, die an dieser Adresse steht, wertet den Interrupt aus und informiert andere Programme oder verändert irgendwelche Variablen, ...

auf dieser Ebene werden eher nicht "Variable" verändert und "Programme informiert". Das sind Formulierungen, die Vorgänge auf zwei Ebenen beschreiben, die sich auch ein Stück weit überschneiden.

"irgendwelche" macht sich sprachlich nicht gut in einem technischen Text.

> Bei einem PC ist aber die Verteilung der Interrupts durcheinander.

Das soll heissen? Wir wissen ja, wie das PC-Design bei IBM entstand, aber geht's ein bisschen präziser?

> So überschneiden sich ein Teil Hardwareinterrupts mit manchen Exceptions.

???? Was ueberschneidet sich da? Was genau ändert die Programmierung des Interrupt-Controllers?

> Dafür gibt es den Interrupt Contoller Chip.

Ein dedizierter "Chip" ist das schon lang nicht mehr.

> Man kann ihn so umprogrammieren, dass die Hardwareinterrupts in einen anderen Bereich verlagert werden (z.B. int 0x20-0x2F).

Was sagen die Nummern?

> Es gibt 2 Interrupt Controller Chips.

s.o.

> Jeder verwaltet 8 Hardwareinterrupts. Einer der beiden ist "Master" (primär) und einer "Slave" (sekundär). Wenn der sekundäre Interrupt Controller Chip eine Interruptanfrage bekommt, sendet dieser eine Interruptanfrage an den primären. Dieser unterrichtet dann die CPU.

Die Interrupts sind bekannt, koennen also genannt werden. der Fachbegriff fuer die Master-Slave-Kopplung ist "Kaskadierung".

> Tritt ein Fehler bei der Programmausführung auf, wird eine Exception ausgelöst (exception = <engl.> Ausnahme). Es gibt 16 Exceptions. Bei jeder wird ein Interrupt ausgelöst. Die Interrupts beginnen bei int 0 (Division durch Null) und endet bei int 0x0F.

Das laesst sich kuerzer und griffiger formulieren.

> Bei manchen Exceptions wird ein Fehlercode (error code) auf dem Stack abgelegt. Dieser ist vor dem Rücksprung zu entfernen, da sonst eine weitere Exception auftritt. > Der Rücksprung erfolgt mittels dem "IRET"-Befehl.

Nur mal so als Vorschlag....


Danke für die Tipps. Ich werde mich damit in nächster Zeit nochmal beschäftigen. Trotzdem finde ich es schade, dass fast nur ich an diesem Buch gearbeitet hatte. Moon2005 13:55, 19. Jun 2006 (UTC)