Systemanruf gegen Interrupt
Ein typischer Prozessor führt Anweisungen nacheinander aus. Es kann jedoch Fälle geben, in denen der Prozessor vorübergehend aufhören und die aktuelle Anweisung aufbewahren und ein anderes Programm- oder Code -Segment ausführen muss (wohnhaft an einem anderen Ort). Danach kehrt der Prozessor zur normalen Ausführung zurück und fährt von der Stelle fort, die er aufgehört hat. Ein Systemaufruf und ein Interrupt sind solche Anlässe. Ein Systemanruf ist ein Aufruf an eine in das System eingebaute Unterroutine. Ein Interrupt ist eine Unterbrechung der Programmsteuerung, die durch externe Hardwareereignisse verursacht wird.
Was ist ein Systemanruf?
Systemaufrufe bieten Programme, die auf dem Computer ausgeführt werden, eine Schnittstelle, mit der Sie mit dem Betriebssystem sprechen können. Wenn ein Programm nach einem Dienst bitten muss (für den es selbst keine Erlaubnis hat) aus dem Kern des Betriebssystems verwendet, verwendet er einen Systemaufruf. Benutzerebene Prozesse haben nicht die gleichen Berechtigungen wie die Prozesse, die direkt mit dem Betriebssystem interagieren. Um beispielsweise mit und externes E/A -Gerät zu kommunizieren oder mit anderen Prozessen zu interagieren, muss ein Programm Systemanrufe verwenden.
Was ist ein Interrupt?
Während der normalen Ausführung eines Computerprogramms kann es Ereignisse geben, die dazu führen können, dass die CPU vorübergehend annimmt. Ereignisse wie diese werden als Interrupts bezeichnet. Interrupts können entweder durch Software- oder Hardwarefehler verursacht werden. Hardware -Interrupts werden (einfach) Interrupts bezeichnet, während Software -Interrupts als Ausnahmen oder Fallen bezeichnet werden. Sobald ein Interrupt (Software oder Hardware) angehoben ist.
Wie oben erwähnt, ist der Begriff Interrupt normalerweise Hardware -Interrupts reserviert. Sie sind Programmsteuerungsunterbrechungen durch externe Hardwareereignisse. Hier bedeutet externe Mittel außerhalb der CPU. Hardware -Interrupts stammen normalerweise aus vielen verschiedenen Quellen wie Timer -Chip, peripheren Geräten (Tastaturen, Maus usw.), E/O -Ports (seriell, parallel usw.), Festplattenlaufwerke, CMOS -Uhr, Erweiterungskarten (Soundkarte, Grafikkarte usw.). Das bedeutet. Beispielsweise kann ein Ereignis wie ein Taste -Drücken auf der Tastatur des Benutzers oder ein internes Hardware -Timer -Timing diese Art von Interrupt erhöhen und die CPU darüber informieren, dass ein bestimmtes Gerät einige Aufmerksamkeit benötigt. In einer solchen Situation wird die CPU aufhören, was auch immer es tat (ich.e. pausiert das aktuelle Programm), bietet den vom Gerät benötigten Dienst und kehrt zum normalen Programm zurück.
Was ist der Unterschied zwischen Systemaufruf und Interrupt?
Systemaufruf ist ein Aufruf an eine in das System eingebaute Unterprogramme, während Interrupt ein Ereignis ist, das den Prozessor dazu veranlasst. Ein wesentlicher Unterschied besteht jedoch darin, dass Systemaufrufe synchron sind, während Interrupts nicht sind. Das bedeutet, dass Systemaufrufe zu einem festen Zeitpunkt (normalerweise vom Programmierer bestimmt) auftreten, aber Interrupts können jederzeit auftreten, da ein unerwarteter Ereignis wie eine Taste auf der Tastatur durch den Benutzer vorliegt. Daher muss der Prozessor nur dann daran denken, wohin er zurückkehren soll. Im Gegensatz zu einem Systemaufruf hat ein Interrupt normalerweise nichts mit dem aktuellen Programm zu tun.