Interrupts, Traps, Faults

benrub
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 3. Dez 2006 01:26

Interrupts, Traps, Faults

Beitrag von benrub »

Hallo,

ich bin auf ein paar Ungereimtheiten gestoßen, die ich mir nicht ausreichend sicher erklären kann:
Kapitel 6, Teil 1, Seite 19 nennt Traps quasi äquivalent zu Exceptions als synchroner, in CPU generierter Interrupt. Faults werden nicht weiter erwähnt, aber externe Unterbrechnungen kommen noch dazu.
Das ginge einher mit Patterson/Hennessy, der nur zwischen externen ("Interrupt") und internen ("exception") unterscheidet.

In der 8. Übung, Aufgabe 2d), ist der Trap zwar synchron, aber nicht mehr (z.B.) die Division durch Null, sondern das "Schreiben eines Datums in Netz-Controller", was auch immer das heißen mag.
Faults treten dafür aber als - anscheinend? - Synonym für Exceptions auf.

Die Englische Wikipedia gibt mir Interrupts als asynchrone Hardware- oder synchrone Softwareunterbrechung, wobei letztere eher uninteressant für uns sein sollten.
Andere Quellen will ich gar nicht mehr betrachten, um mich nicht nicht unnötig zu verwirren.

Sind also Exceptions und Faults äquivalent und Interrupts extern? Und wie passen Traps da hinein?

Vielen Dank!

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: Interrupts, Traps, Faults

Beitrag von thomas_kalbe »

In der 8. Übung, Aufgabe 2d), ist der Trap zwar synchron, aber nicht mehr (z.B.) die Division durch Null, sondern das "Schreiben eines Datums in Netz-Controller",
Die Div. durch 0 ist auch ein Fault bzw. eine Exception. Aber trotzdem synchron + reproduzierbar.
Die div. ist aber kein Trap, da ich hier nicht aktiv das BS um "Unterstützung" bitte, sondern dieses nur meine Dummheit,
nicht vorher auf /0 zu prüfen, abfängt.
"Schreiben eines Datums in den Netz-Controller" ist sowas wie das Absetzen eines Syscalls bzw. ein Trap. Sollte eigentlich aus den entsprechenden Folien hervorgehen.
Sind also Exceptions und Faults äquivalent und Interrupts extern? Und wie passen Traps da hinein?
Exceptions und Faults sind mehr oder wenger das Gleiche. (Punkt. Neuer Satz).
Aber externe Interrupts sind was vollkommen anderes und können jederzeit - überraschend und
nicht unbedingt reproduzierbar - auftreten. Denke, Du meintest das so.
Traps sind ein aktiver Einsprung in das Betriebssystem und - grob gesagt - das gleiche wie Syscalls.
Natürlich gibt es bei Exceptions und Faults ebenso Einsprünge in das BS, aber nicht unbedingt vom Programmierer aktiv so gewollt (es sei denn, er will das BS hacken ... ).
Teilweise muss man noch unterscheiden, ob der Fehler direkt mit einem Bug im Programmcode zusammenhängt (Div durch 0) oder aber irgendwie im Zusammenhang mit der
Organisation der Rechner-Architektur, des BS sowie dem momentanen Speicherabbild steht, wie z.B. bei page faults.

Die Literatur geht bei den Begriffen leider ein wenig durcheinander und als zusätzliche Quelle habe ich noch das Buch "Computer Systems - A programmer's Approach" verwendet.

-t

benrub
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 3. Dez 2006 01:26

Re: Interrupts, Traps, Faults

Beitrag von benrub »

Vielen vielen Dank, das war sehr hilfreich!

Jetzt bleibt mir nur noch eine Frage:
thomas_kalbe hat geschrieben: Teilweise muss man noch unterscheiden, ob der Fehler direkt mit einem Bug im Programmcode zusammenhängt (Div durch 0) oder aber irgendwie im Zusammenhang mit der
Organisation der Rechner-Architektur, des BS sowie dem momentanen Speicherabbild steht, wie z.B. bei page faults.
Ist das der Unterschied zwischen Exceptions und Faults?

Antworten

Zurück zu „Archiv“