Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(130 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 43: | Zeile 43: | ||
=== Vom Programm zum Prozess === | === Vom Programm zum Prozess === | ||
=== Gesamtbild der Programmausführung === | === Gesamtbild der Programmausführung === | ||
=== Aufgaben & Co. zu Prozessoren === | |||
== Weitere Komponenten der Computerarchitektur == | == Weitere Komponenten der Computerarchitektur == | ||
=== Stackregister === | |||
=== Basisregister === | === Basisregister === | ||
==== Mehrere Prozesse gleichzeitig im Speicher ==== | ==== Mehrere Prozesse gleichzeitig im Speicher ==== | ||
Zeile 53: | Zeile 55: | ||
==== 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 === | |||
== 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 = | = 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