Podcast
Questions and Answers
Was ist der Hauptunterschied zwischen einem Programm und einem Prozess?
Was ist der Hauptunterschied zwischen einem Programm und einem Prozess?
- Ein Prozess ist eine statische Anweisung, während ein Programm eine dynamische Ausführung ist.
- Ein Programm ist ein Prozess in der Ausführung.
- Es gibt keinen Unterschied; die Begriffe sind austauschbar.
- Ein Programm ist eine statische Anweisung, während ein Prozess eine dynamische Ausführung ist. (correct)
In einem Multitasking-Betriebssystem kann mehr als ein Prozess gleichzeitig auf einer einzigen CPU ausgeführt werden.
In einem Multitasking-Betriebssystem kann mehr als ein Prozess gleichzeitig auf einer einzigen CPU ausgeführt werden.
False (B)
Nennen Sie mindestens drei Elemente, die zum Kontext eines Prozesses gehören.
Nennen Sie mindestens drei Elemente, die zum Kontext eines Prozesses gehören.
Registerwerte, Cache-Belegung, Hauptspeicherbelegung
Ein ______ ist ein Betriebssystemmechanismus, der den Wechsel von einem Prozess zu einem anderen auf der CPU ermöglicht.
Ein ______ ist ein Betriebssystemmechanismus, der den Wechsel von einem Prozess zu einem anderen auf der CPU ermöglicht.
Ordnen Sie die folgenden Zustände eines Prozesses ihren Beschreibungen zu:
Ordnen Sie die folgenden Zustände eines Prozesses ihren Beschreibungen zu:
Welche Aussage beschreibt am besten den Unterschied zwischen einem schlafenden (blockierten) und einem angehaltenen Prozess?
Welche Aussage beschreibt am besten den Unterschied zwischen einem schlafenden (blockierten) und einem angehaltenen Prozess?
Ein Prozess im Zustand 'Zombie' verbraucht noch Rechenleistung.
Ein Prozess im Zustand 'Zombie' verbraucht noch Rechenleistung.
Was ist ein Dämonprozess?
Was ist ein Dämonprozess?
Ein ______ ist ein Teil eines Prozesses, der einen unabhängigen Kontrollfluss repräsentiert.
Ein ______ ist ein Teil eines Prozesses, der einen unabhängigen Kontrollfluss repräsentiert.
Welchen Vorteil bietet die Verwendung von Threads im Vergleich zu Prozessen?
Welchen Vorteil bietet die Verwendung von Threads im Vergleich zu Prozessen?
Threads innerhalb eines Prozesses sind vollständig voneinander isoliert.
Threads innerhalb eines Prozesses sind vollständig voneinander isoliert.
Nennen Sie eine Herausforderung bei der Programmierung mit Threads.
Nennen Sie eine Herausforderung bei der Programmierung mit Threads.
Die Zuteilung von Prozessorzeit auf Prozesse wird als ______ bezeichnet.
Die Zuteilung von Prozessorzeit auf Prozesse wird als ______ bezeichnet.
Was ist das Ziel des Schedulings?
Was ist das Ziel des Schedulings?
Beim Non-preemptive Scheduling kann ein Prozess die CPU nur freiwillig abgeben.
Beim Non-preemptive Scheduling kann ein Prozess die CPU nur freiwillig abgeben.
Ordnen Sie die Scheduling-Ziele ihren Beschreibungen zu:
Ordnen Sie die Scheduling-Ziele ihren Beschreibungen zu:
Welches Scheduling-Verfahren bearbeitet Aufträge in der Reihenfolge ihres Eintreffens?
Welches Scheduling-Verfahren bearbeitet Aufträge in der Reihenfolge ihres Eintreffens?
Ein großer Nachteil der SJF/SPF/SPN-Strategien ist, dass sie nicht nur zu einem Verhungern (engl. Starvation) von Prozessen führen können, sondern auch immer dazu führen.
Ein großer Nachteil der SJF/SPF/SPN-Strategien ist, dass sie nicht nur zu einem Verhungern (engl. Starvation) von Prozessen führen können, sondern auch immer dazu führen.
Was löst einen Interrupt aus?
Was löst einen Interrupt aus?
Wie erkennt die CPU eine Unterbrechungsanforderung?
Wie erkennt die CPU eine Unterbrechungsanforderung?
Interrupts werden immer im Benutzermodus bearbeitet.
Interrupts werden immer im Benutzermodus bearbeitet.
Was ist der Zweck des Interrupt-Controllers?
Was ist der Zweck des Interrupt-Controllers?
Ein präziser Interrupt ist ein Interrupt bei dem nach dem Abbruch des Prozesses der Befehl der zu dem Interrupt geführt hat ______ wird.
Ein präziser Interrupt ist ein Interrupt bei dem nach dem Abbruch des Prozesses der Befehl der zu dem Interrupt geführt hat ______ wird.
Was versteht man unter dem Begriff der Nebenläufigkeit?
Was versteht man unter dem Begriff der Nebenläufigkeit?
Race Conditions entstehen immer durch nebenläufige Ausführung von Prozessen oder Threads.
Race Conditions entstehen immer durch nebenläufige Ausführung von Prozessen oder Threads.
Flashcards
Was ist ein Programm?
Was ist ein Programm?
Eine (statische) Verfahrensvorschrift für die Verarbeitung auf einem Rechnersystem.
Was ist ein Prozess?
Was ist ein Prozess?
Ein Programm in Ausführung; ein Programm zur Laufzeit.
Was ist ein Prozesskontext?
Was ist ein Prozesskontext?
Die Gesamtheit aller Informationen, die ein Prozess während seiner Ausführung auf der CPU benötigt (Registerwerte, Caches, Speicherbelegung).
Was ist ein Kontextwechsel?
Was ist ein Kontextwechsel?
Signup and view all the flashcards
Was ist ein Prozesskontrollblock (PCB)?
Was ist ein Prozesskontrollblock (PCB)?
Signup and view all the flashcards
Was ist die Prozesstabelle?
Was ist die Prozesstabelle?
Signup and view all the flashcards
Was ist die Prozess-ID (PID)?
Was ist die Prozess-ID (PID)?
Signup and view all the flashcards
Was ist ein Zombie-Prozess?
Was ist ein Zombie-Prozess?
Signup and view all the flashcards
Was ist ein Dämon-Prozess?
Was ist ein Dämon-Prozess?
Signup and view all the flashcards
Was ist ein Thread?
Was ist ein Thread?
Signup and view all the flashcards
Was bedeutet 'schlafender Prozess'?
Was bedeutet 'schlafender Prozess'?
Signup and view all the flashcards
Was sind Threadprioritäten?
Was sind Threadprioritäten?
Signup and view all the flashcards
Was macht der Scheduler?
Was macht der Scheduler?
Signup and view all the flashcards
Was ist Multithreading?
Was ist Multithreading?
Signup and view all the flashcards
Non-preemptive Scheduling
Non-preemptive Scheduling
Signup and view all the flashcards
Preemptive Scheduling
Preemptive Scheduling
Signup and view all the flashcards
Was ist eine Zeitscheibe (Quantum)?
Was ist eine Zeitscheibe (Quantum)?
Signup and view all the flashcards
Was bedeutet Fairness im Scheduling?
Was bedeutet Fairness im Scheduling?
Signup and view all the flashcards
Was ist die Durchlaufzeit?
Was ist die Durchlaufzeit?
Signup and view all the flashcards
FCFS
FCFS
Signup and view all the flashcards
SJF
SJF
Signup and view all the flashcards
Round Robin
Round Robin
Signup and view all the flashcards
Priority Scheduling
Priority Scheduling
Signup and view all the flashcards
Minimal Deadline First
Minimal Deadline First
Signup and view all the flashcards
Was sind Interrupts?
Was sind Interrupts?
Signup and view all the flashcards
Study Notes
Okay, hier sind Ihre detaillierten Lernnotizen zum Thema Prozessverwaltung, die für das Lernen optimiert sind:
Definition: Programm
- Ein Programm ist eine statische Anweisung zum Verarbeiten auf einem Computersystem.
- Ein Programm wird durch einen Compiler in eine ausführbare Datei umgewandelt.
- Das Betriebssystem lädt die ausführbare Datei in den Adressraum eines Prozesses.
Definition: Prozess (Schwergewichtig)
- Ein Prozess ist ein Programm in Ausführung.
- Ein Prozess ist ein Programm, das gerade aktiv ist.
- Pro CPU läuft zu einem Zeitpunkt nur ein Prozess in der Hardware.
- Diese alleinige Verfügbarkeit ist zeitlich begrenzt, sonst läge kein Multitasking-Betriebssystem vor.
Definition: Prozesskontext
- Der Prozesskontext umfasst alle Informationen, die ein Prozess bei der Ausführung auf der CPU benötigt.
- Zum Prozesskontext gehören unter anderem:
- Werte in CPU-Registern (Program Counter, Instruction Register, Stack Register, Flags usw.) gehören dazu.
- Die Belegung des Caches mit Befehlen und Daten.
- Die Belegung des Hauptspeichers mit Programmcode und Daten.
Definition: Kontextwechsel
- Ein Kontextwechsel ist der Vorgang, bei dem ein aktiver Prozess A auf der CPU durch einen anderen Prozess B ersetzt wird.
- Diese Aktivitäten werden vom Steuerwerk der CPU in Zusammenarbeit mit dem Betriebssystem ausgeführt.
Erforderliche Tätigkeiten beim Kontextwechsel
- Zu den erforderlichen Tätigkeiten gehören:
- Sichern aller notwendigen Registerinformationen des Prozesses A an einem bekannten Ort.
- Laden aller notwendigen Registerinformationen des neuen Prozesses B in die entsprechenden Register.
- Laden aller notwendigen Befehle und Daten des neuen Prozesses B in den Cache.
- Jeder Kontextwechsel beansprucht Zeit für seine Durchführung.
- Der Hardware-Kontext des laufenden Prozesses wird gesichert.
- Der Hardware-Kontext des neu aktivierten Prozesses wird in die Ablaufumgebung geladen.
- Wenn ein Prozess abgelöst wird, muss der Hardware-Kontext für eine spätere Reaktivierung gespeichert werden.
- Der Hardware-Kontext wird im PCB (Prozesskontrollblock) gesichert.
- Der Hardware-Kontext des neu zu aktivierenden Prozesses wird aus seinem PCB in die Ablaufumgebung geladen.
- Beim Kontextwechsel werden Registerinhalte wie Stackpointer (SP) und Program Status Word (PSW) bewegt.
Prozesskontrollblock (PCB)
- Ein PCB fasst alle Informationen zu einem einzelnen Prozess zusammen.
- Bei der Erzeugung eines neuen Prozesses legt das Betriebssystem einen PCB als Verwaltungsstruktur an.
- Für jeden Prozess existiert somit ein eigener PCB.
PCB Inhalt
- Programmzähler
- Prozesszustand.
- Initiale (statische) und dynamische Priorität.
- Verbrauchte Prozessorzeit seit dem Start des Prozesses.
- Eigene Prozessnummer (PID).
- Prozessnummer des erzeugenden Prozesses (Eltern- oder Vaterprozess).
- Zugeordnete Betriebsmittel (z.B. Dateien (Dateideskriptoren) und Netzwerkverbindungen).
- Aktuelle Registerinhalte (je nach Prozessor).
Prozesstabelle
- Die Prozesstabelle fasst alle Informationen aller erzeugten Prozesse zusammen.
Prozesse erzeugen
- Betriebssysteme erzeugen, bearbeiten, unterbrechen und beenden Prozesse laufend.
- Es muss einen Mechanismus geben, der den ersten Prozess erzeugt.
- Dieser erste Prozess erhält die Prozess-ID 0 (Null).
Prozess-ID
- Jeder Prozess erhält eine eindeutige Prozess-ID (PID) zur Unterscheidung und Verwaltung.
- Die PID ist üblicherweise eine ganze Zahl, größergleich Null.
Beispiele für die erste Prozess-ID unter verschiedenen Betriebssystemen
- Unter Unix-artigen Systemen (wie Linux) ist der erste Prozess der init-Prozess mit PID 1.
- Unter Windows gibt es einen System-Idle-Prozess mit der PID 0 (Leerlaufprozess).
- Wenn kein anderer Prozess bereit ist, wird der Leerlaufprozess ausgeführt, um ungenutzte CPU-Zeit zu nutzen.
Ablauf der Prozesserzeugung
- Der Programmcode und die Programmdaten werden in den Speicher geladen.
- Dem Prozess wird eine eindeutige Identifikation (PID) zugeordnet.
- Ein neuer PCB wird in der Prozesstabelle angelegt.
Prozesslebenszyklus
- Ein Prozess durchläuft verschiedene Zustände:
- Bereit: zur Bearbeitung vorbereitet.
- Aktiv: hat eine CPU.
- Blockiert: wartet auf Ressourcen.
- Beendet: nicht mehr im System vorhanden.
Zustandsübergänge
- Diese Zustandsübergänge lassen sich wie folgt beschreiben:
- Das Betriebssystem wählt einen Prozess aus (Aktivieren).
- Das Betriebssystem wählt einen anderen Prozess aus (Deaktivieren, Preemption, Vorrangunterbrechung).
- Der Prozess wird blockiert (z. B. wegen Warten auf Input, Betriebsmittel wird angefordert).
- Der Blockierungsgrund wird aufgehoben (Betriebsmittel verfügbar).
- Prozessbeendigung oder schwerwiegender Fehler (Terminieren des Prozesses).
Unterschied zwischen schlafendem/blockiertem und angehaltenem/beendetem Prozess
- Schlafender Prozess: Wartet auf eine bestimmte Bedingung oder ein Ereignis.
- Angehaltener Prozess: Wurde durch ein Signal angehalten und wartet auf ein weiteres Signal.
- Lauffähigkeit bedeutet nicht automatische CPU-Zeit.
- Ein angehaltener Prozess behält seinen Status, bis er aufgehoben wird.
Prozessstatus
- Mögliche Zustände sind:
- Zombie
- Dämon
Zombie-Prozess
- Ein Zombie-Prozess ist beendet, aber noch nicht aus der Prozesstabelle ausgetragen.
- Der Elternprozess muss den Zombie-Prozess austragen.
- Zombie-Prozesse verbrauchen keine Rechenleistung oder Speicher, nur einen Prozesseintrag.
Dämon-Prozess
- Ein Dämon-Prozess führt seine Arbeit unabhängig vom Terminal im Hintergrund aus.
- Auf einem Betriebssystem laufen meistens mehrere Programme gleichzeitig im Hintergrund (Dienste).
Thread (Leichtgewichtiger Prozess)
- Ein Thread ist ein Teil eines Prozesses, der einen unabhängigen Kontrollfluss repräsentiert.
- Ein Prozess kann aus mehreren Threads bestehen, was zu mehreren nebenläufigen Kontrollflüssen führt.
- Ein Thread ist wie "ein Prozess in einem Prozess".
- Bei mehreren Threads innerhalb eines Prozesses hat man "mehrere Prozesse innerhalb eines Prozesses".
- Es gibt unterschiedliche Verfahrensweisen bei der Nutzung von Betriebsmitteln.
Vorteile von Threads
- Einfacher und schneller Kontextwechsel: Weniger aufwändig, da Threads Ressourcen gemeinsam nutzen.
- Gemeinsamer Zugriff auf Betriebsmittel: Ermöglicht Zusammenarbeit und Datenfreigabe.
- Einfache Implementierung von Funktionen: Vereinfacht die Implementierung einzelner Funktionen (modularer Code)
Nachteile von Threads
- Spezielle Kenntnisse erforderlich: Programmierung erfordert Sorgfalt wegen potenzieller Probleme (Deadlocks, Race Conditions).
- Gemeinsamer Zugriff auf Betriebsmittel: Kann zu Synchronisationsproblemen und Konflikten führen.
- Debugging und Fehlersuche: Können schwierig sein, da Fehler schwer zu reproduzieren sind.
Threadzustände
- Mögliche Zustände:
- Laufend (running)
- Bereit (ready)
- Wartend (waiting)
Wann muss ein Thread einen Prozessor verlassen?
- Wenn die zugestandene Zeit abgelaufen ist.
- Wenn der Thread auf ein Objekt oder eine Benachrichtigung warten muss.
- Wenn ein Thread mit höherer Priorität bereit ist.
Threadprioritäten
- Jedem Thread wird eine Priorität zugeordnet.
- Systemthreads haben höhere Priorität als Anwendungsthreads.
- Der Thread mit der höchsten Priorität erhält Prozessorzeit.
Wer legt die Threadprioritäten fest?
- Das Betriebssystem.
- Die Prioritätszuordnung ist wichtig, um z.B. eine andere Anwendung zu aktivieren.
- Die Priorität kann erhöht oder erniedrigt werden.
Priorität erhöhen
- Aufgaben mit Vorrang werden bevorzugt behandelt.
Priorität erniedrigen
- Thread wird nur in bestimmten Situationen ausgeführt.
- Ein Garbage Collector erhält Priorität, wenn keine andere Ausführungseinheit die CPU benötigt.
Was passiert, wenn mehrere Threads die gleiche Priorität haben?
- Der Scheduler entscheidet, welcher Prozess als Nächstes die CPU erhält (Dispatcher).
Multithreading
- Multithreading bezieht sich auf die Fähigkeit eines Betriebssystems, mehrere Threads innerhalb eines Prozesses gleichzeitig auszuführen.
- Eine große Fehlerquelle ist der gleichzeitige Zugriff mehrerer Komponenten auf eine gemeinsame Ressource.
Beispiel für Multithreading
- Ein Textverarbeitungsprogramm startet mehrere Threads:
- Texteditor (Reagiert auf Eingaben).
- Automatische Speicherung.
- Rechtschreibprüfung.
Prozess vs. Thread (Vergleich)
- Prozess:
- Eigenständiges Programm mit eigenen Ressourcen.
- Isolierter Speicherbereich.
- Ressourcenintensiver.
- Aufwändigere Kommunikation (IPC).
- Thread:
- Kleinste Ausführungseinheit innerhalb eines Prozesses.
- Teilt Ressourcen mit dem Prozess.
- Weniger Isolation.
- Weniger ressourcenintensiv.
- Einfache Kommunikation über gemeinsame Daten.
- Prozesse sind unabhängiger und isolierter als Threads, die Ressourcen teilen.
Scheduling
- Das Betriebssystem verteilt die verfügbare Prozessorzeit auf alle Prozesse.
- Als Auftrag bzw. Job wird eine parallel ausgeführte Aktivität bezeichnet.
Prozessmanager
- Der Prozessmanager verwaltet die Prozesse (Jobs).
- Er besteht aus Scheduler und Dispatcher.
Dispatcher
- Der Dispatcher entzieht dem aktiven Prozess die CPU und teilt sie dem nächsten zu.
- D.h. er führt den tatsächlichen Prozesswechsel aus.
Scheduling-Arten
- Kurzfristiges Scheduling (CPU-Scheduling).
- Mittelfristiges Scheduling (Vergabe des Speichers).
- Langfristiges Scheduling (Verwaltung ankommender Aufgaben).
Schematische Darstellung der Scheduling-Hierarchie im Betriebssystem
- (Grafik: Lang-, Mittel- und Kurzfristiges Scheduling in konzentrischen Kreisen)
Non-preemptive Scheduling
- Ein Prozess gibt die CPU nur ab, wenn er:
- In den Zustand Blockiert wechselt.
- Die CPU freiwillig abgibt.
- Sich selbst beendet.
- Ein Prozess kann die CPU so lange nutzen, bis er terminiert.
Preemptive Scheduling
- Einem Prozess kann die CPU zu einem beliebigen Zeitpunkt entzogen werden.
- Die Prozessorzeit wird üblicherweise in kleine Zeiteinheiten (Zeitscheiben/Quantum) eingeteilt.
Zeitscheibe (Quantum)
- Zeitraum, innerhalb dessen ein Prozess die CPU nutzen darf, ohne verdrängt zu werden.
- Kann durch Interrupts unterbrochen werden.
Bei der Vergabe der CPU werden bestimmte Scheduling-Ziele angestrebt
- Fairness: Garantierte Mindestzuteilung für jeden Prozess.
- Effizienz: Hohe Auslastung der CPU.
- Minimierung der Antwortzeit und Wartezeit.
- Optimierung des Durchsatzes.
- Minimierung der Durchlaufzeit.
- Vorhersehbarkeit der Ausführung.
Prozessoptimierung
- Herausfordernd, da Scheduling-Ziele sich widersprechen können.
- Durchlaufzeit: Die gesamte Zeit, die ein Prozess im System verbringt (Bedienzeit + Wartezeiten).
- Wartezeit: Die Zeit, die ein Prozess auf die Ausführung warten muss.
- Bedienzeit: Die Zeit, in der ein Prozess die CPU tatsächlich nutzt.
- Antwortzeit: Die Zeit, in der ein Anwender auf die Bearbeitung seines Auftrags warten muss.
- Durchsatz: Anzahl der Prozesse, die ein System in einer bestimmten Zeit bearbeiten kann.
- CPU-Auslastung: Prozentsatz der CPU-Kapazität, der während der Bearbeitung von Prozessen genutzt wird.
Scheduling-Verfahren
- Unterscheidung in Scheduling-Verfahren für Batch-, Dialog- und Echtzeitsysteme.
Batch-orientierte Prozesse
- First Come First Serve (FCFS): Aufträge werden in der Reihenfolge des Eintreffens abgearbeitet.
- Shortest Job First (SJF)/Shortest Process First (SPF): Der Job mit der kürzesten Bedienzeit wird ausgewählt.
- Shortest Remaining Time Next (SRTN): Der Prozess mit der kürzesten Restrechenzeit wird ausgewählt.
- Nachteile von SJF/SPF/SPN und SRTN: Kann zu Starvation führen (Prozesse erhalten nie CPU-Zeit). Es ist schwer vorherzusagen, wie lange ein Prozess dauern wird.
Dialog-orientierte Prozesse
- Round Robin (RR): FCFS in Verbindung mit einer Zeitscheibe; alle Prozesse sind gleich wichtig.
- Priority Scheduling (PS): Der Prozess mit der höchsten Priorität wird ausgewählt.
- Garantiertes Scheduling: Jedem Prozess wird der gleiche Anteil der CPU zugeteilt.
- Lottery Scheduling: Zufällige Auswahl eines Prozesses.
Round Robin (RR)
- Jeder Prozess bekommt ein Quantum zugeteilt.
- Nach Ablauf des Quantums wird der Prozess unterbrochen und in die Warteschlange eingetragen
Priority Scheduling
- Wählt PS immer jeweils denjenigen Prozess aus, der aktuelle die höchste Priorität hat.
- Es setzt eine Verwaltung von Prioritäten voraus.
FSS (Fair Share Scheduling)
- Jedem Prozess wird der gleiche Anteil der CPU zugeteilt.
- Gibt es also N Prozesse, so wird jedem Prozess (1/N) der CPU-Leistung zur Verfügung gestellt.
Lottery Scheduling
- Ist eine mögliche Strategie.
- Jede Scheduling-Entscheidung erfolgt dabei zufällig, in der Form des Lotterieloses.
Scheduling für Realtime-Prozesse
- Echtzeitsysteme benötigen schnelle und berechenbare Reaktionen.
- Scheduling-Algorithmen:
- Minimal Deadline First (MDF).
- Polled Loop. Interrupt-gesteuert.
Minimal Deadline First (MDF)
- Ist stets derjenige Prozess auszuwählen, dem die nächste Deadline am nächsten ist.
Polled Loop
- Alle Geräte erhalten die Möglichkeit in einer Schleife auf ein Ereignis zu warten und dieses dann zu bearbeiten.
Interrupt-gesteuerte Systeme
- Warten z.B. auf Interrupts von Ereignisquellen und führen dann die ISR aus.
Unterscheidung in 2 Kategorien im Bereich der Echtzeit
- Harte Echtzeit:
- Antwort muss immer in der Zeitschranke liegen.
- Eine Verspätung führt zu schwerem Fehler.
- Weiche Echtzeit:
- Antwort sollte meist in der Zeitschranke liegen
- Eine Verspätung führt zu lästigen Fehler
Multi-Level-Scheduling mit Prioritäten
- Eine Strategie ist die Unterstützung verschiedener Prozess-Prioritäten mit eigenen Warteschlangen.
- Jeder Prioritätsstufe ist eine eigene Warteschlange zugeordnet.
- Es gibt ein Multi-Level-Feedback-Scheduling, wo ein Prozess die Warteschlange wechseln kann.
- Quantum und aktuelle Priorität werden verwaltet und zyklisch angepasst.
- Ein-/Ausgabe-intensive Prozesse erhalten ein höheres Quantum, rechenintensive ein kürzeres.
Interrupt
- Interrupts werden durch Hardware oder Software ausgelöst.
- Hardware-Interrupts: z.B. Tastatur, Maus, Netzwerkkarte.
- Software-Interrupts: z.B. Systemaufrufe.
- Timer-Interrupts: Verwaltung der CPU-Zeit.
Reaktion des Betriebssystems
- Das Betriebssystem kann auf unvorhergesehene Ereignisse auf die folgende Weise reagieren:
- Interrupt-Handler.
- Prioritätssteuerung.
- Multitasking.
- Fehlermanagement.
Erkennung einer Unterbrechungsanforderung durch die CPU
- Die CPU erkennt durch spezielle Signale der Interrupt-Controllern eine Unterbrechungsanforderung
- Arten von Signalen:
- Interrupt Request Line(IRQ).
- Interrupt Vector Table(IVT).
- Prioritätsmechanismen.
Unterbrechungsbearbeitung
- Wie bereits erwähnt, können Interrupts vom Betriebssystem auch ausgeblendet (maskiert) werden
- Die Bearbeitung der Interrupts erfolgt durch: I-Interrupt-Controller. II-Interrupt-Service-Routine(ISR) III-Interrupt-Request-Bearbeitung (IRQ-Bearbeitung)
Polling
- Geräte werden zyklisch abgefragt, um deren Kommunikationsbereitschaft festzustellen.
- Leicht zu implementieren.
- Die CPU muss ständig arbeiten, die Effizienz wird beeinträchtigt.
Interrupt
- Ereignisquellen melden sich beim Auftreten eines Ereignisses, das dann behandelt werden muss
Synchron
- Treten bei identischen Randbedingungen auf.
- Werden auch als Exceptions bezeichnet.
Asynchron
- Unterbrechen für kurze Zeit das Programm, Beispiele: Bearbeitung auf Plattenspeicherblocks oder die Ankunft einer Nachricht von Netzwerk Adaptern
Interrupts bearbeitung
Die CPU wird über das Vorliegen von einem (oder mehreren) Interrupts informiert Anschließend ist die CPU für die Abarbeitung des Interrupts zuständig
Interrupt Service Routine
Hier werden die Anweisungen auf der CPU ausgeführt, die einem bestimmten Interrupt zugeordnet sind Für jeden Interrupt-Typ gibt es eine ISR.
- Der Interrupt ist das synchrone oder asynchrone Ereignis
Hardwarebedingte Interrupts
- Interrupt-Request Bearbeitung: Die Anforderung (IRQ) erfolgt durch einen Interrupt-Controller
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.