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

Literatur

Impressum