Aufgabenverzeichnis

Computerarchitektur und Betriebssysteme

Größer als

Speicherzelle 3

Von dezimal zu binär

Die 4 GiB-Grenze

Der Weg der Daten

Pfeilrichtungen

Wettbewerb in deiner Lerngruppe

Animation

lda und sta

Hellseher

See How The CPU Works In One Lesson

Visual 6502

Flip-Flop I

Flip-Flop II

Flip-Flop III

Simulationsframework Hades

Forbidden (RS-Flip-Flop)

Sum Program

Count Program

EQUAL-Befehl

JUMP-Befehl

Assembler-2-Hochsprache

Speicherzellen für die Befehle

Klassifizierungen

Operand oder nicht?

Wenn der Operand keine Adresse ist

Entwicklung eines Befehlssatzes

Nur sechs Bit

Adressierungsarten

Finde es heraus

Adressierungsarten

Programm-2-Prozess

VNA vs. Harvard

RISC vs. CISC

Welche Situation gilt?

Zusammenhang mit Basisregister

Fragmentierter Hauptspeicher

Zugriff auf freien Speicherbereich

Speicherbereich eines Prozesses vergrößern

Prüfe die Bedingungen!

Schätze die Folgen ab!

Wer wenn nicht das Steuerwerk?

Vier Bit

Weiter laufen lassen?

Ausnahme und Interrupt

Integration des Taktgebers

Betriebssystem und Prozesse im Wechsel

Lesen und/oder schreiben?

Alternative zum Warten?

Interrupt und die Register

Zwei Bit?

Mehrere Register je Typ

Mal wieder das Betriebssystem

Datentransfer (noch) ohne DMA

Datentransfer mit DMA

DMA und CPU

Arten des DMA-Transfers

Start- und Zieladresse ändern sich

DMA mit RAM und RAM?

Datentransfer mit DMA

Umweg über DMA-Controller

Eindeutig oder mehrdeutig?

Umrechnung und was noch?

Virtuelle Größen

Swapping bei virtueller Speicherverwaltung?

Was wäre wenn... (I)

Was wäre wenn... (II)

Treiber

Datei nur exklusiv oder gemeinsam nutzbar?

Welche weiteren Betriebsmittel?

Liste von Systemaufrufen

Wo ist der Systemaufruf?

Sind Kontextwechsel positiv oder negativ?

Perfmon unter Windows

Vater- und Sohn-Variable

fork gleich mehrmals

Fork und DMA?

Ein anderes Programm mittels fork starten

Die Spalten der Prozesstabelle

Merke dir den Zustand!

Process Explorer unter Windows

Geschwindigkeitsvorteil

Vor- und Nachteil des Betriebsmittelzugriffs

Threadzustände

Unerwünschte Nebeneffekte bei mehreren Threads

Starte die Threads!

Ein Dispatcher muss tun, was ein Dispatcher tun muss...

Früher als spätestens

Der Nächste ist der Vorherige?

Wenn ein Prozess blockiert

Scheduling-Ziele

Ein Hauch von Texas

FCFS animiert

Interessante FCFS-Situation

FCFS auf deinem Rechner

SPN animiert

Kurz oder lang

Blockieren und Interrupts

Erzeugt oder was?

SJF auf deinem Rechner

SRTN animiert

SJF vs. SRTN

Wie kurz bist du?

RR animiert

Zu kurz oder zu lang

RR und E/A-lastige Prozesse

Verschiedene Prozesse mit gleicher Priorität

Was passiert bei niedriger Priorität?

Erweitere PS

Herauf statt herunter!

Scheduling-Kriterien

Wann genau finden Kontextwechsel statt?

Gemeinsam genutzes Betriebsmittel

Kleiner Fehler bei den Erklärungen im Video

Abschnitte in Thread_B

Viele andere Betriebsmittel

Warum Systemaufrufe?

Zwei Prozesse und kritische Abschnitte

Die Bedeutung des Semikolons!

Aktives Warten implementieren

Warte aktiv!

Der Nachteil des aktiven Wartens

Kontextwechsel im ungünstigsten Moment

Mehrere ungünstigste Momente

Speicherzelle 13

XCHG bei Intel

Gilt der Nachteil noch?

Warum up() und down()?

P() und V() sind atomar

Mutex in Action

Aktives Warten vs. Mutex

Mutex und Prozesse bei Wikipedia

Applet zum wechselseitigen Ausschluss

Applet zur Reihenfolgedurchsetzung

Reihenfolgedurchsetzung vs. Wechselseitiger Ausschluss

Applet zum Erzeuger- / Verbraucherproblem

Applet zum Philisophenproblem

Deadlock-Philosophen

Applet zum Philisophenproblem

Deadlocks erkennen mit Hilfe eines Betriebsmittelgraphen

Zeichne den Betriebsmittelgraph und erkenne den Deadlock!

Was tun bei erkanntem Deadlock?

Wie oft nach einem Deadlock suchen?

Implementiere!

Spooling

Überweis' mal was

Überweisen ohne Deadlock?

IPC-Grundbegriffe

Lock

Shared Memory realisieren

Deine tägliche Socket-Dosis

Rahmen vs. Seite

Rechne nach!

Besonders schnell ist besonders wichtig!

Wenn du es umrechnen kannst, dann kannst du es auch verstehen!

Eine Seitentabelle hat es in sich

Nur 64 KiB RAM

Du bist jetzt die MMU

Swapping vs. Paging I

Swapping vs. Paging II

Paging und die Seitentabelle

Page Fault or No Page Fault?

Was passiert bei einem Page fault?

Wenn eine Seite Programmtext enthält

Wenn eine Seite Daten enthält

M-Bit beim Einlagern

Die MMU und Seitenersetzungsverfahren

Implementiere den optimalen Seitenersetzungsalgorithmus

Optimales M-Bit

Lesen, schreiben, R-Bit?

Vier Klassen ohne Seiten?

Auch das M-Bit löschen?

FIFO und die Seitentabelle

Angesprochen oder nicht?

Wenn alle die zweite Chance nutzen

Die 80/20-Regel und das Working Set

Realisiere Shared Memory

Weniger Seitenfehler durch Shared Memory?

Shared Memory mit Daten statt Programmtext

Überfliege erneut die Kommunikation

Pfeilrichtungen und Kommunikationswege

Systemaufruf zwischen User- und Kernel-Mode

Pfeil des Systemaufrufs

Du hast doch schon mal einen Treiber installiert, oder?

Treiberausführung im User- oder im Kernel-Mode?

Befehle des NEC PD765 FDC

Several registers in a stack

Abwarten! - Und Tee trinken?

Interruptbehandlung als Tätigkeit

Nur der Treiber!

DMA und Interrupts - Wie war das nochmal?

Geräte und ihre Interrupts

Systemaufruf im Praxisbeispiel

Prozesszustände im Praxisbeispiel

Interrupt im Praxisbeispiel

Just a simple assembler instruction

CPU-Registerinhalte sichern im Praxisbeispiel

Ein Mausklick und die Folgen

Hier schreibt die Maus

Geeignete Speichermedien

CRUD für Verzeichnisse?

Setze die Datei zusammen!

Lösche die Datei!

Speichere eine neue Datei!

Von-Neumann-Architektur

Von-Neumann-Flaschenhals

Von-Neumann-Zyklus

8-Bit-Register

Bitfolge in ein Register schreiben

Rund um diese Komponente

Flip-Flop

Ermittle die Werte

ADD im Einadressformat

Dreiadressformat

Entwicklung eines Befehlssatzes

Adressierungen des Hauptspeichers

Adressierungsarten

Prozess

Von-Neumann vs. Harvard

Basis- und Limit-Register

Interrupt-Gründe

DMA

Infos für den DMA-Controller

DMA und Interrupts

MMU

Aufgabe der MMU

Virtuelle Größen

North- und Southbridge

Betriebsmittel

Kernel- und User-Mode

Sinn von Kernel- und User-Mode

Systemaufruf

Prozesszustände

Von 'rechnend' nach 'bereit'

Rund um die Prozessbegriffe

Kontextwechsel

Prozesserzeugung unter Unix/Linux

Prozesskontrollblock

Alle Prozesskontrollblöcke

Prozess und Thread

Scheduler und Dispatcher

Scheduling-Ziele

Scheduling

SJF und FCFS

RR und FCFS

(Non-) preemptive

Preemptive oder non-preemptive

Scheduling für P1 bis P5

Scheduling mit Priorität

Kritischer Abschnitt

Aktives Warten mit while

Nachteil des aktiven Wartens

TSL

Aufgabe des TSL-Befehls

Problemlöser TSL

Semaphor

Mutex

Arbeitsweise eines Mutex

Arbeitsweise eines Zählsemaphors

Aktiv wartender Semaphor?

Ein Abend an der Bar

Deadlock

Deadlock-Beispiel

Betriebsmittelgraph

Bedingungen nach Coffman

Auszahlung mit Limit

Swapping und Paging

Optimale Seitenersetzung

LRU und NRU

Arbeitsweise LRU

Arbeitsweise NRU

Spalten der Seitentabelle bei NRU

Umstände beim Seitenfehler

Auslagern bei NRU

Virtuelle Speicherverwaltung

Speicher und Seitentabellen

Geräte

Zusammenspiel

Aufgaben eines Treibers

Treiber-Hersteller

Gefährlicher Treiber

ISR und Registerinhalte

Block- vs. zeichenorientiert

Beispiele für block- und zeichenorientiert

Zusammenspiel

CRUD

Dateisysteme

FAT

NTFS

Arbeiten mit der FAT