Grundlagen der Betriebssysteme und verteilten Systeme
Grundlagen der Systemtheorie
System: Eine Reihe von Elementen, Prozessen und Methoden, die gemeinsam interagieren, um ein Ziel zu erreichen.
Das Betriebssystem (SO)
Ein Betriebssystem ist eine Reihe von Programmen, die für den Nutzer die Hardware-Schnittstelle bilden. Es hat zwei wesentliche Funktionen:
- Verwalten der Hardware: Effiziente Steuerung der Ressourcen.
- Erleichterung der Arbeit: Kommunikation der Endgeräte mit der Maschine.
Das Betriebssystem ist im Sekundärspeicher abgelegt. Der Prozess beginnt, wenn ein Stück Code in den Prozessor geladen und ausgeführt wird. Das BIOS lädt daraufhin das Betriebssystem, welches wiederum alle weiteren Softwareprogramme lädt.
Verteilte Betriebssysteme (SOD)
SOD: Eine Reihe von Programmen, die die Funktionen der Elemente (Hardware, Software) verwalten und kontrollieren, um ein transparentes Gesamtsystem zu bilden.
Vorteile (Verteilt vs. Zentralisiert)
- Wirtschaftlichkeit
- Schnelligkeit
- Zuverlässigkeit
- Zuwachszonen (Skalierbarkeit)
Nachteile
- Geringe Verfügbarkeit von Software
- Netzwerksättigung
- Sicherheitsrisiken
Das Client-Server-Modell
In dieser Architektur generiert der PC des Nutzers (Client) eine Informationsanfrage an einen der PCs, die Informationen zur Verfügung stellen (Server).
- Client: Initiiert eine Service-Anfrage über LAN oder WAN.
- Server: Eine Computing-Ressource, die für die Verarbeitung von Kundenanforderungen (Druck, Datenbankzugriff, Fax, Bilder) reserviert ist.
Elemente der Client-Server-Architektur
Präsentation, Informationssammlung, Speicherung und Prozesse.
Anwendungstypen
- Workstation: Ein PC, der den Zugriff und die Verwaltung von Ressourcen als universelle Aufgabe ermöglicht.
- Host: Eine Maschine, die Dienste wie Datenbanken (DB), Dateien oder Kommunikation bereitstellt.
Server-Spezialisierungen
Großrechner, professionelle PCs oder spezialisierte Netzwerkgeräte (Image-Server etc.).
Architektur-Schichten
Eine Architektur besteht aus wirksamen Komponenten, Standards und Prozessen, die Dienste integrieren. Sie wird in jeder Organisation eingesetzt.
- Zwei-Schichten-Anwendung (Thin-Client): Daten und Geschäftslogik sind von der Schnittstelle getrennt.
- Thick-Client: Die Datenverarbeitung erfolgt teilweise beim Client, trotz Trennung von Benutzeroberfläche und Logik.
- Drei-Schichten-Anwendung: Schnittstelle, Geschäftslogik und Datenzugriff sind strikt getrennt.
Hardware-Klassifizierung nach Flynn
SISD (Single Instruction, Single Data)
Systeme mit einem einzigen Prozessor (normaler PC).
SIMD (Single Instruction, Multiple Data)
Jeder PC verfügt über einen eigenen Prozessor; Befehle werden parallel verarbeitet.
MISD (Multiple Instruction, Single Data)
Es sind keine PCs bekannt, die in diese Klassifizierung passen.
MIMD (Multiple Instruction, Multiple Data)
Gruppen unabhängiger PCs, jeder mit eigenem Programmknoten. Alle verteilten Systeme gehören zu diesem Typ.
Merkmale verteilter Betriebssysteme (SOD)
Ein SOD ermöglicht die Verteilung von Aufgaben auf eine Reihe von Prozessoren in einem Team.
- Platzierung autonomer Systeme, die über Hardware und Software kommunizieren.
- Bereitstellung von Mitteln für den globalen Ressourcenaustausch.
- Zusatzdienste: Globaler Namensraum, verteiltes Dateisystem, Einrichtungen zur Berechnungsverteilung.
Komponenten und Funktionen
- Hardware: Prozessor, Speicher, Medien, Lagerung.
- Software: Programme, Betriebssystem.
- Funktionen: Verwaltung von Hardware (CD, DVD) und Software (Prozesse, Anwender).
Vergleich SOD vs. SOR
- SOD: Multiprozessor, Multitasking, hoher Durchsatz, verteilt.
- SOR: Uniprozessor, Single-Tasking, geringer Durchsatz, zentralisiert.
Kommunikation in verteilten Systemen
Ermöglicht die Interaktion zwischen Anwendungen und Systemdiensten.
Einflussfaktoren
- Performance (Latenz, Bandbreite)
- Skalierbarkeit
- Zuverlässigkeit (Verlust von Nachrichten)
- Sicherheit (Verschlüsselung)
- Mobilität
- Quality of Service (QoS)
- Gruppenkommunikation (Multicast)
Kommunikationsprimitive
- Blockierend vs. Nicht-blockierend
- Asynchron vs. Synchron
- Zuverlässig vs. Nicht-zuverlässig
Message Passing
Nachrichten können als Text (z. B. HTTP) oder im Binärformat ausgetauscht werden. Anwendungen definieren Protokolle wie Request-Response.
Gruppenkommunikation
Ermöglicht durch Netzwerkprotokolle (IP-Multicast) oder Emulatoren. Die Adressierung erfolgt über eine Gruppenadresse.
Ordnungsmechanismen
- FIFO-Ordnung: Nachrichten einer Quelle kommen in der gesendeten Reihenfolge an.
- Kausale Ordnung: Berücksichtigt die relative Abhängigkeit zwischen Sendern.
- Total-Ordnung: Alle Empfänger erhalten alle Nachrichten in der exakt gleichen Reihenfolge.
Remote Procedure Call (RPC)
Sun RPC ist die Basis für Dienste wie NFS oder NIS. Ziel ist die Transparenz: Ein entfernter Aufruf soll wie ein lokaler wirken.
Ablauf eines RPC
- Client: Packt Argumente in eine Nachricht und wartet auf das Ergebnis.
- Server: Empfängt die Nachricht, führt die Funktion aus und sendet das Ergebnis zurück.
Wichtige Komponenten
- Stubs (Wachen): Abstraktionsschicht für den Nachrichtenaustausch. Sie werden oft automatisch generiert.
- XDR (External Data Representation): Standard zur Darstellung von Daten, um Unterschiede in Architekturen auszugleichen.
- Portmapper: Hilft dem Client, den richtigen Port des Server-Hosts zu finden.
Fehlertoleranz und Semantik
RPC muss Probleme behandeln wie: Verlorene Anfragen, verlorene Antworten oder Abstürze von Client oder Server.
Implementierungsaspekte
Verwendung von TCP (verbindungsorientiert) oder UDP (verbindungslos). Zur Leistungssteigerung können Techniken wie Scatter-Gather eingesetzt werden.