Traps

Hi,

ich lese gerade etwas bzgl Trap Behandlung in virtuellen Maschinen und stelle mir folgende Frage: Wenn ein Prozess trapt - also ein Signal vom OS bekommt - hat dieses Signal ja eine Bedeutung, z.B. die, dass eine bestimmte Instruktion einen Fehler verursacht hat. Dieses Signal kann aber so wie ich das verstanden habe, leicht zeitverzögert ankommen und möglicherweise auch zeitverzögert vom Prozess behandelt werden. Woher weiss der Prozess dann um welche Instruktion es sich gehandelt hat, also welche davon den Fehler verursacht hat?

ciao
serow
 
Der dritte Typ sei hier definiert als der Trap, ist jedoch genauso bekannt unter der Bezeichnung Software-Interrupt, was soviel bedeutet, dass das laufende Programm selbst will, dass es unterbrochen wird, damit etwas Wichtiges erledigt werden kann. Die verlangte Routine wird direkt über eine Nummer im Programmcode angegeben.
Sobald sich der Prozessor in diese für alle drei Typen notwendigen Behandlungs-Routinen (Trap-Handler, Interrupt-Handler) eingeklinkt hat, wird diese abgelaufen, und nach Beendigung derselben zum ursprünglichen Programm zurückgekehrt.


Quelle: http://mandalex.manderby.com/t/traps.php
 
Nagut, das wiederspricht irgendwie dem was ich gelesen habe bzgl zeitverzögerte Behandlung. Aber evtl hat sich das auch nur auf die Situation von Process VMs bezogen.

Grüße
serow
 
Zurück
Oben