Moin Moin liebe Leute, nächstes Video zur Vollesung von Betriebssystemen.
Wir waren beim Kapitel Soft-IRQs, wir haben uns da schon alles mögliche angeguckt.
Jetzt zum Abschluss noch ein paar Hinweise auf verwandte Konzepte und welche davon in
welchen Betriebssystemen eingesetzt werden.
Also ein paar verwandte Konzepte.
Erstes stammt jetzt vom Beispiel her aus der Linux Welt, gibt es aber auch in anderen
Unix Varianten das Konzept der sogenannten Top- bzw.
Bottom-Halfs.
Also es gibt bei der Interrupt-Abarbeitung sozusagen eine obere, eine untere Hälfte.
Naja, das sind gerade die Dinger, die wir so als hardware-related bzw.
software-related Teile bezeichnet haben.
Die Soft-IR-Cues bzw. der Hardware-Teil, der den Software-Teil triggert.
Wie funktionieren die?
Interrupt-Händler liest Daten aus dem Gerät, kennen wir schon, und setzt ein Bit, das haben
wir schon.
Das Trigger wird aufgerufen.
Allerdings, und das ist jetzt der kleine Unterschied zu dem, was ich euch bisher erzählt
habe, bei dem Trigger-Aufruf wird nicht sofort der Händler aufgerufen, sondern es wird damit
gewartet, bis der unterbrochene Prozess in den User-Mode zurückkehrt.
So nach der Idee, alles ist wichtig, der User-Gram nicht.
Also solange der unterbrochene Prozess im Kern irgendwas arbeitet, der Kerngeschichten
sind wichtig, die unterbrechen wir nicht durch den Soft-IR-Cue-Händler, sondern damit warten
wir bis zu dem Zeitpunkt, wo der Prozess in den User-Bereich zurückkehrt, also die User-Anwendung
fortgesetzt wird.
Andere Variante wäre der sogenannte Kernel Soft-IR-Cue-Demon.
Wofür ist der gut?
Auch stammt aus der Linux-Welt das Beispiel.
Ihr erinnert euch im letzten Video an die Schleife in der Enable-Methode.
Wenn wir die Soft-IR-Cues wieder Enable machen, was passiert da?
Wir gucken uns das Pending-Bit an, setzen es auf false, wenn es dann true war, und rufen
den die Behandlungsfunktion auf.
Während die Behandlungsfunktion läuft, kann es natürlich sein, dass wieder ein Interrupt
eintritt, der das Pending-Bit setzt, das heißt, wir müssen die Schleife noch einmal durchlaufen.
Das kann rein theoretisch unendlich oft passieren.
Stellt euch vor, aus dem Internet befeuert euch jemand mit Netzwerk-Anfragen.
Dann empfangt ihr welche, der Hardware-IoQ setzt das Pending-Bit und ihr beantwortet
die Anfrage.
Während ihr die Anfrage beantwortet, kommt schon die nächste Anfrage, die bearbeitet
ihr, bearbeitet ihr und so weiter, mit dem Effekt, dass euer Rechner eigentlich tot ist.
Der beantwortet zwar nach außen hin brav seine Anfragen, aber intern passiert eigentlich
nichts mehr.
Euer ganz normale, was weiß ich, euer Shell, euer Desktop und so ist mehr oder weniger
eingefroren, weil er sich nur noch in dieser Interrupt-Abarbeitung befindet.
Da ist jetzt die Idee, diese Schleife, die durchlaufen wir jetzt nicht so lange, dass
Pending-Bit gesetzt ist, sondern nur so lange, dass Pending-Bit gesetzt ist und wir nicht
mehr als 100 mal durchgelaufen sind.
Also wir begrenzen die Anzahl der Durchläufe.
Danach sagen wir, ne Moment, wir müssen noch andere Dinge tun.
Zwar soll die Händler-Aufrufgeschichte weiterhin passieren, aber jetzt nicht mehr so häufig.
Wie kann man das machen?
Presenters
Zugänglich über
Offener Zugang
Dauer
00:13:09 Min
Aufnahmedatum
2020-11-16
Hochgeladen am
2020-11-19 11:28:13
Sprache
de-DE
5. Kapitel der Vorlesung Betriebssysteme.