Information Technology Reference
In-Depth Information
Moderne Betriebssysteme verwenden jedoch meist die zweite Technik, d.h. die
durch ein Signal ausgelöste, zeitscheibengesteuerte Multiprozessverarbeitung
( preemptive multitasking ). Zwar erfordert dies einen in Hardware realisierten Zeit-
geber (timer), verlangt aber nicht die explizite Mitwirkung der laufenden Pro-
gramme.
Kontextwechsel infolge von Ausnahmeanforderungen
Unabhängig davon, welche Ursache für das Umschalten von Programm zu Pro-
gramm verantwortlich ist, wird i.Allg. zuerst ein Ausnahmeprogramm aufgerufen,
und zwar entweder synchron durch einen entsprechenden Befehl oder asynchron
durch ein Signal. Der darüber realisierte Kontextwechsel wird in drei Schritten bear-
beitet: Im ersten Schritt werden mit der Ausnahmeanforderung der Inhalt des
Befehlszählers und einige Statusinformationen gespeichert (siehe auch Abschnitt
1.4.1), im zweiten Schritt werden die vom jeweils unterbrochenen Programm sicht-
baren Prozessorregister gesichert und im dritten Schritt wird die Speicherverwal-
tungseinheit veranlasst, die für das zu aktivierende Programm sichtbaren Bereiche
des Daten- und Befehlsspeichers zu aktivieren. Während die erforderlichen bzw.
durchgeführten Aktionen der ersten beiden Schritte durch das verwendete Program-
miermodell beeinflusst werden, gilt dies für den letzten Schritt nicht, so dass ein
Prozesswechsel aus Sicht des Prozessors sich nicht anders darstellt als der Aufruf
eines Ausnahmeprogramms.
Die Geschwindigkeit, mit der ein Kontextwechsel bei einer Ausnahmeanforderung
bearbeitet wird, ist wesentlich von der Geschwindigkeit abhängig, mit der sich die
jeweils sichtbaren Prozessorregister sichern lassen. Sie kann z.B. dadurch verbessert
werden, dass ein spezieller Befehl vorgesehen wird, mit dem sich sämtliche Registe-
rinhalte in den Hauptspeicher übertragen lassen. Ein solcher Blocktransfer kann
schneller bearbeitet werden als Einzelzugriffe, die zudem - in mehreren Befehlen
codiert - einen größeren Befehlsspeicherbedarf aufweisen.
Eine sehr effiziente Methode, die sichtbaren Registerinhalte bei einer Ausnahmean-
forderung zu sichern, besteht darin, den Registerspeicher in Bänken zu organisieren
und das unterbrechende Ausnahmeprogramm auf einer anderen Registerbank als
das unterbrochene Programm arbeiten zu lassen. Ein in dieser Weise organisierter
Registerspeicher ist in Bild 1.23a angedeutet. Die aktuell ausgeführten Befehle
beziehen sich mit den darin codierten Registeradressen jeweils auf die Registerbank,
die über das Spezialregister „Bank-Select“ ausgewählt ist. Bei einer Ausnahmebe-
handlung muss dessen Inhalt daher gesichert und anschließend modifiziert werden,
was i.Allg. sehr schnell oft in einem einzelnen Takt möglich ist.
Natürlich muss dabei gewährleistet sein, dass die zu aktivierende Registerbank nicht
bereits mit dem Kontext eines anderen Ausnahmeprogramms belegt ist. Das Verfah-
ren hat daher seine Grenzen, wenn die Anzahl der Registerbänke kleiner ist als die
Anzahl der ineinander geschachtelten Ausnahmeanforderungen oder, falls die Kon-
texte unterschiedlicher Programme in den Registerbänken gespeichert werden, als
die Anzahl der quasiparallel ausgeführten Programme, was in Multiprozessanwen-
Search WWH ::




Custom Search