Widersprüchliche Antwortmarkierungen
In ws21.q
(als richtige Antwort bei Mehrfachauswahl)
+ Ein durch einen Interrupt unterbrochenes Programm darf je nach der Interruptursache entweder abgebrochen oder fortgesetzt werden.
Ja, so ist ein _Timer Interrupt_ nicht fatal, und aktiviert nur den
Scheduler, während ein _Tastatur Interrupt_ so konfiguriert werden
kann, dass ein Prozess unterbrochen wird (denke an `Ctrl-C`).
In ss22.q
(als falsche Antwort bei Einfachauswahl)
- Ein durch einen Interrupt unterbrochenes Programm darf je nach der Interruptursache entweder abgebrochen oder fortgesetzt werden.
Nein, weil ein Interrupt nichts mit dem Programm zu tun hat, und
daher dieses nicht (direkt) abbrechen sollte.
Die Begründung der richtigen Antwort sowie warum diese Antwort falsch ist bei der Einfachwahlausgabe wirkt mir schlüssig, also denke ich, dass die Antwort (dann bei beiden Fragen) falsch sein müsste.
Außerdem, so wie ich das verstehe, wird der Interrupt, der durch den Tastendruck im Beispiel verursacht wird, nicht direkt an das Programm weitergegeben, sondern über Umwege in ein Signal an den Vordergrundprozess umgewandelt. Die Interruptbehandlung endet also meiner Meinung nach, bevor der Prozess, falls gerade ein Terminal verwendet wird, SIGINT erhält. Das unterbrochene Programm muss ja auch nicht notwendigerweise das sein, das das Signal erhält, es ist ja nicht determiniert, welcher, der (auch Hintergrund-)prozesse gerade läuft, wenn der Interrupt eintrifft.
Wie genau das funktioniert, weiß ich aber auch nicht. Beispielsweise muss ja ein Terminalemulator, der als Client eines Displayservers läuft, welcher den Tastendruck an genau das Vordergrundfenster weitergibt, das Signal an genau die Shell (von evtl. mehereren) weiterleiten, die gerade angezeigt wird usw.
Ich behaupte also, dass die Antwort bei beiden Fragen falsch sein müsste. Ich habe mal !4 (merged) dafür aufgemacht.