Aufgaben eines Betriebssystems

Betriebssyteme heute:

DOS, WINDOWS, WINDOWS CE, MAC, PALM, LINUX

Schichtenmodell

Programm

Die Lösung einer Programmieraufgabe (=Algorithmus) wird in Form eines Programms realisiert. Teillösungen werden dabei als Prozeduren (Unterprogramme) formuliert, welche nach Beendigung ihrer Arbeit zum aufrufenden übergeordneten Programm zurückkehren. Damit die Leistungen des Betriebssystemkerns problemlos in Anwenderlösungen eingebunden werden können, sind sie ebenfalls als Prozeduren realisiert. Ein Programm (Prozedur, Unterprogramm) besteht aus:

Befehlen (Codebereich, Textbereich)

Programmdaten (Datenbereich)

Beide Komponenten sind problemorientiert.

Wird ein Programm (Prozedur) unter der Kontrolle eines Betriebssystems (genauer gesagt unter der Kontrolle eines Betriebssystemkerns) ausgeführt, so wird dieser Ablauf als Prozess (engl. Task) bezeichnet. Diese Betrachtungsweise macht es möglich, dass mehrere Programme gleichzeitig als Prozesse parallel auf einem sequentiell arbeitenden Rechnersystem (unabhängig von der realen Anzahl Prozessoren) ablaufen können.

 

Als Sonderfall gilt die Ausführung mehrerer Prozesse auf einem Prozessor. Bei der Ausführung von Prozessen entstehen Daten, die durch den Betriebssystemkern verwaltet werden. Diese werden Statusinformationen genannt und sind systemabhängig, z. B. Registerinhalte. Als weitere Komponente wird beim Ablauf eines Programms ein Kellerspeicher (Stack) aufgebaut.

Prozessmodell

Es können sich mehrere Prozesse gleichzeitig im Speicher befinden, es ist jedoch immer nur ein Prozess aktiv, d.h. er wird von der Hardware bearbeitet

Dualprozessoren: --> parallel falls die Zahl der Prozessoren größer oder gleich der Zahl der Prozesse ist, quasiparallel im anderen Fall.

Ein Teil des BS, der Scheduler, wählt einen Prozess aus, teilt ihm die CPU zu und lässt ihn eine gewisse Zeit rechnen.
Moderne Rechner können mehrere Dinge gleichzeitig ausführen. Unterstützt durch die Hardware lassen sich einzelne Aufgaben des BS parallelisieren. z. B. das Ausgeben einer Datei auf dem Drucker, während das Programm weiterläuft (auch im Einprogrammbetrieb!). Es gibt also in der Regel parallele Arbeit von CPU und E/A-Geräten.
Im Mehrprogrammbetrieb wird jedem Programm einen kurzen Zeitabschnitt (Zeitscheibe) lang die CPU zugeteilt, wodurch die Benutzer die Illusion erhalten, alle Programme würden gleichzeitig bearbeitet --> Pseudoparallelität. Damit lassen sich folgende Eigenschaften von Prozessen definieren:

Jeder Prozess besitzt seine eigene Prozessumgebung (Instanz).

Jeder Prozess kann seinerseits andere Prozesse erzeugen und - mit Hilfe der BS-Kerns - mit anderen Prozessen kommunizieren.

Prozesse können voneinander abhängen --> kooperierende Prozesse. Derartige Prozesse müssen sich untereinander synchronisieren.

Prozessen kann eine Priorität zugeordnet werden, aus der sich die Reihenfolge ergibt, mit der die Prozesse der CPU zugeteilt werden.

Die Speicherung der Prozesszustände erfolgt in einer vom BS geführten Prozesstabelle.

Scheduling (Koordination von konkurrenten Prozessen -> Zuteilungsstrategie)

 

FIFO

Elemente werden in genau der Reihenfolge abgerufen, in der sie zuvor abgelegt wurden. First In - First Out.. Die Warteschlange (engl. Queue ) beruht auf dem FIFO Prinzip. Nach dem FIFO-Prinzip organisierte Datenverbindungen nennt man Pipes. Siehe auch: Warteschlange. Andere Bezeichnung: First Come First Served

LIFO bzw. FILO

Last In – First Out (LIFO) (engl. "zuletzt herein – zuerst hinaus") (auch als FILO bezeichnet) Anders: Last Come First Served

SJN

Shortest Job First

HRN

Highest Response Ratio Next

Welche Zuteilungsstrategie sollte man wählen, wenn Bedienzeiten vorher bekannt sind und man die mittlere Antwortzeit minimieren will? -> SJN (aber Aufträge mit langen Bedienzeiten 'verhungern'.

Welche Ziele verfolgt man mit einer Prozessor-Zuteilungsstrategie?
- Fairness - jeder kommt mal dran
- Effizienz - Prozessor ist ausgelastet
- Antwortzeit - Antwortzeiten für interaktive Benutzer werden minimiert
- Verweilzeit Wartezeit für die Ausgabe von Stapelaufträgen wird minimiert
- Durchsatz wird maximiert

Deadlock - Systemverklemmung durch Prozesse, die mehrere Betriebsmittel mit jeweils exklusivem Zugriff benötigen.
Beseitigung eines Deadlocks durch Abbruch der beteiligten Prozesse und Freigabe der belegten Betriebsmittel (zB. Festplatte, RAM, Drucker).

Speicher

Der Arbeitsspeicher des Computers ist ein durch Adressen (Colums und Rows, d.h. Spalten und Zeilen) strukturierter Bereich, der Binärwörter fester Größe aufnehmen kann. Der Arbeitsspeicher moderner Computer ist flüchtig , d. h. dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen – der Hauptgrund hierfür liegt in den verwendeten DRAMs . Verfügbare Alternativen wie etwa MRAM sind allerdings für die Verwendung als Arbeitsspeicher noch zu langsam.

Die häufigste Bauform für den Einsatz in Computern ist das Speichermodul . Es ist zwischen verschiedenen RAM-Typen zu unterscheiden. Während bis Mitte der 1990er vorwiegend SIMMs mit FPM- oder EDO-RAM üblich waren, kommen in heutigen Computern in erster Linie DIMMs mit z. B. SDR -, DDR - oder DDR2-SDRAMs zum Einsatz.

Um den physischen Arbeitsspeicher zu erweitern, können moderne Betriebssysteme zusätzlichen (virtuellen) Arbeitsspeicher auf Massenspeichern allokieren. Diesen Speicher nennt man auch Swapspeicher. (Swap-Datei)