Dieses Studienmaterial wurde aus einem Vorlesungstranskript und einem Textdokument zum Thema "Grundlagen Rechneraufbau, Betriebssysteme" erstellt.
📚 Grundlagen der Rechnerarchitektur und Betriebssysteme
1. CPU-Architekturen: ISA, RISC und CISC
Die Befehlssatzarchitektur (ISA), kurz für Instruction Set Architecture, beschreibt die grundlegenden Eigenschaften eines Prozessors und umfasst vier zentrale Aspekte:
1.1 Befehlssatzarchitektur (ISA)
-
Registerstruktur ✅
- Definition: CPU-interne, extrem schnelle Speicherplätze.
- Funktion: Werden für interne Berechnungen, das Speichern von Adressen und Konfigurationszwecke genutzt.
- Beispiel: Register wie
eax,ebx,ecx,edxbei 32-Bit-Intel-Prozessoren.
-
Adressierungsarten ✅
- Definition: Unterscheiden sich nach der Anzahl der zu kodierenden Adressen in Befehlen (z.B. 0-, 1-, 2-, 3-Adress-Befehle).
- Parameter: Adressen können Speicheradressen, Register oder feste Zahlen (Konstanten) sein.
- Beispiel:
mov eax, 123(Register und Konstante) undadd eax, ebx(zwei Register) sind 2-Adress-Befehle.
-
Maschinenbefehlssatz ✅
- Definition: Legt fest, welche Maschinenbefehle die CPU versteht und welche Aktionen sie auslösen.
- Beispiel:
mov(Ablegen einer Zahl in einem Register),add(Addieren von Registerinhalten). - 💡 Hinweis: Moderne CPUs verstehen Hunderte von Befehlen.
- 📚 Maschinen- vs. Assemblerbefehl:
- Assemblerbefehl: Lesbare Anweisungen für Entwickler in einer Assemblersprache (z.B.
mov eax, 123). - Maschinenbefehl: Die vom Prozessor direkt ausführbare, binäre Form eines Assemblerbefehls, eine Sequenz von Bytes. Ein "Assembler"-Programm wandelt Assembler-Code in Maschinensprache um.
- Assemblerbefehl: Lesbare Anweisungen für Entwickler in einer Assemblersprache (z.B.
-
Interruptbehandlung ✅
- Definition: Regelt, wie Prozessoren auf externe Unterbrechungen (Interrupts) reagieren.
- Ursache: Geräte (z.B. Tastatur) senden Statusmeldungen an das System.
- Frage: Wie laufen solche Unterbrechungen ab und wie lassen sie sich im Prozessor konfigurieren?
1.2 RISC vs. CISC
Anhand des Befehlssatzes lässt sich eine CPU einer dieser Architekturen zuordnen:
RISC (Reduced Instruction Set Computing) 📉
- Konzept: Kleiner, einfacher Befehlssatz.
- Typische Eigenschaften:
- Einheitliche Befehlslänge: Alle Maschinenbefehle haben dieselbe Länge. Dies vereinfacht die Verarbeitung und die Aktualisierung des Program Counters (z.B.
eip). - Feste Anzahl Adressen: Meist genau eine nutzbare Adresse pro Befehl.
- Speicherzugriff: Nur über spezielle Transportbefehle (Register ↔ Speicher). Arithmetische Operationen erfolgen nur auf Registerinhalten.
- Vorteil: Einfachere CPU-Hardware, schnellere Ausführung einzelner Befehle.
- Einheitliche Befehlslänge: Alle Maschinenbefehle haben dieselbe Länge. Dies vereinfacht die Verarbeitung und die Aktualisierung des Program Counters (z.B.
CISC (Complex Instruction Set Computing) 📈
- Konzept: Komplexer, umfangreicher Befehlssatz.
- Typische Eigenschaften:
- Variable Befehlslänge: Befehle können sehr unterschiedliche Längen haben, was die Dekodierung für den Prozessor aufwendiger macht.
- Variable Anzahl Adressen: Flexiblere Nutzung von Adressen.
- Direkter Speicherzugriff: Arithmetische und logische Befehle können direkt auf Speicherinhalte zugreifen.
- Spezialbefehle: Enthält Befehle für spezielle, seltener benötigte Berechnungen, auf die RISC-CPUs verzichten.
- Nachteil: Komplexere CPU-Hardware, schwierigere Verarbeitung von Befehlen, da sie oft mehrere Aktivitäten kombinieren.
2. Aufgaben und Konzepte von Betriebssystemen
Ein Betriebssystem (BS) ist eine essenzielle Softwareschicht zwischen Hardware und Anwendungen.
2.1 Rolle und Notwendigkeit eines Betriebssystems
- Frühe Computer: Anwendungen hatten direkte und vollständige Kontrolle über die Hardware.
- Probleme:
- Nur ein Programm gleichzeitig ausführbar.
- Jedes Programm benötigte umfassende Hardware-Kenntnisse.
- Gefahr von Hardwareschäden durch fehlerhafte Programmierung (z.B. Festfrequenzmonitore).
- Programme mussten eigene Dateisysteme "erfinden".
- Probleme:
- Lösung durch BS:
- Übernimmt Erkennung, Initialisierung, Verwaltung und Nutzung der Hardware.
- Bietet eine definierte Schnittstelle für Anwendungen, die sich nicht mehr um Hardware-Details kümmern müssen.
- Initialisierung: Setzt Hardwarekomponenten nach dem Einschalten in einen definierten Startzustand (z.B. Schreib-/Lesekopf eines Diskettenlaufwerks).
2.2 Typische Aufgaben eines Betriebssystems
-
Gerätetreiber 🔌
- Funktion: Programmcode zur korrekten Ansteuerung spezifischer Hardware (z.B. Festplatten-Controller, Drucker, Tastatur).
- Vorteil: Anwendungen können generische Anfragen stellen (z.B. "Mausbewegung"), unabhängig von der konkreten Hardware-Anbindung (USB, Funk, seriell).
-
Dateisystem 🗄️
- Funktion: Logische Verwaltung von Dateien und Verzeichnissen auf einem Datenträger.
- Abstraktion: Trennt die logische Dateiverwaltung vom physischen Zugriff auf Sektoren.
- Schnittstelle: Funktionen zum Erzeugen, Öffnen, Schließen, Lesen, Schreiben, Löschen von Dateien und Verzeichnissen.
- Vorteil: Einheitlicher Dateizugriff für Anwendungen, unabhängig vom Speichermedium (Festplatte, USB-Stick, DVD).
- ⚠️ Kompatibilität: Dateisysteme sind oft nicht zwischen verschiedenen Betriebssystemen kompatibel (z.B. Linux-formatierte Platte unter Windows).
-
Hauptspeicherverwaltung 🧠
- Funktion: Aufteilung des RAMs zwischen gleichzeitig laufenden Programmen.
- Aufgaben: Überblick über belegte/freie Speicherbereiche, Auslagern von Speicherinhalten auf Festplatte bei Vollbelegung.
- Speicherschutz: Verhindert, dass Programme in Speicherbereiche anderer Programme oder des Betriebssystems zugreifen oder diese verändern.
- Schnittstelle: Programme können dynamisch Speicher anfordern und freigeben.
-
Scheduling ⏰
- Komponente: Der Scheduler entscheidet, welches Programm wann die CPU nutzen darf.
- Ziel: Ermöglicht die quasi-gleichzeitige Ausführung mehrerer Anwendungen auf einem Prozessor.
- Verfahren: Häufig über ein Zeitscheibenverfahren, bei dem Programme abwechselnd für kurze Zeit die CPU nutzen.
- Arten:
- Kooperatives Scheduling: Programme geben die Kontrolle freiwillig ab (z.B. frühe Windows-Versionen bis 3.x). Führt zu Instabilität, wenn Programme die Kontrolle nicht abgeben.
- Präemptives (unterbrechendes) Scheduling: Der Scheduler entzieht Programmen regelmäßig die CPU (z.B. durch Timer-Interrupts) und schaltet zu einem anderen Programm um. Erfordert Hardware- und Software-Unterstützung für Interrupts. Führt zu stabileren Systemen (z.B. Windows 95+, NT-Schiene).
- Priorität: Programme können ihre Priorität anpassen, um mehr oder weniger CPU-Zeit zu erhalten (z.B. mit
niceundreniceunter Linux).
-
Synchronisation 🤝
- Problem: Konflikte bei der gemeinsamen Nutzung von Betriebsmitteln (Speicher, Prozessor, Festplatte) durch mehrere Programme.
- Beispiel: Zwei Programme wollen gleichzeitig denselben Kontostand in einer Datenbank ändern. Ohne Synchronisation können Fehler auftreten.
- Mechanismen: Das BS bietet Mechanismen wie Mutexe und Semaphore an, um Synchronisationsfehler zu vermeiden.
-
Benutzerverwaltung 👤
- Funktion: Ermöglicht den Mehrbenutzer- (Multi-User-) Betrieb.
- Merkmale:
- Anmeldung mit Authentifizierung (Benutzername/Passwort).
- Geschützte Bereiche im Dateisystem mit Zugriffsrechten für Dateien und Verzeichnisse.
- Quota-Regelung: Begrenzt den Speicherplatz pro Benutzer.
- Verhindert, dass Programme auf Speicherinhalte anderer Benutzer zugreifen.
- Beispiel: Unix-Systeme unterstützen traditionell Multi-User-Betrieb mit Terminals. MS-DOS und DOS-basierte Windows-Versionen bieten keine solchen Schutzmechanismen auf Dateisystemebene (FAT). NTFS-basierte Windows-Versionen (NT-Schiene) unterstützen dies.
3. Geschichte und Lizenzmodelle von Betriebssystemen
3.1 Evolution der Betriebssysteme
- Ohne Betriebssystem: Frühe Computer wurden manuell von Operatoren bedient; Programme und Daten wurden direkt eingegeben (z.B. über Lochkarten).
- BIOS (Basic Input/Output System): Erste Ansätze eines BS, stellte grundlegende Systemfunktionen bereit (z.B. Amstrad CPC mit Zilog Z80). Funktionen lagen im ROM.
- CP/M (Control Program for Microcomputers): Einführung eines Schichtenmodells.
- BIOS: Maschinenspezifisch, grundlegende Funktionen.
- BDOS (Basic Disk Operating System): Hardwareunabhängige Funktionen, die das BIOS nutzen. Erleichterte die Portierung auf neue Hardware.
- Anwendungen/Shell: Nutzen BDOS-Funktionen.
3.2 Dateisystem-Entwicklung
- Flache Dateisysteme: Bei sequentiellen Speichermedien (Lochkarten, Magnetbänder) oder kleinen Disketten (z.B. CP/M) ausreichend, da nur wenige Dateien.
- Hierarchische Dateisysteme: Notwendig mit der Entwicklung von Festplatten und deren wachsender Kapazität. Ermöglichen Ordner und Unterordner.
- Beispiel: FAT (File Allocation Table) bei PC-DOS/MS-DOS.
- Unix: Nutzte von Anfang an ein hierarchisches Dateisystem mit einer einzigen Baumstruktur, die alle Datenträger integriert.
3.3 Multitasking und Multi-User-Betrieb
- Multitasking: Ermöglicht die quasi-gleichzeitige Ausführung mehrerer Programme. Erfordert einen Scheduler.
- Multi-User-Betrieb: Ermöglicht die Unterscheidung zwischen verschiedenen Benutzern auf einem System, mit entsprechenden Schutzmechanismen (Authentifizierung, Zugriffsrechte, Speicherschutz).
- Historie: Unix-Systeme unterstützten beides frühzeitig. MS-DOS und DOS-basierte Windows-Versionen hatten kein Multi-User-Konzept auf Dateisystemebene.
3.4 Lizenzmodelle: Frei/Proprietär, Open/Closed Source
- Proprietäre Software: Beschränkt Nutzung, Änderungen und Weitergabe (z.B. Windows). Quelltext oft nicht verfügbar.
- Freie Software (GNU-Projekt, Richard Stallman): Gewährt vier Freiheiten:
- Ausführung für jeden Zweck.
- Modifikation des Programms (Zugang zum Quellcode ist dafür notwendig).
- Weitergabe von Kopien (kostenlos oder gegen Gebühr).
- Verteilung modifizierter Versionen.
- 💡 Unterscheidung:
- Frei/Unfrei (Proprietär): Betrifft gesellschaftliche Aspekte und Freiheiten.
- Open Source/Closed Source: Betrifft die Verfügbarkeit des Quellcodes.
- Hinweis: Alle freien Programme sind quelloffen, die meisten quelloffenen Programme sind auch frei, aber es gibt Ausnahmen.
3.5 Linux-Distributionen
- Konvention: Ein Betriebssystem besteht aus dem Kernel und allen für übliche Einsatzzwecke nötigen Dienstprogrammen.
- Linux-Kernel: Der reine Betriebssystemkern.
- GNU/Linux: Kombination des Linux-Kernels mit GNU-Tools und anderen Dienstprogrammen.
- Distributionen: Zahlreiche Anbieter (Red Hat, Canonical, Debian) stellen Linux-Distributionen bereit, die sich unterscheiden in:
- Installation: Eigene Installationssysteme.
- Paketmanagement: Verwaltung von Softwarepaketen, Abhängigkeiten und Konflikten.
- Stabilität: Philosophie bezüglich der Versionen von Kernel und Programmen (ältere, getestete vs. neueste Features).
- Standard-Desktop: Bevorzugte grafische Oberfläche (KDE, Gnome, Xfce, LXDE).
- Plattformen: Verfügbarkeit für verschiedene Hardware-Architekturen (z.B. Raspberry Pi).
- Philosophie: Gesellschaftliche Ziele (z.B. Vermeidung proprietärer Software).
- Unix-Familie: Umfasst auch BSD-Varianten (FreeBSD, OpenBSD, NetBSD) mit unterschiedlichen Schwerpunkten (PC-Einsatz, Sicherheit, Hardware-Unterstützung).
- Freie Klone: Existieren auch für proprietäre Systeme (z.B. FreeDOS für MS-DOS, ReactOS für Windows NT).
4. Schichten und Abstraktion 🏗️
Ein wesentlicher Aspekt von Betriebssystemen ist die Schichtenarchitektur, die Abstraktion und Kapselung der Hardware ermöglicht:
- Anwendungsprogramm: Die oberste Schicht.
- Bibliotheksfunktionen: Code, der von vielen Anwendungen benötigt wird und wiederverwendbar ist.
- Schnittstellenfunktionen des Betriebssystems (System Calls): Die einzige Möglichkeit für ein Programm, das Betriebssystem um Hilfe zu bitten. Der Prozessor wechselt in einen privilegierten Modus.
- Interne BS-Schichten: Trennen z.B. allgemeinen Dateicode von spezifischem Dateisystemcode (NTFS, FAT).
- Hardware-Ansteuerung: Funktionen, die direkt die Hardware ansprechen (z.B. Steuerbefehle an den Plattencontroller).
Diese Schichten ermöglichen es Anwendungen, hardwareunabhängig zu arbeiten und das System stabiler und sicherer zu machen.








