Seitenleiste

Infodatenbank

Tutorial

Community

Aufgaben des Kernels

Der Kernel übernimmt in einem Betriebssystem verschiedenste Aufgaben, abhängig von seinem Zweck und von seinem Aufbau. Erfüllt der Kernel seine Aufgaben nicht zufriedenstellend, dann wird auch kein Programm richtig funktionieren.

Verwaltung des Speichers

Der Kernel muss sich darum kümmern, welche Bereich des phys. Speichers benutzt werden und welche nicht. Er muss sich außerdem (wenn er Paging unterstützt) um die Verwaltung der virtuellen Adressräume der einzelnen Prozesse/Anwendungen kümmern.

Weiters muss der Kernel dafür sorgen, dass im phys. Speicher Platz gemacht wird, wenn dieser droht voll zu werden. Der Kernel muss dann feststellen, welche Teile des Speichers im Moment nicht gebraucht werden und muss diese auf die Festplatte o.ä. Massenspeicher auslagern.

Prozess(or)verwaltung

Es ist die Aufgabe des Kernels, einen Überblick über die gerade laufenden Prozesse zu behalten. Er muss entscheiden, welcher Prozess wichtiger ist und welcher nicht. Er muss blockierende Prozesse erkennen versuchen. Nach diesen Erkenntnissen muss er entscheiden, welcher Prozess für wie lange die CPU, den Prozessor bekommt.

Wartet ein Prozess auf eine Ressource, beispielsweise die Festplatte, so muss sich der Kernel auch darum kümmern, diesen Prozess aus der „normalen Warteschlange“ zu entfernen, bis die Festplatte bereit ist, um die Anforderung des Prozesses zu erfüllen.

Der Kernel muss auch eine Möglichkeit bieten, neue Prozesse hinzuzufügen oder alte, beendete oder abgebrochene Prozesse zu entfernen.

Auch müssen die Prozesse in der Lage sein, miteinander zu kommunizieren, und zwar in einer möglichst einheitlichen Form. Diese Möglichkeit der Interprozesskommunikation muss der Kernel gewährleisten.

Ressourcen- /Hardwareverwaltung

Der Kernel muss sich auch darum kümmern, dass die Ressourcen (Festplatte, CD-ROM, Audioausgang, etc.) gerecht verteilt werden. Und das natürlich nur unter den dazu berechtigten Prozessen. Hat ein Prozess eine Ressource angefordert, dann muss sich der Kernel darum kümmern, dass der Prozess auch Zugriff auf die Ressource bekommt, auch wenn gerade ein anderer Prozess die Ressource belegt. In einem solchen Fall muss der erste Prozess warten (bzw vom Kernel pausiert werden) bis die betreffende Ressource frei für ihn geworden ist.