Interrupt Controller (Aufgaben & Arbeitsweise) | Informatik Lernvideo Lernvideos und Vorträge https://www.youtube.com/watch?v=XATiQ65nRuM Transkript (automatisch erstellt) 0:00 die Aufgabe eines Interrupt Controllers besteht darin über den steuerbus sogenannte Interrupt Signale zu empfangen und zu 0:19 verwalten sobald am Interrupt Controller ein oder mehrere interrup Signale eingegangen sind wird das Steuerwerk darüber 0:28 informiert das Steuerwerk ist in der Folge dafür zuständig jeden angezeigten Interrupt zu 0:37 bearbeiten dabei besitzt jeder interupt eine spezielle interupt behandlungsroutine diese behandlungsroutine ist Teil des 0:46 Betriebssystems und besteht aus einer Reihe von Anweisungen welche durch die CPU ausgeführt werden müssen bevor dies jedoch geschehen kann muss der aktuell 0:56 noch laufende Prozess unterbrochen werden und es muss sicher stellt sein dass dieser Prozess zu einem späteren Zeitpunkt ohne negative Auswirkung an 1:06 genau dieser Stelle weiterarbeiten kann um zu verstehen was passiert wenn ein interupt Auftritt betrachten wir 1:16 hier ein Beispiel bei dem das Betriebssystem sowie ein Prozess a sich derzeit im Hauptspeicher befinden der Prozess a wird jetzt in diesem Moment 1:25 gerade Befehl für Befehl auf der CPU ausgeführt wenn jetzt beispielsweise der Nutzer vor dem Rechner eine Taste drückt tritt ein 1:34 Interrupt auf die CPU wartet auf den richtigen Moment wenn nämlich der aktuelle Befehl komplett abgearbeitet ist aber der neue Befehl noch nicht 1:43 geholt wurde und an dieser Stelle wird der laufende Prozess a unterbrochen nun kommen die vier Bedingungen für eine präzise 1:52 Unterbrechung ins Spiel es ist dabei deine Aufgabe wenn du dieses Video siehst zu prüfen dass wirklich alle vier Bedingungen erfüllt sind als erstes 2:03 sorgt das Steuerwerk für die Sicherung des aktuellen Werts aus dem Befehlszähler und dazu kann man sich der Einfachheithalber eines anderen 2:11 Registers bedienen was auf der CPU speziell dafür vorgesehen sein könnte anhand der interupt Nummer ermittelt das Steuerwerk nun die Startadresse der 2:21 interupt behandlungsroutine diese Routine ist Teil des Betriebssystems die betreffende Adresse wird in den Befehlszähler 2:28 eingetragen jetzt beginnt wieder der normale Zyklus auf der CPU aber diesmal werden die Befehle der interupt behandlungsroutine 2:37 geholt und ausgeführt sobald die komplette Routine abgearbeitet ist bestätigt das Steuerwerk dem interupt Controller dies 2:46 und der ursprüngliche Befehlszähler wird wiederhergestellt sodass der Prozess a an genau dieser Stelle weiterlaufen kann Prozess a hat damit nicht einmal 2:57 gemerkt dass er durch den Interrupt unterbrochen wurde wir schauen uns in diesem Video einmal an was es mit der Kommunikation 3:11 zwischen CPU und Festplatte insbesondere im Hinblick auf interrups alles auf sich hat gehen wir davon aus dass wir einen Rechner haben der bereits eingeschaltet 3:21 ist das Betriebssystem ist geladen und es soll jetzt ein weiterer Prozess gestartet werden dafür müssen wir also aus aner Datei auf der Festplatte die 3:31 Information zunächst einmal in den Hauptspeicher kopieren dummerweise ist es jetzt nicht so einfach wie in dieser Animation gezeigt wenn wir genau 3:41 nachdenken dann fällt auf dass die CPU ja an dieser Übertragung noch gar nicht beteiligt war wir stellen es daher um und es muss so sein dass von der 3:51 Festplatte die Information zunächst zur CPU laufen und von der CPU dann in den Hauptspeicher transferiert werden es ist also so gesehen ein Umweg zu nehmen und 4:03 es wird noch aufwendiger denn das gesamte Programm kann natürlich nicht auf einmal tragen werden sondern wir müssen Datenwort für Datenwort einzeln 4:12 von der Festplatte holen und dann auch einzeln in den Hauptspeicher schreiben als erstes wartet die CPU darau dass im zustandregister des 4:23 festplattenkontrollers zu lesen ist dass er bereit ist für die Aufnahme des nächsten steuerbefehls dann sendet die CPU den ersten 4:32 Lesebefehl und der Festplattencontroller holt von der Festplatte den angeforderten Datenwert da die Festplatte prinzipiell 4:42 sehr langsam arbeitet muss die CPU jetzt warten und warten und warten der Festplattencontroller zeigt durch einen Interrupt an dass das Datenwort jetzt im 4:53 datenregister verfügbar ist der interupt Controller meldet diesen Interrupt der CPU und die CPU ruft die zugehörige Interrupt behandlungsroutine auf die 5:05 Service Routine liest n das datenregister des festplattencontrollers aus es kann vom Steuerwerk direkt in das speicherdatenregister geschrieben werden 5:14 im speicheradressregister wird die Adresse hinterlegt die im Hauptspeicher die Speicherstelle beschreibt an der das 5:23 Datenwort abgelegt werden soll zusammen mit einem schreibenbefehl wird alles nun an den Hauptspeicher übertragen und das betreffende Datenwort wird im 5:33 Hauptspeicher in der entsprechenden Speicherstelle abgelegt die letzte Handlung der Interrupt behandlungsroutine besteht nun 5:40 noch darin die Bestätigung zum Interrupt Controller zu senden dass dieser Interrupt jetzt abgearbeitet wurde auf gleiche Weise wird nun mit allen 5:50 weiteren Befehlen aus der Datei von der Festplatte Verfahren man kann sich vorstellen dass bei einer entsprechend großen Datei die 5:58 CPU sehr oft in einen wartemodus eintreten muss und erst durch den Interrupt aufgeweckt wird vielleicht hast du aber ja auch schon eine Idee was 6:09 die CPU alternativ tun könnte anstatt einfach nur zu warten und zu warten und zu 6:28 warten