Einführung in die Betriebssysteme

Wir brauchen ein Betriebssystem! Nur Zusammenspiel von Hard- und Software ergibt am Ende ein Hochleistungssystem, welches gleichzeitig flexibel und bedienbar ist. Ein Betriebssystem ist ein Programm, das dem Benutzer und Anwendungsprogrammen elementare Dienste bereitstellt. Das Betriebssystem steuert und überwacht die Abwicklung von Programmen und regelt den Betrieb des Rechnersystems.

Zentrale Aufgabe eines BS

Die zentrale Aufgabe eines Betriebssystems ist die Betriebsmittelverwaltung.

Zwischen Benutzer und Hardware

 

image-1660719857485.png

Wichtige Fachbegriffe

Fachbegriff Bedeutung
Anwendungsprogramm löst ein/mehrere Probleme, die Benutzer stellt (Textverarbeitung / Client / Browser)
Systemprogramm Computerprogramm, welches der Verwaltung des Betriebs eines Computers dient
Betriebssystem

stellt Dienste; steuert Ablauf von Programmen; regelt den Rechnersystembetrieb. 

Betriebsmittel Hardware- oder Software-Ressource.
Hardware-Ressource einzelne Hardware-Komponente des Rechners (CPU / RAM / Controller)
Software-Ressource Prozess oder Datei auf einem beliebigen Datenträger
Betriebsmittel Prozess Programmtext, Hauptspeicherdaten (Stack, Heap) und auf CPU (Registerinhalte).
Betriebsmittel Datei Programmdatei oder Datendatei

Entziehbares Betriebsmittel

Betriebsmittel, das dem Prozess ohne negative Folgen entzogen könnte (z.B: CPU)

Nicht entziehbares Betriebsmittel

Betriebsmittel, das Prozess so lange zur Verfügung steht, wie dieser es benötigt.

exklusiv nutzbaren Betriebsmittel

zu beliebigen Zeitpunkt nur maximal einem Prozess zugeordnet (z.B: Drucker)

gemeinsam nutzbar Betriebsmittel

quasi-gleichzeitig von mehreren Prozessen genutzt werden kann (z.B: Festplatte)

Betriebsmittel / Betriebssystemarten

Ein Programm kann mehrfach gestartet werden, somit können aus einem Programm so mehrere Prozesse resultieren!

Jeder Prozess besitzt eigene Daten, auf die nur er Zugriff hat und mehrere Prozesse müssen sich auf der CPU abwechseln

Prozesse benötigen während ihrer Abarbeitung verschiedene Betriebsmittel, um alle anfallenden Aufgaben erledigen zu können. Damit sind jedem gestarteten Prozess eine Menge von Betriebsmitteln zugewiesen.

→ Ein Prozess benötigt (mindestens) die Betriebsmittel Festplatteausführbare Datei X sowie RAM, um aus der Datei X auf der Festplatte in den Arbeitsspeicher geladen zu werden.
→ Ein Prozess benötigt das Betriebsmittel CPU um befehlsweise abgearbeitet zu werden.
→ Ein Prozess benötigt das Betriebsmittel Grafikkarte um eine Ausgabe auf dem Bildschirm zu erzeugen.

→ sind nicht alle Betriebsmittel während der Laufzeit mit dem Prozess verbunden
→ effizienter, wenn Betriebsmittel nur dann angefordert werden, wenn sie tatsächlich benötigt werden

Betriebsmittel sind Prozessen zugeordnet

Betriebsmittel für Prozess wird benötigt, um ...

Festplatte, ausführbare Datei X sowie RAM

aus der Datei X auf der Festplatte in den Arbeitsspeicher geladen zu werden

CPU 

befehlsweise abgearbeitet zu werden

Grafikkarte 

eine Ausgabe auf dem Bildschirm zu erzeugen

Betriebssystemarten

Betriebssysteme für  Beschreibung
Großrechner (z/OS von IBM)
  • verarbeitet schnell viele Anfragen mit hoher E/A-Rate und Speicherkapazität
  • im Stapelbetrieb (Batch-Jobs) oder sind transaktionsorientiert
Server (Unix/Linux)
  • werden über Netzwerk von verschiedenen Clients angesprochen
  • Anwender an den Clients erwarten schnelle Reaktionszeit
  • Einsatzzwecke liegen beispielsweise bei: File-Server / Print-Server 
Laptops/Personal Computer (Windows 10)
  • Anwender tätigt eine Eingabe und Betriebssystem reagiert darauf.

Batch-Job zum Multitasking

Batch-Jobs
→ In den Anfangsjahren der Rechnerentwicklung wurden auszuführende Programme als sogenannte Batch-Jobs verarbeitet
→ Jeder Prozess (Batch-Job) wurde nach dem Start komplett bis zu seinem Ende bearbeitet,
→ erst im Anschluß startete der nächste Prozess (Batch-Job) und belegte die CPU ebenfalls bis zu seiner Terminierung.

Multitasking
mehrere Prozesse können sich bei ihrer Abarbeitung auf der CPU abwechseln
→ Diese geänderte Vorgehensweise markiert einen gewaltigen Meilenstein in der Informatik

Abarbeitung von Befehlen auf CPU

 

Kernel-Mode

  • Arbeitet CPU Kernel-Mode, ist jeder Befehl zur Ausführung zugelassen
  • kann auf Speicherbereiche für Daten- und Programmtext und auf Betriebsmittel zugreifen
  • Durch ein Steuer- oder Kontrollregister auf der CPU wird der Kernel-Mode angezeigt.
  • Betriebssystem arbeitet im Kernel-Mode 

User-Mode

  • Arbeitet CPU im User-Mode, ist nur eingeschränkter Befehlssatz zugelassen
  • nicht alle Befehle erlaubt, kann nicht auf alle Speicherbereiche und Betriebsmittel zugreifen
  • Durch ein Steuer- oder Kontrollregister auf der CPU wird der User-Mode angezeigt.
  • Anwendungsprogramme arbeiten im User-Mode

Unter einem Systemaufruf versteht man den von einem im User-Mode ablaufenden Prozess getätigten Aufruf einer vom Betriebssystem zur Verfügung gestellten Funktion, welche nur im Kernel-Mode ausgeführt werden kann.


Beispiel: Ein Anwendungsprogramm möchte auf eine Datei zugreifen.

Systemaufruf durch Programmierer

import java.io.FileWriter;
import java.io.IOException;

public class Beispiel_Systemaufrufe {
	public static void main(String[] args) {
    	FileWriter fw;
    	try {   // Hier folgen drei Systemaufrufe: Anwenwendung wird angehalten, nach Überprüfung sendet BS Befehle richtung Festplattencontroler 
            	fw = new FileWriter("hallo.txt"); // Datei wird zum Schreiben geöffnet
	            fw.write("Hallo Systemaufruf!"); // Hallo Systemaufruf! wird in geöffnete Datei geschrieben
    	        fw.close(); //Datei wird wieder geschlossen
    	} catch (IOException e) { // BS sorgt dafür, dass Fehlermeldung generiert wird 
        	System.out.println("Es ist ein Fehler aufgetreten: \r\n" + e.toString()
    	    );
    	} // CPU von Kernelmode wieder auf Usermode, Programm läuft weiter
	}
}

Der Anwender muss über Systemaufrufe nichts wissen, er nutzt nur Methoden, alles weitere geschieht im Hintergrund.