Inhaltsverzeichnis bearbeiten
[[Computerarchitektur und Betriebssysteme]]
= Motivation =
== Hinweise für Studierende ==
== Hinweise für Experten ==
== Copyright ==
= Computerarchitektur =
== Vom Anwender zur digitalen Schaltung ==
=== Erstmal aufschrauben ===
=== Von-Neumann-Rechner ===
==== Von-Neumann-Architektur ====
==== Von-Neumann-Flaschenhals ====
=== Komponenten eines Von-Neumann-Rechners ===
==== Zentraleinheit / CPU ====
===== Steuerwerk / Leitwerk =====
===== Rechenwerk =====
==== Speicherwerk ====
==== Ein- / Ausgabewerk ====
==== Gesamtbild eines Von-Neumann-Rechners ====
==== Von-Neumann-Zyklus ====
==== Animation der Zusammenarbeit ====
=== Eigenschaften eines Von-Neumann-Rechners ===
=== Digitale Schaltungen ===
==== Aufbau und Arbeitsweise eines Registers ====
==== Aufbau und Arbeitsweise des Speicherwerks ====
==== Aufbau und Arbeitsweise der ALU ====
==== Aufbau und Arbeitsweise eines Busses ====
=== Gatter ===
== Prozessoren und ihre Befehle ==
=== Vom Quellcode zum Prozessor ===
=== Befehlssatz ===
=== Befehlsformat ===
==== Einadressformat ====
==== Zweiadressformat ====
==== Dreiadressformat ====
==== Das Adressformat und der Von-Neumann-Zyklus ====
==== Aufgaben & Co. zum Befehlsformat ====
=== Adressierungsarten ===
==== Unmittelbare Adressierung ====
==== Registeradressierung ====
==== Direkte/absolute Adressierung ====
==== Registerindirekte Adressierung ====
==== Indizierte Adressierung mit Verschiebung ====
=== Vom Programm zum Prozess ===
=== Gesamtbild der Programmausführung ===
=== Aufgaben & Co. zu Prozessoren ===
== Weitere Komponenten der Computerarchitektur ==
=== Stackregister ===
=== Basisregister ===
==== Mehrere Prozesse gleichzeitig im Speicher ====
==== Swapping: Aus- und Einlagern von kompletten Prozessen ====
=== Limitregister zum Speicherschutz ===
=== Interrupt-Controller ===
==== Gründe für eine Interrupt-Auslösung ====
==== Speicherschutzverletzung ====
==== Quasi-gleichzeitige Ausführung mehrerer Prozesse ====
==== Kommunikation mit E/A-Geräten ====
===== Allgemeiner Aufbau eines Controllers =====
===== Zeit und Kosten machen den Unterschied =====
===== Datentransfer und Interrupts =====
=== DMA-Controller ===
==== Aufbau und Arbeitsweise eines DMA-Controllers ====
==== Direkt kann wirklich direkt bedeuten ====
=== MMU - Memory Management Unit ===
=== Moderne Bussysteme ===
== Fazit Computerarchitektur ==
= Betriebssysteme =
== Einführung Betriebssysteme ==
=== Geschichtlicher Überblick zu Betriebssystemen ===
=== Nur ein Prozessor mit einem Kern ===
=== Zwischen Benutzer und Hardware ===
=== Betriebsmittel ===
=== Betriebsmittel sind Prozessen zugeordnet ===
=== Zentrale Aufgabe eines Betriebssystems ===
=== Betriebssystemarchitekturen ===
=== Betriebssystemarten ===
=== Vom Batch-Job zum Multitasking ===
=== Kernel-Mode, User-Mode und Systemaufrufe ===
== Prozessverwaltung ==
=== Prozess ===
=== Prozesskontext ===
=== Kontextwechsel ===
==== Die Statistik der Kontextwechsel unter Windows ====
==== Die Statistik der Kontextwechsel unter Linux ====
=== Prozesse erzeugen ===
==== Fork ====
==== CreateProcess ====
=== Prozesskontrollblock ===
==== Prozesskontrollblock unter Windows ====
==== Prozesskontrollblock unter Linux ====
=== Prozesstabelle ===
=== Prozesszustände ===
=== Verwalten von Prozessen ===
==== Prozessverwaltung aus Admin-Sicht unter Windows ====
==== Prozessverwaltung aus Admin-Sicht unter Linux ====
=== Threads ===
==== Java-Beispiel mit Threads ====
==== Prozesse und Threads unter Windows ====
==== Prozesse und Threads unter Unix und Linux ====
=== Scheduling ===
==== Scheduling-Ziele ====
==== Scheduling-Verfahren ====
===== First Come First Serve =====
===== Shortest Job First =====
===== Shortest Remaining Time Next =====
===== Round Robin =====
===== Priority Scheduling =====
===== Weitere Verfahren =====
==== Scheduling in gängigen Betriebssystemen ====
==== Vergleichskriterien ====
=== Synchronisation ===
==== Grundlegende Begriffsdefinitionen zur Synchronisation ====
===== Nebenläufigkeit =====
===== Race Conditions =====
===== Kritischer Abschnitt =====
==== Aktives Warten ====
===== Aktives Warten mit while =====
===== Das Problem des ungünstigsten Moments =====
===== Aktives Warten mit TSL =====
==== Semaphore ====
===== Mutex =====
====== Wechselseitiger Ausschluss ======
====== Reihenfolgedurchsetzung ======
===== Zählsemaphor =====
====== Erzeuger- / Verbraucherproblem ======
====== Philosophenproblem ======
==== Monitore ====
==== Zusammenfassung Synchronisation ====
==== Synchronisationstechniken moderner Betriebssysteme ====
==== Synchronisationsmechanismen in Programmiersprachen ====
=== Deadlocks ===
==== Vier Bedingungen nach Coffman ====
==== Deadlocks erkennen ====
==== Deadlocks ignorieren ====
==== Deadlocks vermeiden ====
==== Deadlocks verhindern ====
==== Deadlock-Fazit ====
=== Interprozesskommunikation ===
==== Zwei Threads kommunizieren über gemeinsame Variablen ====
==== Zwei Prozesse kommunizieren über gemeinsame Speicherobjekte ====
==== Zwei Prozesse kommunizieren über Shared Memory ====
==== Zwei Prozesse kommunizieren über Pipes ====
==== Zwei Prozesse kommunizieren über Sockets ====
==== Interprozesskommunikation-Fazit ====
== Speicherverwaltung ==
=== Virtuelle Speicherverwaltung ===
==== Arbeitsweise der MMU ====
==== Seitentabellen ====
===== Einstufige Seitentabellen =====
===== Mehrstufige Seitentabellen =====
=== Swapping und Paging ===
==== Page Fault ====
==== Seitenersetzung ====
===== Was bei der Seitenersetzung passiert =====
===== Das Modifiziert-Bit =====
===== Seitenersetzungsverfahren =====
====== Optimaler Seitenersetzungsalgorithmus ======
====== NRU - Not Recently Used Algorithmus ======
====== FIFO - First In First Out Algorithmus ======
====== Second Chance Algorithmus ======
====== Working Set Algorithmus ======
=== Shared Memory ===
=== Speicherverwaltung moderner Betriebssysteme ===
==== Speicherverwaltung unter Linux ====
==== Speicherverwaltung in Windows ====
==== Speicherverwaltung unter Android ====
== Geräteverwaltung ==
=== Rolle der Geräteverwaltung ===
=== Abhängig und gleichzeitig unabhängig ===
=== Gerätetreiber ===
=== Aufgaben eines Treibers ===
==== Initialisierung des Geräte-Controllers ====
==== Gerät dem Betriebssystem bekannt machen ====
==== Bereitstellen einer Schnittstelle zum Geräte-Controller ====
==== Interruptbehandlung für ein Gerät ====
==== Bereitstellen einer Schnittstelle zur Geräteverwaltung ====
==== Pufferung von Daten ====
==== Koordination nebenläufiger Zugriffe auf ein Gerät ====
=== Geräteklassen ===
==== Blockorientierte Geräte ====
==== Zeichenorientierte Geräte ====
==== Sonstige Geräte ====
=== Memory-Mapped-I/O ===
=== DMA - Direct Memory Access ===
=== Windows-Treiber auf GitHub ===
== Dateiverwaltung ==
=== Datei ===
=== Dateisystem ===
=== Aufgaben eines Dateisystems ===
=== Dateisystemkonzepte ===
=== Von Windows unterstützte Dateisysteme ===
==== FAT - File Allocation Table ====
==== NTFS - New Technology File System ====
= Aufgaben zur Prüfungsvorbereitung =
== Aufgaben zum Kapitel Vom Anwender zur digitalen Schaltung ==
== Aufgaben zum Kapitel Prozessoren und ihre Befehle ==
== Aufgaben zum Kapitel Weitere Komponenten der Computerarchitektur ==
== Aufgaben zum Kapitel Einführung Betriebssysteme ==
== Aufgaben zum Kapitel Prozessverwaltung ==
=== Aufgaben zu Prozesse und Threads ===
=== Aufgaben zum Scheduling ===
=== Aufgaben zur Synchronisation ===
=== Aufgaben zu Deadlocks ===
== Aufgaben zum Kapitel Speicherverwaltung ==
== Aufgaben zum Kapitel Geräteverwaltung ==
== Aufgaben zum Kapitel Dateiverwaltung ==
= Logbuch =
== Jahr 2013 ==
== Jahr 2014 ==
== Jahr 2015 ==
== Jahr 2016 ==
= Anhang =
== Zweier-Potenzen ==
== Bits und Bytes ==
== GiB, MiB, KiB im Vergleich zu GB, MB, KB ==
== Java-Applets ==
== Inhalt dieses LOOPs ausdrucken ==
== Impressum ==