Was ist ein Betriebssystem?
Es soll vorhandene Hardware verwalten und steuern und Benutzerprogrammen eine einfache Schnittstelle zur Hardware zur Verfügung stellen.
Unter einem Betriebssystem versteht man eine Software, die zusammen mit der Hardware des Computers die Basis zum betrieb bildet und insbesondere die Abarbeitung von Programmen steuert und überwacht.
Nenne Beispiele für Betriebssystene.
Windows (7, 8, 10, 11)
Linux (Suse, Ubuntu)
macOS
(Nenne 4 Teile des Betriebssystems und beispiele dafür.)
Verwaltungsprogramme, z.B. für:
Prozesssystem (Dienste, Anwendungen, …)
Speicherzuteilung (RAM, …)
Belegung externer Speichermedien (Festplatten, …)
Bereitstellung von Geräten (Drucker, …)
Steuerprogramme, z.B. für:
Eingabe von Zeichen über die Tastatur, …
Ausgabe von Zeichen auf dem Monitor, ...
Speicherung von Daten auf der Festplatte, …
Dienstprogramme, z.B. für:
Konfigurieren der Hardware und des Betriebssystems
Anzeige und Bearbeitung von Dateien
Kopieren, sichern und wiederherstellen von Dateien
Bibliotheken und Treiber:
stellen Anwendungsprogrammen Betriebssystemfunktionen zur Verfügung
binden Hardware in das Betriebssystem ein
veranlassen die Hardware zu den gewünschten Aktionen
Was sind die 3 wichtigsten Aufgaben des Betriebssystems?
Abstraktion von Hardware
Bereitstellung von High-Level-Schnittstellen
Verwaltung von Systemressourcen
Nach welchen Merkmalen können Betriebssysteme unterschieden werden?
Single- oder Multitask Systeme
Einzelplatz- oder Mehrplatz-Systeme
proprietär (nur für bestimmte Rechner bzw. Rechnermodelle)
oder allgemein verwendbar
Weitere Merkmale z.B. für verwendung von Desktop oder Server, für Mobile geräte, Multimediasysteme, Steuerungen uvm.
Was versteht man unter der Abstraktion von Hardware?
Bereitstellung von Schnittstellen (einheitliche Sicht auf verschiedene Geräte)
Vereinheitlichung der Speicherverwaltung
Beispielsweise der einheitliche Zugriff auf externe Speichermedien.
Was versteht man unter der Bereitstellung von High-Level-Schnittstellen?
Funktionen, die mehrere (viele) Einzelbefehle kumulieren
Beispiel: Schreiben auf Festplatte: Die interne Struktur ist für das Anwenderprogramm nicht relevant.
Was versteht man unter der Verwaltung von Systemressourcen?
Betriebsmittel (Ressourcen) wie Prozessor, Speicher, Prozesse, Threads müssen zugeordnet werden.
Dabei sind viele verschiedene Anforderungen zu beachten z.B. Realzeitanforderungen, Zugriffsschutz
Mit Hilfe welcher groben Klassifizierung können Betriebssysteme unterschieden werden?
Großrechner-Betriebssystemen
Server-Betriebssystemen
Echtzeit-Betriebssystemen
PC-Betriebssystemen
Betriebssystemen für "Eingebettete Systeme"
Multiprozessor-Betriebssystemen
SmartCard-Betriebssystemen
Großrechner-Betriebssysteme?
Für "Mainframes" im "Rechenzentrum" (wichtigste Rechnerart in den 60er und 70er Jahren). Wesentliches Merkmal ist der Mehrbenutzerbetrieb.
Drei typische Einsatzarten:
Stapelverarbeitung "Batch Processing"
Keine Interaktion mit Anwender.
Beispiel: Erstellung von Gehaltszetteln für eine Organisation.
Transaktionsverarbeitung
Hohe Zahl (tausende pro Sekunde) kleiner Anfragen auf teilweise gemeinsamen Daten.
Beispiel Flugticket-Reservierungssystem.
Dialog-Betrieb im Timesharing-Verfahren
Gleichzeitige Interaktion mit mehreren (hunderten) von Benutzern, die über Datenleitung und Terminal angeschlossen sind.
Beispiele für Großrechner-BS:
IBM MVS, OS/390, z/OS
Siemens BS2000
Server-Betriebssysteme?
Für Rechner (PC, Workstation, Mainframe), die Dienste für andere Rechner in einem Rechnernetz bereitstellen. Wesentliches Merkmal sind viele gleichzeitige Anforderungen an diese Server.
Typische Server-Dienste sind:
Drucker-Service
Datei-Service (Datenspeicherung)
Web-Service (Information und einfache Verarbeitung).
Beispiele für Server-BS:
Unix, GNU/Linux
Windows Server-Familie
Echt-Zeit Betriebssysteme?
Für Rechner, die typischerweise zur Steuerung von technischen Prozessen / Vorgängen in der Außenwelt genutzt werden.
"Zeit" ist ein wesentliches Kriterium
Rechtzeitigkeit bedeutet nicht besonders schnell, sondern Zeitgarantien werden einhalten
Beispiele für RTOS:
QNX, RTLinux, Windows CE
Harte Echtzeitsysteme
Nichteinhalten von Zeitgarantien hat katastrophale Folgen
Beispiel: Motorsteuerung, Airbag-Steuerung
Weiche Echtzeitsysteme
Nichteinhalten von Zeitgarantien kann begrenzt toleriert werden
Beispiel: Multimedia-Abspielsystem
PC-Betriebssysteme?
Schwerpunkt auf Interaktivität der Benutzerschnittstelle
Beispiele für PC-BS:
CP/M, MS-DOS,
Windows (95, 98, ME; NT, 2000, XP, Vista, 7, 8, RT, 10, 11),
Mac OS (macOS), GNU/Linux, div. Unix
Betriebssysteme für eingebettete Systeme (Embedded Systems)?
Rechner steuert Einzelgerät (Fernseher, Mobiltelefon)
oder ist selbst mobiles Gerät (Palmtop, PDA, Smartphone, Tablet).
Häufig Echtzeitanforderungen, (früher oft mit eingeschränkten Ressourcen)
Beispiele für spezialisierte BS:
Windows mobile bzw. phone, Android, Apple iOS, Embedded Linux, PalmOS, Symbian
Multiprozessor-Betriebssysteme?
Leistungssteigerung bei Rechnern durch Vervielfältigung des Prozessors. Heute meist durch Server- oder PC-Betriebssysteme mit abgedeckt. Sonderfall: Massiv-parallele Rechner (Massively Parallel Processing) mit spezialisierten OS
Windows Server 2012 Datacenter Edition unterstützt bis zu 64 Sockel, 640 virtuelle CPUs und bis zu 4 TB RAM.
Red Hat Enterprise Linux ab Version 5 unterstützt laut Hersteller eine unlimitierte Anzahl von Prozessoren.
SmartCard-Betriebssysteme?
Rechner als Chip auf Kreditkarte, Krankenkarte, Reisepass, …
Starke Ressourcen-Einschränkung
wenige spezielle Anforderungen an BS
meist sehr primitive BS, proprietär vom Hersteller eines Gesamtsystems aus Karte und Software (z.B. zur Authentifizierung eines Abos für Pay-TV)
Eckdaten Betriebssystem-Kernel?
Beinhaltet mindestens Prozess- und Speicherorganisation
Alle weiteren Softwarebestandteile des Betriebssystems bauen auf ihm auf
meist in unterster Softwareschicht angesiedelt
besitzt also unbeschränkten Zugriff auf Hardware
Gängige Anforderungen an Systemkern?
Unempfindlichkeit gegen Störungen (Abstürze) in Anwendungen
Offenheit für unterschiedlichste Anwendungen und Erweiterungen
Einsatz auf unterschiedlicher Hardware
Nenne eine Sicherheitsmaßnahme im Umfeld der Betriebssystem-Programmierung.
Privilegierungsebenen
Jede Ebene besitzt verschiedene Privilegien
Kernel-Mode
Alles ist erlaubt
User-Mode
Vieles ist eingeschränkt
Welche Strukturansätze sind für Kernel verbreitet?
Monolithischer Kernel
Mikrokernel (Clien/Server-Modell)
Hybridkernel
Monolithischer Kernel?
Sämtliche Funktionen werden vom Kernel übernommen
Direkt im Betriebssystemkern sind enthalten:
Funktionen zur Speicher- und Prozessverwaltung
Funktionen zur Kommunikation zwischen den Prozessen
Treiber für die Hardwarekomponenten
mögliche weitere Funktionen
Eigenschaften:
schnell, weil Treiber im Kernel integriert sind
Jede Kernel-Funktion kann jede andere sofort aufrufen
fehlerhafte Teile des Kernels führen zum Absturz des ganzen BS
Mikrokernel?
Wichtigsten Funktionen sind als Monolithischer Kernel beinhaltet.
Grundfunktionen zur Synchronisation und Kommunikation
Rest wird “ausgelagert“ / von anderer Partei übernommen
Teile des BS können schnell ausgetauscht werden
Treiber laufen im User Mode
langsamer, weil häufiger Kontextwechsel vorkommen
physischer I/O-Zugriff ist schwierig zu implementieren
Hybridkernel?
Ein Hybridkernel ist ein Kompromiss zwischen einem Mikrokernel und einem monolithischen Kernel. Aus Geschwindigkeitsgründen werden einige Teile in den Kern integriert, der deswegen kein reiner Mikrokernel mehr ist, aber noch nicht genügend Funktionen besitzt, um als monolithischer Kernel zu gelten.
Welche Dinge genau in den Kernel kompiliert und welche als Module hinzugeladen werden, ist aber nicht genau definiert. Häufig werden die komplette Prozesskommunikation und die Gerätetreiber zusätzlich in den Kernel integriert.
Nenne Betriebsarten von Betriebssystemen
(Früher, Heute)
Heutige Betriebsarten
Mehrprogrammbetrieb
Interaktive Verarbeitung
Datenfernverarbeitung, z.B.
Rechnernetze
Datennetze
Terminalserver
Mehrbenutzerbetrieb
Mehrprozessorbetrieb
Sonderformen
Prozessbetrieb
Echtzeitbetrieb
Frühe Betriebsarten
Stapelbetrieb: ein Auftrag nach dem anderen
Ein- und Ausgabe praktisch direkt an der Zentraleinheit
Einbenutzerbetrieb
Stapelverarbeitung?
Stapelverarbeitung oder auch Batchverarbeitung bezeichnet die Bearbeitung von Aufgaben nacheinander (sequentiell).
Interaktive Verarbeitung?
Bei der interaktiven Verarbeitung muss ein Auftrag nicht vollständig definiert sein. Er wird vielmehr in Form von einzelnen Schritten im System abgearbeitet. Dabei findet ständig ein Informationsaustausch zwischen System und Anwender statt.
Ist der Anwender ein Mensch, spricht man von Dialogverarbeitung.
Einprogrammbetrieb?
Es befindet sich immer nur ein Anwenderprogramm im Arbeitsspeicher, das auf alle Betriebsmittel uneingeschränkt zugreifen kann.
Im Einprogrammbetrieb (Singletasking) werden die Benutzeraufträge
nacheinander bearbeitet.
Mehrprogrammbetrieb?
Mehrprogrammbetrieb (Multitasking) bezeichnet die Fähigkeit eines Betriebssystems oder allgemeiner einer Software, mehrere Aufgaben (engl. Tasks) gleichzeitig zur Ausführung anzunehmen.
Verfügt das System über mehrere Ausführungseinheiten (CPUs), kann eine tatsächliche Parallelität erreicht werden.
Singleuser / Multiuser?
Beim Einbenutzerbetrieb steht das Betriebssystem einem einzigen Anwender zur Verfügung.
Moderne Betriebssysteme haben für Administrations- und Reparaturzwecke häufig die Möglichkeit, in einen solchen eingeschränkten Modus versetzt zu werden.
Beim Mehrbenutzerbetrieb werden Arbeitsumgebungen für verschiedene Benutzer bereitgestellt und voneinander abgegrenzt.
Dies erfordert:
die Erkennung verschiedener Nutzer
die Verwaltung deren privater Arbeitsverzeichnisse und persönlicher Voreinstellungen
ein Konzept für das Management von Zugriffsrechten auf gespeicherte Daten und andere Systemressourcen
Was sind Prozessrechner?
Prozessrechner sind Rechner, die durch folgende Parameter
gekennzeichnet werden:
Eingangssignale kommen ausschließlich oder überwiegend von Sensoren
Ausgangssignale werden ausschließlich oder überwiegend über Aktoren ausgegeben
lediglich die Programmierung erfolgt durch Eingaben von Menschen, z.B. per Tastatur
die Datenverarbeitung erfolgt in Echtzeit, entsprechend dem zugehörigen Prozess
Typische Beispiele für Prozessrechner sind:
Steuerungsrechner von Anlagen (wie Fertigungsstraßen oder Hochöfen)
Microcontroller z.B. zur Steuerung von Haushaltsgeräten
Motorsteuerungen von Kraftfahrzeugen
Was versteht man unter Firmware?
Unter Firmware versteht man Software, die für Grundfunktionalitäten von Geräten verantwortlich ist, z.B.:
Initialisierung nach dem Starten (z.B. Power on)
Fehlererkennung und ggf. Beseitigung/Umgehung (z.B. fehlerhafte Sektoren)
Verbergen von Funktionalitäten (z.B. Caching bei Datenträgern)
Im Falle eines universellen Rechnersystems stellt die Firmware eine weitere Abstraktionsschicht dar, die noch vor dem eigentlichen Betriebssystem mit dem Anwender kommuniziert.
Übliche Firmware ist z.B. das:
Basic Input Output System (BIOS)
Extensible Firmware Interface (EFI)
BIOS?
Das BIOS (Basic Input/Output System) initialisiert die Hardware vor dem Start des Betriebssystems.
Die Hauptaufgaben des BIOS wurden und werden von den einzelnen BIOS-Herstellern leider nicht in standardisierter Form gelöst.
Hauptaufgaben im Detail:
Power On Self-Test (POST). Prüfung ob die grundlegenden Komponenten funktionsfähig sind
Initialisierung der Hardware
Starten des Betriebssystems, meist in einem mehrstufigen Ladeprozess
UEFI?
Das Extensible Firmware Interface (EFI) stellt den Nachfolger des klassischen BIOS dar. Es soll Funktionen des BIOS vereinheitlichen und gleichzeitig neu ermöglichen. Bei der EFI-Spezifikation handelt es sich um ein Embedded-System, welches sich einfacher bedienen lassen soll, ein grafisches Benutzerinterface unterstützt und auch netzwerkfähig ist (z.B. für Updates aus dem Internet).
BIOS & UEFI
Start des Betriebssystems
BIOS:
UEFI:
Zuletzt geändertvor einem Jahr