Systemaufruf vs Interrupt
Ein typischer Prozessor führt Anweisungen einzeln aus. Es kann jedoch vorkommen, dass der Prozessor vorübergehend anhalten und den aktuellen Befehl halten und ein anderes Programm oder Codesegment ausführen muss (das sich an einem anderen Ort befindet). Danach kehrt der Prozessor zur normalen Ausführung zurück und fährt dort fort, wo er aufgehört hat. Ein Systemaufruf und ein Interrupt sind solche Anlässe. Ein Systemaufruf ist ein Aufruf einer im System integrierten Unterroutine. Ein Interrupt ist eine Programmsteuerungsunterbrechung, die durch externe Hardwareereignisse verursacht wird.
Was ist ein Systemaufruf?
Systemaufrufe bieten Programmen, die auf dem Computer ausgeführt werden, eine Schnittstelle, um mit dem Betriebssystem zu kommunizieren. Wenn ein Programm vom Kernel des Betriebssystems einen Dienst anfordern muss (für den es selbst keine Berechtigung hat), verwendet es einen Systemaufruf. Prozesse auf Benutzerebene haben nicht die gleichen Berechtigungen wie die Prozesse, die direkt mit dem Betriebssystem interagieren. Um beispielsweise mit einem externen E / A-Gerät zu kommunizieren oder mit anderen Prozessen zu interagieren, muss ein Programm Systemaufrufe verwenden.
Was ist ein Interrupt?
Während der normalen Ausführung eines Computerprogramms können Ereignisse auftreten, die dazu führen können, dass die CPU vorübergehend angehalten wird. Ereignisse wie dieses werden als Interrupts bezeichnet. Interrupts können entweder durch Software- oder Hardwarefehler verursacht werden. Hardware-Interrupts werden (einfach) als Interrupts bezeichnet, während Software-Interrupts als Ausnahmen oder Traps bezeichnet werden. Sobald ein Interrupt (Software oder Hardware) ausgelöst wird, wird die Steuerung an eine spezielle Unterroutine namens ISR (Interrupt Service Routine) übertragen, die die durch den Interrupt ausgelösten Bedingungen verarbeiten kann.
Wie oben erwähnt, ist der Begriff Interrupt normalerweise für Hardware-Interrupts reserviert. Dies sind Programmsteuerungsunterbrechungen, die durch externe Hardwareereignisse verursacht werden. Extern bedeutet hier extern außerhalb der CPU. Hardware-Interrupts kommen normalerweise von vielen verschiedenen Quellen wie Timer-Chips, Peripheriegeräten (Tastaturen, Maus usw.), E / A-Anschlüssen (seriell, parallel usw.), Festplatten, CMOS-Takt, Erweiterungskarten (Soundkarte, Video) Karte usw.). Das bedeutet, dass Hardware-Interrupts aufgrund eines Ereignisses im Zusammenhang mit dem ausgeführten Programm fast nie auftreten. Beispielsweise kann ein Ereignis wie ein Tastendruck auf der Tastatur durch den Benutzer oder ein internes Zeitlimit für den Hardware-Timer diese Art von Interrupt auslösen und die CPU darüber informieren, dass ein bestimmtes Gerät etwas Aufmerksamkeit benötigt. In einer solchen Situation stoppt die CPU alles, was sie getan hat (dh pausiert das aktuelle Programm).stellt den vom Gerät benötigten Dienst bereit und kehrt zum normalen Programm zurück.
Was ist der Unterschied zwischen Systemaufruf und Interrupt?
Der Systemaufruf ist ein Aufruf einer im System integrierten Unterroutine, während Interrupt ein Ereignis ist, bei dem der Prozessor die aktuelle Ausführung vorübergehend anhält. Ein wesentlicher Unterschied besteht jedoch darin, dass Systemaufrufe synchron sind, Interrupts jedoch nicht. Das bedeutet, dass Systemaufrufe zu einer festgelegten Zeit erfolgen (normalerweise vom Programmierer festgelegt). Interrupts können jedoch jederzeit aufgrund eines unerwarteten Ereignisses wie eines Tastendrucks auf der Tastatur durch den Benutzer auftreten. Daher muss sich der Prozessor bei jedem Systemaufruf nur merken, wohin er zurückkehren soll. Im Falle eines Interrupts muss sich der Prozessor jedoch sowohl den Ort, an den er zurückkehren soll, als auch den Status des Systems merken. Im Gegensatz zu einem Systemaufruf hat ein Interrupt normalerweise nichts mit dem aktuellen Programm zu tun.