next up previous contents
Nächste Seite: Blocking Aufwärts: Ablaufsteuerung Vorherige Seite: Ablaufsteuerung   Inhalt

Non-blocking

Ein mögliches Design für die Kernumgebung ist es, allen Nutzerprozessen nur einen Kernstack zur Verfügung zu stellen. Tritt also der Fall ein, daß mehrere Prozesse einen Systemruf durchführen, kann immer nur jeweils ein Prozeß den Kern betreten (und auf Kerndaten zugreifen bzw. privilegierte Instruktionen ausführen). Alle weiteren ,,Anwärter`` blockieren im User Mode, d.h. ihre Ausführung wird solange unterbrochen bis der Kerneintritt erlaubt wird. Die Bezeichnung non-blocking begründet sich auf der Tatsache, daß ein Prozeßkontext, der im Kern blockiert, z.B. weil eine Ressource nicht verfügbar ist, den gesamten Status verliert und den Systemruf neu starten muß.

Eine solche Kernumgebung ist nur in Systemen sinnvoll, die das Blockieren im Kern allgemein vermeiden wollen und den Anspruch haben, Systemrufe stets vollständig durchzuführen. Ein Beispiel ist der Exokernel.



Christian Helmuth 2001-12-11