Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(118 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Computerarchitektur_und_Betriebssysteme]] | [[Computerarchitektur_und_Betriebssysteme]] | ||
= Motivation = | = Motivation = | ||
== Hinweise für Studierende == | == Hinweise für Studierende == | ||
Zeile 34: | Zeile 33: | ||
==== Zweiadressformat ==== | ==== Zweiadressformat ==== | ||
==== Dreiadressformat ==== | ==== Dreiadressformat ==== | ||
==== Das Adressformat und der Von-Neumann-Zyklus ==== | |||
==== Aufgaben & Co. zum Befehlsformat ==== | ==== Aufgaben & Co. zum Befehlsformat ==== | ||
=== Adressierungsarten === | === Adressierungsarten === | ||
Zeile 51: | Zeile 51: | ||
=== Limitregister zum Speicherschutz === | === Limitregister zum Speicherschutz === | ||
=== Interrupt-Controller === | === Interrupt-Controller === | ||
==== Gründe für eine Interrupt-Auslösung ==== | |||
==== Speicherschutzverletzung ==== | ==== Speicherschutzverletzung ==== | ||
==== Quasi-gleichzeitige Ausführung mehrerer Prozesse ==== | ==== Quasi-gleichzeitige Ausführung mehrerer Prozesse ==== | ||
==== Kommunikation mit E/A-Geräten ==== | ==== Kommunikation mit E/A-Geräten ==== | ||
===== Allgemeiner Aufbau eines Controllers ===== | |||
===== Zeit und Kosten machen den Unterschied ===== | |||
===== Datentransfer und Interrupts ===== | |||
=== DMA-Controller === | === DMA-Controller === | ||
==== Aufbau und Arbeitsweise eines DMA-Controllers ==== | |||
==== Direkt kann wirklich direkt bedeuten ==== | |||
=== MMU - Memory Management Unit === | === MMU - Memory Management Unit === | ||
=== Moderne Bussysteme === | === Moderne Bussysteme === | ||
Zeile 62: | Zeile 68: | ||
=== Geschichtlicher Überblick zu Betriebssystemen === | === Geschichtlicher Überblick zu Betriebssystemen === | ||
=== Nur ein Prozessor mit einem Kern === | === 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 == | == Prozessverwaltung == | ||
=== | === Prozess === | ||
=== Prozesse | === Prozesskontext === | ||
==== | === Kontextwechsel === | ||
==== Prozesszustände ==== | ==== Die Statistik der Kontextwechsel unter Windows ==== | ||
==== | ==== Die Statistik der Kontextwechsel unter Linux ==== | ||
==== Threads ==== | === 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 === | ||
==== 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 === | === 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 === | === 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 == | == 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 == | == Dateiverwaltung == | ||
== Geräteverwaltung == | === 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 = | = Logbuch = | ||
== Jahr 2013 == | == 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 == | |||
== Literatur == | |||
== Impressum == |
Computerarchitektur_und_Betriebssysteme