Was ist unter Interrupts im Zusammenhang mit Betriebssystemen zu verstehen?

  • Ich habe mich entschlossen, Betriebssystemkonzepte zu lesen Silberschatz, Galvin Gagne (8. Auflage) im Sommer. Ich bin zu einem Thema gekommen, das mich verwirrt - Interrupts und ihre Rolle in Bezug auf Betriebssysteme.

    Der Text besagt, dass ein Betriebssystem einen ersten Prozess wie "init" startet und darauf wartet, dass ein "Ereignis" auftritt. Dieses Ereignis wird normalerweise durch einen Interrupt signalisiert. Der Text besagt auch, dass der Interrupt entweder von der Hardware oder von der Software stammen kann. Wie funktioniert das etwas detaillierter? Wird das Betriebssystem von Interrupts gesteuert?

    Ich bin nur auf der Suche nach Verständnis für das Gesamtbild.

    18 May 2012
    Joe Schneider4ntoine
4 answers
  • Wenn das Betriebssystem einen Prozess wie "init" ausführt, hätte es Signale an andere Subsysteme / Gerätemanager usw. gesendet, z. B. den Speicher, E / A-Geräte usw. Der Interrupt ist nur eine Möglichkeit des Prozessors oder des Betriebssystems mitzuteilen, dass er bereit ist oder neue Eingaben hat usw. Das Betriebssystem wartet also während der Initialisierung darauf, dass Subsysteme bereit sind, und ein Interrupt von diesen Subsystemen würde genau das anzeigen. Darauf bezieht sich das "Ereignis".

    Bei Hardware- oder Software-Interrupts handelt es sich um Hardware-Interrupts, die von der Hardware stammen. Z.B. E / A-Geräte wie Tastatur usw. Ein Hardware-Interrupt bewirkt, dass der Prozessor seinen Zustand speichert und mit der Ausführung des Interrupt-Handlers beginnt. Andererseits sind Software-Interrupts Anweisungen im Befehlssatz, die bewirken, dass der Prozessor seine Berechtigungsstufe gegenüber dem Benutzer-Supervisor ändert, der auch als Kontextumschaltung bekannt ist. Diese Details werden später im Lehrbuch behandelt.

    06 May 2012
    HS.
  • Mit Interrupts kann das Betriebssystem auf ein externes Ereignis wie einen Mausklick aufmerksam werden. Software-Interrupts, besser bekannt als Ausnahmen, ermöglichen dem Betriebssystem die Verarbeitung ungewöhnlicher Ereignisse, wie beispielsweise die Division durch Null, die durch die Codeausführung verursacht wird.

    Die Reihenfolge der Ereignisse sieht normalerweise folgendermaßen aus:

    1. Hardware signalisiert dem Prozessor einen Interrupt
    2. Der Prozessor bemerkt den Interrupt und setzt die aktuell laufende Software aus
    3. Der Prozessor springt zur entsprechenden Interrupt-Handler-Funktion im Betriebssystem.
    4. Der Interrupt-Handler führt seinen Kurs aus und kehrt vom Interrupt zurück.
    5. The Prozessor fährt dort fort, wo er in der zuvor laufenden Software aufgehört hat

    Der wichtigste Interrupt für das Betriebssystem ist der Timer-Interrupt. Durch den Timer-Tic-Interrupt kann das Betriebssystem die Kontrolle über den aktuell laufenden Benutzerprozess periodisch wiedererlangen. Das Betriebssystem kann dann entscheiden, einen anderen Prozess einzuplanen, zum selben Prozess zurückzukehren, den Haushalt zu erledigen usw. Der Timer-Unterbrechungsinterrupt bildet die Grundlage für das Konzept des präemptiven Multitasking.

    06 May 2012
  • Ein Interrupt ist ein "ungewöhnliches" Ereignis, das sofort verarbeitet werden muss, unabhängig von den anderen Ereignissen. Ich sage in Anführungszeichen "ungewöhnlich", weil sie nicht unbedingt unerwartet oder schlecht sind, sondern aus Sicht der CPU "ungewöhnlich", weil sie "gerade passieren", während sie damit beschäftigt ist, Code auszuführen, der möglicherweise nicht verwandt ist.

    Die CPU verfügt über einen Mechanismus zum Abhören von Interrupts und eine Möglichkeit zum Konfigurieren, was zu tun ist, wenn Interrupts verschiedener Art auftreten. Dadurch kann das Betriebssystem veranlassen, dass es benachrichtigt wird, wenn Hardwaregeräte Dinge tun (einschließlich der wichtigen Hardware-Uhr, die einfach Interrupts in regelmäßigen Abständen generiert). Durch die Konfiguration der CPU-Interrupt-Behandlung erhält der bestimmte Code im Betriebssystem die Kontrolle, wenn Interrupts auftreten.

    Der Computer befindet sich in einem sehr unangenehmen Zustand (für einen Anwendungsprogrammierer), wenn ein Interrupt-Handler verwendet wird beginnt zu laufen; Die Maschine war mit etwas anderem beschäftigt (was irgendetwas sein könnte) und nun wurde dem Betriebssystem mitgeteilt, dass "etwas passiert ist". Es muss alle anderen Informationen sammeln, die erforderlich sind, um den Interrupt tatsächlich zu handhaben, wo immer er in der Maschine liegen sollte, und er kann alle erforderlichen Verarbeitungsschritte ausführen, ohne dass dabei "irgendetwas" gestört wird, das auf der CPU ausgeführt wird. Wenn das Betriebssystem wechseln möchte, welcher Anwendungsprozess gerade ausgeführt wird, muss der Kontext ausreichend gespeichert werden, um ihn später wiederherstellen zu können (wieder ohne den Kontext zu stören), anschließend einen anderen Kontext zu laden und die CPU wieder normal arbeiten zu lassen Ausführung in diesem Kontext.

    Wie bereits erwähnt, werden Interrupts verwendet, um Benachrichtigungen von Hardwaregeräten zu erhalten (die einzige Alternative wäre, sie regelmäßig zu überprüfen), die Zeit zu verfolgen und die Garantie zu erhalten Möglichkeit, die Kontrolle über einen Anwendungsprozess wiederzuerlangen (um zu wechseln, welche Anwendung ausgeführt wird

    07 May 2012
    Mark Harrisonyukondude
  • Das Betriebssystem wird von Interrupts gesteuert. Dies bedeutet:

    Wenn keine Prozesse ausgeführt werden müssen, keine E / A-Geräte zu bedienen sind und keine Benutzer, auf die zu antworten ist, wird ein Betriebssystem still sitzen und warten etwas zu passieren Ereignisse werden fast immer durch das Auftreten eines Interrupts oder eines Traps signalisiert, ein Trap ist ein Hardware-Interrupt, der generiert wird, wenn ein ungültiger Befehl gegeben wird, und gibt dann die Steuerung an das Betriebssystem zurück.

    Ein Beispiel für eine ungültige Anweisung ist, wenn ein Programm versucht, ohne Berechtigung auf den Speicherplatz eines anderen Programms zuzugreifen.

    18 May 2012
    Joe Schneider4ntoine