Multitasking Multi-User- Betriebssysteme haben sehr mächtige Architekturen . Sie sollen zahlreichen Benutzern, die sich über das Netzwerk an einen zentralen Server oder eine Workstation erhalten. Der Betriebssystem-Kernel - der Kern oder Zentrum, um das die äußere Funktionalität des OS ist so vielschichtig - im Gespräch mit dem Bare-bones Hardware über Gerätetreiber und Software über seine Prozess - Steuerung Subsystem. Der Kernel übernimmt die Kontrolle über die Ressourcenallokation und Prozessplanung . Er treibt die Prozesse in und aus der aktiven Modi aufwacht schlafen Prozesse , Ringe Alarme und sendet Signale . Prozess
Jede ausführbare Stück Code, der im Systemspeicher laden kann und Aktionen ist ein Prozess. Es gibt System-Prozesse und Benutzer -Prozesse . Ein Prozess Gabeln oder startet einen untergeordneten Prozess . Abgesehen von der ursprünglichen OS Prozess, genannt Prozess 0 in Unix, werden alle Prozesse auf diese Weise erstellt und haben daher einen übergeordneten Prozess . Ein Prozess wird der CPU nur Aufmerksamkeit , wenn der Kernel erlaubt.
Benutzer-und Kernel -Modi
Verfahren läuft entweder im User-Modus oder Kernel-Modus und unterhält zwei getrennten Stapeln beim Umschalten zwischen den Modi . Einige Betriebssysteme können mehr Modi . Wenn Sie ein Programm schreiben, bauen und ausführen, ist der laufende Prozess im User-Modus . Es tritt in Kernel-Modus , wenn es ein System Anruf tätigt oder empfängt ein Interrupt-Signal . Das Signal kann von einem anderen Benutzer oder Prozess den Kernel selbst kommen. Sobald ein Prozess im Kernel-Modus , eskaliert der Kernel seine Priorität in der Planung Regelung . Es ist auch nicht präjudizieren den Kernel - Modus-Prozess , bis sie die kritische System arbeiten, nach dem es wieder im User-Modus beendet . Ein Prozess im User-Mode kann nur Zugriff auf seine eigenen Anweisungen und Daten oder Prozess Raum . Der Kernel - Modus-Prozess zugreifen können Adressen im Kernel. Ein gutes Beispiel ist ein Stück Assembler -Code, der einen Sprung auf einen Interrupt macht .
System- Calls
Wie bereits erwähnt, ist es das System Call , egal, wer es macht und wie , die einen Prozess bringt im Kernel-Modus . Ein System Call ist ein Aufruf einer Low-Level- Funktion des Betriebssystems , die manipuliert und greift auf Low-Level- Gerät Entitäten und reservierte Bereiche des Speichers. Es ist praktisch OS Code. Funktionen , die auf OS -Geräte wie Dateien, Pipes und Semaphoren sind Systemaufrufe . Öffnen Sie (), close (), read (), write () , lock () , unlock ( ) , init () , fork () , sleep () , wakeup () und signal () sind System- Anrufe. Sie kontrollieren OS Ressourcen und Prozesse ebenso wie der Kernel würde . Signal-und Interrupt-Verarbeitung ist auch der Bereich des Kernels und nicht der Benutzer-Prozess . Im Kernel-Modus , wird die Steuerung an das System anrufen , dass dabei Aufgaben im System , oder die Arbeit, die der Kernel sonst tun gegeben . Es ist der Code, spezielle Speicher zugreift und registriert für OS Aufgaben vorbehalten.
Interrupts und privilegierte Befehle
Einige Maschinenbefehle sind privilegiert und Ergebnis in Fehler, wenn im User-Modus ausgeführt . Zum Beispiel sollte ein Prozess im User-Modus nicht erlaubt , den Prozess -Status-Register zu ändern. Register und privilegierten Kernel-Speicher unterstützen den Kernel in seinem Prozess die Kontrolle der Arbeit . Wenn jemand kommt und verändert sie , können die Ergebnisse unvorhersehbar sein . Wenn ein anderer Prozess oder die Kernel unterbricht einen Benutzer-Prozess , der Kernel den aktuellen Stand des Verfahrens auf Stapel speichert , bestimmt die Ursache der Unterbrechung , die Interrupt- Service und bringt die Kontrolle zurück zu dem, was der Prozess tat. Der Kernel -Stack knallt den Prozess , so dass die Benutzer-Prozess wieder aufgenommen werden kann , wo sie aufgehört haben.