Unterschied Trap und Syscall

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.

Unterschied Trap und Syscall
Hey,

ein Syscall ist ja ein Aufruf einer im OS definierte Funktion z.B. irgendwas auf dem Bildschirm ausgeben? Ein Trap soll eine Abfangung einer synchronen Ausnahme (= Syscall und CPU Exception) sein. Stimmt das?

VG
froschigon


Laut dem Glossar von Wosch aus SP1: https://www4.cs.fau.de/Lehre/SS16/V_SP1/Vorlesung/Folien/SP1-071-Glossar.pdf

Trap → Abfangung:

Syscall → Systemaufruf

Unterbrechung:

tl;dr
Syscall → absichtlicher Aufruf (synchron) des Programmierers an das OS (zB Speicher anfordern)
Trap → unabsichtlicher Aufruf (synchron) des OS (zB teilen durch null o.Ä.)
Unterbrechung → externer Aufruf (asynchron) des OS


Interessant ist außerdem der Unterschied, zu welcher Instruktion der Rücksprung erfolgt - zurück zur auslösenden Instruktion oder weiter zur nächsten Instruktion.