A Glossar

ABI:
,,Application Binary Interface''. Beschreibt eine Binärschnittstelle, über die Applikationen Systemdienste in Anspruch nehmen können. Vgl. API.

Adreßraum:
Menge gültiger Speicheradressen, auf die ein Programm zugreifen kann.

Aktivität:
Im Kontext dieser Arbeit ist eine Aktivität ein Thread, der an einen bestimmten Kontext geknüpft ist.

API:
,,Application Programming Interface''. Beschreibt eine Programmierschnittstelle (z.B. eine Menge von C-Funktionen), über die Applikationen Systemdienste in Anspruch nehmen können. Vgl. ABI.

Applikation:
Anwendungsprogramm.

Ausnahme:
(engl. ,,Exception'') Eine Bedingung, die den Prozessor veranlaßt, den aktuellen Kontext zu verlassen und eine Ausnahmebehandlung auszuführen, wie zum Beispiel ein Seitenfehler oder eine Division durch Null.

In Linux werden Systemrufe durch den Befehl ,,int 80'' ausgeführt, der ebenfalls eine Ausnahme auslöst.

BIOS32:
Ein spezielles ABI zur Kommunikation mit der Firmware eines Gerätes.

Bottom Half:
Siehe Interrupt.

Condition Variable:
(auch ,,Bedingungsvariable'') Eine Datenstruktur, die eine bestimmte Bedingung symbolisiert. Gültige Operationen über dieser Datenstruktur sind das Warten auf eine Bedingung und das Signalisieren, daß eine Bedingung eingetreten ist.

Copy-In/Out:
Kopieren von Daten aus dem Adreßraum einer Nutzer-Aktivität in den Kern-Adreßraum und umgekehrt.

CPU:
(,,Central Processing Unit'') Mikroprozessor.

Demand Paging:
Auf einem externen Speichermedium (z.B. Festplatte) abgelegte Code- und Datenseiten eines Programms werden beim Programmstart nicht sofort in den Hauptspeicher geladen, sondern erst bei auftretenden Seitenfehlern in den Adreßraum eingeblendet.

Flexpage:
L4-Einheit zur Speichermanipulation. Eine Menge von Seiten läßt sich unter L4 zu Flexpages zusammenfassen; so ist es möglich, gleich mehrere Seiten in den Adreßraum eines Threads einzublenden, in dem ein Seitenfehler auftrat. [15]

Interrupt:
(auch ,,Unterbrechung'') Eine von einem externen Gerät angezeigte Bedingung, die zur Unterbrechung des aktuellen Kontexts und zur Abarbeitung einer Interrupt-Behandlungsroutine führt.

Interrupt-Behandlungsroutinen sind in Linux zweigeteilt: Die Top Half wird sofort nach Eintreffen des Interrupts ausgeführt; die Bottom Half wird erst ausgeführt, wenn keine weiteren Top Halves mehr auszuführen sind. (Vgl. Abschnitt [hier].)

IPC:
(,,Inter Process Communication''; auch ,,Interprozeßkommunikation'') Ein L4-Mechanismus, der die Kommunikation zweier Threads durch Nachrichtenaustausch gestattet.

Kontext:
Aktueller Zustand einer Aktivität. Dazu gehört der aktuelle Adreßraum, der Prozessorzustand (Register) und in Linux einige Kernvariablen wie current.

Lock:
Allgemein eine Datenstruktur, mit der man einen wechselseitigen Ausschluß erreichen kann.

Mutex:
(von ,,mutual exclusion'') Eine spezielle Datenstruktur, die einen wechselseitigen Ausschluß mit einer binären Semaphor realisiert. Kann man die Semaphor nicht sofort erhalten, muß man sich suspendieren und darauf warten, vom Besitzer der Semaphor aufgeweckt zu werden.

Pager:
Allgemein ein Mechanismus, der Adreßräume bereitstellt und verwaltet. In L4 wird diese Aufgabe von einem Thread wahrgenommen, der vom Mikrokern via IPC über Seitenfehler in zugeordneten Threads informiert wird und diese durch Antworten mit Flexpages auflösen kann.

PIC:
(,,Programmable Interrupt Controller'') Programmierbarer Interrupt-Baustein, der in jedem PC zu finden ist.

Präemption:
Unterbrechung eines Threads, weil seine Zeitscheibe abgelaufen ist.

Preemption Handler:
Ein L4-Mechanismus, der es gestattet, auf Nutzer-Ebene zu schedulen: Der Preemption Handler eines Threads wird via IPC über abgelaufene Zeitscheiben informiert und der Thread wird so lange blockiert, bis der Preemption Handler mit einer Nachricht antwortet.

Scheduling:
Zuteilung der Ressource ,,Rechnerzeit'' an Threads. S.a. Preemption Handler.

Seite:
Kleinste Einheit zur Manipulation eines Adreßraums.

Semaphor:
Eine Zähler, mit dem sich ein wechselseitiger Ausschluß realisieren läßt, der einen kritischen Abschnitt schützt. Solange man den Zähler noch inkrementieren kann, so daß er eine bestimmte Maximalzahl nicht überschreitet, darf man den kritischen Abschnitt betreten, ansonsten muß man warten.

Ist der Maximalwert = 1, so spricht man von einem binären Semaphor, und derjenige, der den Zähler zuletzt inkrementiert hat, ,,besitzt'' das Semaphor.

Seitentabelle:
Datenstruktur, die Adreßräume aufeinander abbildet. Wird von der Intel-CPU verwendet, um den virtuellen Adreßraum auf den physischen Speicher (RAM) abzubilden.

Seitenfehler:
Unerlaubter Zugriff auf eine Speicheradresse: Entweder, an der Adresse ist keine Seite eingeblendet, oder auf eine nur lesbar eingeblendete Seite wurde schreibend zugegriffen. S.a. Pager.

SMP:
,,Symmetric Multi-Processing''. Betriebssystem-Methode, um Maschinen mit mehr als einer CPU zu verwalten.

Systemruf:
Mechanismus, um einen Dienst eines Betriebssystems aufzurufen. Sowohl L4 als auch Linux haben solche Mechanismen. S.a. Ausnahme.

Task:
In L4 ein Adreßraum, in dem ein oder mehrere Threads laufen können.

Thread:
In L4 ein Kontrollfluß in einer Task.

Top Half:
Siehe Interrupt.

Zeitscheibe:
Rechenzeit-Einheit, die einem Thread zugeteilt wurde.


Michael Hohmuth
29. August 1996