Information Technology Reference
In-Depth Information
sorbit zurück), muss hier äquivalent zu Bild 1.22a verfahren werden: Zuerst wird zur Adresse %l2
und anschließend verzögert zur Adresse %l2 + 4 gesprungen.
1.4.2 Kontextwechsel
Wie bereits erwähnt, ist es möglich, ein Programm zu unterbrechen und später wie-
der fortzusetzen, wenn der als Kontext bezeichnete Zustand nicht verändert wird. Im
konkreten Fall bedeutet dies, dass zum Zeitpunkt einer Unterbrechung der Kontext
des laufenden Programms gesichert und der eines anderen Programms aktiviert wer-
den muss. Der Aufwand hierfür ist von der Unterbrechungsursache abhängig, von
denen im Folgenden die drei wichtigsten beschrieben werden, nämlich die am auf-
wendigsten zu realisierenden Kontextwechsel infolge von Prozesswechseln,
anschließend die Kontextwechsel infolge von Ausnahmeanforderungen und schließ-
lich die Kontextwechsel infolge von Unterprogrammaufrufen.
Kontextwechsel infolge von Prozesswechseln
Falls ein laufendes Programm A unterbrochen werden soll, um ein vollkommen
unabhängiges Programm B auszuführen, muss im Extremfall neben dem Inhalt des
Registerspeichers auch der des Hauptspeichers gesichert werden. Das Programm B
greift nämlich möglicherweise auf sämtliche zur Verfügung stehenden Ressourcen
eines Rechners zu, wodurch der Zustand des unterbrochenen Programms A in nicht
gewollter Weise beeinträchtigt werden würde. Da das Speichern eines vollständigen
Programmkontextes sehr zeitaufwendig ist, werden die jeweils belegten Speicherbe-
reiche möglichst gleichzeitig im Hauptspeicher gehalten. Die Unabhängigkeit der
beteiligten Programme erfordert hierbei, dass die für Zugriffe verwendeten Adres-
sen sich nicht überschneiden, was erreicht wird, indem die in den Programmen
benutzten sog. virtuellen Adressen mit Hilfe einer Speicherverwaltungseinheit auf
disjunkte Bereiche des Hauptspeichers umgelenkt werden (siehe Abschnitt 2.3.2).
Natürlich ist es möglich, die Verarbeitung des unterbrochenen Programms A durch
erneutes Unterbrechen des neu gestarteten Programms B fortzusetzen. Die beiden
Programme können auf diese Weise stückweise alternierend ausgeführt werden, was
bei ausreichend schneller Umschaltung dem Benutzer den Eindruck der Parallelver-
arbeitung vermittelt. Die hier angedeutete sog. Quasiparallelität ist nicht auf zwei
Programme beschränkt, sondern kann auf eine beliebige Anzahl erweitert werden.
Dies wird z.B. in Multiprozessbetriebssystemen ( multitasking operating systems )
genutzt, in denen die Anzahl der gleichzeitig ausführbaren Programme (in diesem
Zusammenhang auch als Prozess bezeichnet) unabhängig von der Anzahl der real
verfügbaren Prozessoren ist.
Auslöser des Hin-und-Her-Wechselns zwischen den quasiparallel laufenden Pro-
grammen ist entweder ein explizit codierter Aufruf oder ein asynchrones, meist
zyklisch wiederkehrendes Signal. Ersteres hat den Vorteil der einfachen Realisier-
barkeit, jedoch den Nachteil, dass die gleichzeitig auszuführenden Programme
jeweils freiwillig Rechenzeit abgeben müssen. Ein entsprechendes Multiprozessbe-
triebssystem wird daher auch als kooperativ bezeichnet ( cooperative multitasking ).
 
Search WWH ::




Custom Search