Funktionen des Betriebssystems, die in den Kernel und User Modi verwendet werden

July 2

Multitasking-Mehrbenutzer-Betriebssysteme haben sehr leistungsfähige Architekturen. Sie werden voraussichtlich zahlreiche Benutzer über das Netzwerk auf einem zentralen Server oder einer Arbeitsstation anmelden pflegen. Der Betriebssystem-Kernel--der Kern oder die Mitte, um den sich die äußere Funktionalität des Betriebssystems geschichtet ist--spricht die nackte Knochen-Hardware über Gerätetreiber und Software über die Prozesssteuerung-Subsystem. Der Kernel übernimmt die Steuerung der Ressourcenzuteilung und Prozessplanung. Es treibt die Prozesse innerhalb und außerhalb der aktiven Modi, schlafen Prozesse wacht, klingelt der Wecker und sendet Signale.

Prozess

Alle ausführbaren Codeabschnitt, der Laden im Systemspeicher und Aktionen können der ist ein Prozess. Es gibt Systemprozesse und Benutzerprozesse. Ein Prozess Federgabeln oder spawnt einen untergeordneter Prozess. Ausser dem original OS-Verfahren, Prozess 0 unter Unix bezeichnet alle Prozesse werden auf diese Weise erstellt und daher einen übergeordneten Prozess. Ein Prozess erhält die CPU Aufmerksamkeit nur dann, wenn der Kernel es ermöglicht.

Benutzer und Kernel-Modus

Ein Prozess wird im Benutzermodus oder im Kernelmodus ausgeführt und unterhält zwei separate Stapel beim Wechseln zwischen den Modi. Einige Betriebssysteme können weitere Modi haben. Wenn Sie ein Programm schreiben, erstellen Sie sie und führen Sie es, ist der laufende Prozess im Benutzermodus. Kernelmodus wechselt, wenn es macht ein System aufrufen oder von ihr ein Interruptsignal. Das Signal kann von einem anderen Benutzerprozess oder den Kernel selbst stammen. Sobald ein Prozess im Kernelmodus ist, eskaliert der Kernel die Priorität in der Terminplanung Regelung. Es auch nicht den Kernel-Modus-Prozess zuvorzukommen, bis es im kritischen System funktionieren, beendet hat, nach denen es wieder im Benutzermodus befindet. Ein Prozess im Benutzermodus kann nur eigene Anweisungen und Daten oder Prozess Speicherplatz zugreifen. Der Kernel-Modus-Prozess kann Adressen im Kernel zugreifen. Ein gutes Beispiel ist ein Stück Assembler-Code, das macht einen Sprung auf einen Interrupt.

Systemaufrufe

Wie bereits erwähnt, ist es den Systemaufruf, egal wer es macht und wie, das bringt einen Prozess im Kernel-Modus. Ein Systemaufruf ist ein Aufruf einer Low-Level Betriebssystem-Funktion, die zugreift und bearbeitet von Low-Level-Gerät Entitäten und reservierte Bereiche des Arbeitsspeichers. Es ist praktisch OS Code. Funktionen, die auf OS-Geräten wie Dateien, sind Rohre und Semaphoren Systemaufrufe. Open(), close, read(), write(), lock(), unlock(), init(), fork(), sleep(), wakeup() und Signalhandler sind Systemaufrufe. Sie steuern OS Ressourcen und Prozesse, wie der Kernel. Signal und Interruptverarbeitung ist auch den Bereich des Kernels und nicht der Benutzerprozess. Im Kernel-Modus erhält das Steuerelement den Systemaufruf, der Systemaufgaben tut oder der Arbeit, die der Kernel sonst tun würde. Code, speziellen Speicher zugreift und registriert für OS Aufgaben reserviert, ist.

Interrupts und privilegierte Anweisungen

Einige Maschinenanweisungen sind privilegiert und Fehler führen, wenn im Benutzermodus ausgeführt. Beispielsweise ein Prozess im Benutzermodus darf nicht im Prozess-Status-Register zu ändern. Register und privilegierten Kernel-Speicher unterstützen den Kernel in der Prozess-Kontrolle-Arbeit. Wenn jemand kommt und sie ändert, können die Ergebnisse nicht vorhersehbar sein. Wenn ein anderer Prozess oder den Kernel einen Benutzerprozess unterbricht, den Kernel speichert den aktuellen Zustand des Prozesses auf Stapel, bestimmt die Ursache für den Interrupt, den Interrupt Service und bringt Kontrolle zurück zu, was der Prozess machte. Der Kernel knallt den Prozess-Stack damit den Prozess des Benutzers wieder kann, wo es aufgehört.