Graphen übersichtlicher dargestellt
This commit is contained in:
parent
dbb88d782f
commit
492aaea311
Binary file not shown.
@ -85,6 +85,40 @@
|
||||
%My Environments
|
||||
\newtheorem{example}[section]{Example}
|
||||
|
||||
%Tikz global setting
|
||||
\tikzset{
|
||||
topic/.style={
|
||||
text centered,
|
||||
text width=5cm,
|
||||
level distance=1mm,
|
||||
sibling distance=5mm,
|
||||
rounded corners=2pt
|
||||
},
|
||||
subtopic/.style={
|
||||
yshift=1.5cm,
|
||||
text centered,
|
||||
text width=3cm,
|
||||
rounded corners=2pt,
|
||||
fill=gray!10
|
||||
},
|
||||
theme/.style={
|
||||
grow=down,
|
||||
xshift=-0.6cm,
|
||||
text centered,
|
||||
text width=3cm,
|
||||
edge from parent path={(\tikzparentnode.205) |- (\tikzchildnode.west)}
|
||||
},
|
||||
description/.style={
|
||||
grow=down,
|
||||
xshift=-0.5cm,
|
||||
right,
|
||||
text centered,
|
||||
edge from parent path={(\tikzparentnode.200) |- (\tikzchildnode.west)}
|
||||
},
|
||||
level 1/.style={sibling distance=5.5cm},
|
||||
level 1/.append style={level distance=2.5cm},
|
||||
}
|
||||
|
||||
% Turn off header and footer
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
@ -437,75 +471,38 @@
|
||||
\node[topic]{Betriebssysteme}
|
||||
% Subtopic and Themes
|
||||
child{ node [subtopic] {Prozessor-management}
|
||||
child[theme,level1]{ node {Prozesserzeugung}}
|
||||
child[theme,level2]{ node {Prozess-terminierung}}
|
||||
child[theme,level3]{ node {Threads}}
|
||||
child[theme,level distance=1cm]{ node {Prozesserzeugung}}
|
||||
child[theme,level distance=2cm]{ node {Prozess-terminierung}}
|
||||
child[theme,level distance=3cm]{ node {Threads}}
|
||||
}
|
||||
child{ node [subtopic] {Scheduling}
|
||||
child[theme,level1]{ node {Scheduler-aktivierung}}
|
||||
child[theme,level2]{ node {Scheduling Strategien}}
|
||||
child[theme,level distance=1cm]{ node {Scheduler-aktivierung}}
|
||||
child[theme,level distance=2cm]{ node {Scheduling Strategien}}
|
||||
}
|
||||
child{ node [subtopic] {Privilegierungs-ebenen}}
|
||||
child{ node [subtopic] {Kommunikation \& Synchronisation}
|
||||
child[theme,level1]{ node {Elementare Konzepte}}
|
||||
child[theme,level2]{ node {wechselseitiger Ausschluss}}
|
||||
child[theme,level3]{ node {Mechanismen}}
|
||||
child[theme,level distance=1cm]{ node {Elementare Konzepte}}
|
||||
child[theme,level distance=2cm]{ node {wechselseitiger Ausschluss}}
|
||||
child[theme,level distance=3cm]{ node {Mechanismen}}
|
||||
}
|
||||
child{ node [subtopic] {Speicher-management}
|
||||
child[theme,level1]{ node {Speicher-technologien}}
|
||||
child[theme,level2]{ node {Speicher-klassen}}
|
||||
child[theme,level3]{ node {Relokation}}
|
||||
child[theme,level4]{ node {Swapping}}
|
||||
child[theme,level5]{ node {Virtueller Speicher}}
|
||||
child[theme,level6]{ node {Segmentierung}}
|
||||
child[theme,level distance=1cm]{ node {Speicher-technologien}}
|
||||
child[theme,level distance=2cm]{ node {Speicher-klassen}}
|
||||
child[theme,level distance=3cm]{ node {Relokation}}
|
||||
child[theme,level distance=4cm]{ node {Swapping}}
|
||||
child[theme,level distance=5cm]{ node {Virtueller Speicher}}
|
||||
child[theme,level distance=6cm]{ node {Segmentierung}}
|
||||
}
|
||||
child{ node [subtopic] {Dateisystem}
|
||||
child[theme,level1]{ node {Dateimodelle}}
|
||||
child[theme,level2]{ node {Dateisysteme}}
|
||||
child[theme,level3]{ node {Datenstrukturen \& Algorithmen}}
|
||||
child[theme,level distance=1cm]{ node {Dateimodelle}}
|
||||
child[theme,level distance=2cm]{ node {Dateisysteme}}
|
||||
child[theme,level distance=3cm]{ node {Datenstrukturen \& Algorithmen}}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Prozessormanagement
|
||||
\begin{tikzpicture}[
|
||||
topic/.style={
|
||||
text centered,
|
||||
text width=5cm,
|
||||
level distance=1mm,
|
||||
sibling distance=5mm,
|
||||
rounded corners=2pt
|
||||
},
|
||||
subtopic/.style={
|
||||
yshift=1.5cm,
|
||||
text centered,
|
||||
text width=3cm,
|
||||
rounded corners=2pt,
|
||||
fill=gray!10
|
||||
},
|
||||
theme/.style={
|
||||
grow=down,
|
||||
xshift=-0.6cm,
|
||||
text centered,
|
||||
text width=3cm,
|
||||
edge from parent path={(\tikzparentnode.205) |- (\tikzchildnode.west)}
|
||||
},
|
||||
description/.style={
|
||||
grow=down,
|
||||
xshift=-0.5cm,
|
||||
right,
|
||||
text centered,
|
||||
edge from parent path={(\tikzparentnode.200) |- (\tikzchildnode.west)}
|
||||
},
|
||||
level1/.style ={level distance=1cm},
|
||||
level2/.style ={level distance=2cm},
|
||||
level3/.style ={level distance=3cm},
|
||||
level4/.style ={level distance=4cm},
|
||||
level5/.style ={level distance=5cm},
|
||||
level6/.style ={level distance=6cm},
|
||||
level7/.style ={level distance=7cm},
|
||||
level8/.style ={level distance=8cm},
|
||||
level9/.style ={level distance=9cm},
|
||||
level 1/.style={sibling distance=5.5cm},
|
||||
level 1/.append style={level distance=2.5cm},
|
||||
]
|
||||
@ -513,18 +510,18 @@
|
||||
\node[topic]{Prozessormanagement}
|
||||
% Subtopic and Themes
|
||||
child{ node [subtopic] {Aufgaben}
|
||||
child[theme, level1]{node{Prozess-identifikation}}
|
||||
child[theme, level2]{node{Scheduling}}
|
||||
child[theme, level3]{node{Ereignis-management}}
|
||||
child[theme, level4]{node{Rechte-management}}
|
||||
child[theme, level5]{node{Speicher-management}}
|
||||
child[theme, level6]{node{Prozessor-management}}
|
||||
child[theme, level7]{node{Kommunikations-management}}
|
||||
child[theme, level8]{node{Virtueller Adressraum}}
|
||||
child[theme, level9]{node{allg Ressourcen Management}}
|
||||
child[theme,level distance=1cm]{node{Prozess-identifikation}}
|
||||
child[theme,level distance=2cm]{node{Scheduling}}
|
||||
child[theme,level distance=3cm]{node{Ereignis-management}}
|
||||
child[theme,level distance=4cm]{node{Rechte-management}}
|
||||
child[theme,level distance=5cm]{node{Speicher-management}}
|
||||
child[theme,level distance=6cm]{node{Prozessor-management}}
|
||||
child[theme,level distance=7cm]{node{Kommunikations-management}}
|
||||
child[theme,level distance=8cm]{node{Virtueller Adressraum}}
|
||||
child[theme,level distance=9cm]{node{allg Ressourcen Management}}
|
||||
}
|
||||
child{ node [subtopic] {Prozesserzeugung}
|
||||
child[theme,level1]{ node {Vorraussetzungen}
|
||||
child[theme,level distance=1cm]{ node {Vorraussetzungen}
|
||||
child[description,level distance=1cm]{ node {Rechte}}
|
||||
child[description,level distance=2cm]{ node {Ressourcen Verfügbar}}
|
||||
child[description,level distance=3cm]{ node {Sicherheit}}
|
||||
@ -580,218 +577,204 @@
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
\end{document}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Scheduling
|
||||
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=green!40,
|
||||
level 1/.append style={level distance=4cm},
|
||||
level 2/.append style={level distance=3cm, sibling angle=30},
|
||||
every node/.append style={scale=0.8}]
|
||||
\node{Scheduling}
|
||||
child { node {Aktivierung}
|
||||
child{node{Threadzustände im 3/5 Modell}
|
||||
child{node{bereit: kann aktiv werden}}
|
||||
child{node{aktiv: arbeitet}}
|
||||
child{node{blockiert: wartet auf Ereignis}}
|
||||
child{node{frisch: erzeugt, Rechte fehlen}}
|
||||
child{node{beendet: in Freigabephase}}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Scheduling
|
||||
\begin{tikzpicture}[
|
||||
level 1/.style={sibling distance=4.6cm},
|
||||
level 1/.append style={level distance=3cm},
|
||||
]
|
||||
% Topic
|
||||
\node[topic]{Scheduling}
|
||||
% Subtopic and Themes
|
||||
child{ node [subtopic] {Aktivierung}
|
||||
child[theme,level distance=1cm]{node{Threadzustände im 3/5 Modell}
|
||||
child[description,level distance=1cm]{node{bereit: kann aktiv werden}}
|
||||
child[description,level distance=2cm]{node{aktiv: arbeitet}}
|
||||
child[description,level distance=3cm]{node{blockiert: wartet auf Ereignis}}
|
||||
child[description,level distance=4cm]{node{frisch: erzeugt, Rechte fehlen}}
|
||||
child[description,level distance=5cm]{node{beendet: in Freigabephase}}
|
||||
}
|
||||
child{node{Entscheidung Überprüfen bei}
|
||||
child{node{Prozess/Thread Erzeugung/Terminierung}}
|
||||
child{node{Ereignis eintritt}}
|
||||
child{node{Wechsel von Prioritäten}}
|
||||
child{node{periodisch}}
|
||||
child[theme,level distance=7cm]{node{Entscheidung Überprüfen bei}
|
||||
child[description,level distance=1.5cm]{node{Prozess/Thread Erzeugung/Terminierung}}
|
||||
child[description,level distance=3cm]{node{Ereignis eintritt}}
|
||||
child[description,level distance=4cm]{node{Wechsel von Prioritäten}}
|
||||
child[description,level distance=5cm]{node{periodisch}}
|
||||
}
|
||||
}
|
||||
child{node{Ziele}
|
||||
child{node{abhängig von Einsatz des Betriebssystems}}
|
||||
child{node{ergänzt durch allg Ziele}}
|
||||
child{node{Einhaltung von Fristen}}
|
||||
child{node{Minimieren der Thread/Prozess-wechsel}}
|
||||
child{node[subtopic]{Ziele}
|
||||
child[theme,level distance=1cm]{node{abhängig von Einsatz des Betriebssystems}}
|
||||
child[theme,level distance=2.5cm]{node{ergänzt durch allg Ziele}}
|
||||
child[theme,level distance=3.5cm]{node{Einhaltung von Fristen}}
|
||||
child[theme,level distance=5cm]{node{Minimieren der Thread/Prozess-wechsel}}
|
||||
}
|
||||
child { node {Scheduling Strategien}
|
||||
child { node {Batch-System}
|
||||
child{node{Auslastung teurer Betriebsmittel (CPU)}}
|
||||
child{node{Minimierung der Scheduling Kosten (wenig Wechsel, kurze Laufzeiten)}}
|
||||
child{node{Maximierung des Durchsatzes (erledigte Arbeit/Zeit)}}
|
||||
child{node{First Come First Served}
|
||||
child{node{in Reihenfolge der rechenbereiten}}
|
||||
child{node{sehr einfach, guter durchsatz}}
|
||||
child{node{nicht immer klug}}
|
||||
}
|
||||
child{node{Shortest Remaining Time Next}
|
||||
child{node{Thread mit vorr. kürzester Restrechenzeit}}
|
||||
child{node{preemtiv; konkurrrierende Threads verdrängen}}
|
||||
child{node{Restlaufzeit muss vorliegen}}
|
||||
}
|
||||
child { node [subtopic]{Batch-System}
|
||||
child[theme,level distance=1cm]{node{Auslastung teurer Betriebsmittel (CPU)}}
|
||||
child[theme,level distance=3cm]{node{Minimierung der Scheduling Kosten (wenig Wechsel, kurze Laufzeiten)}}
|
||||
child[theme,level distance=5cm]{node{Maximierung des Durchsatzes (erledigte Arbeit/Zeit)}}
|
||||
child[theme,level distance=6.5cm]{node{First Come First Served}
|
||||
child[description,level distance=1cm]{node{in Reihenfolge der rechenbereiten}}
|
||||
child[description,level distance=2cm]{node{sehr einfach, guter durchsatz}}
|
||||
child[description,level distance=3cm]{node{nicht immer klug}}
|
||||
}
|
||||
child { node {Interaktives System}
|
||||
child{node{Benutzer kann eingreifen}}
|
||||
child{node{Minimierung von Reaktionszeiten}}
|
||||
child{node{Fairness (mehrere Benutzer)}}
|
||||
child{node{Round Robin Varianten}
|
||||
child{node{jeder Thread gleicher Teil der Zeitscheibe}}
|
||||
child{node{einfach zu implementieren}}
|
||||
child{node{geringe Algorithmuskosten}}
|
||||
child{node{schnelle Entscheidungen}}
|
||||
child{node{geringes Wissen notwendig}}
|
||||
}
|
||||
child[theme,level distance=10cm]{node{Shortest Remaining Time Next}
|
||||
child[description,level distance=1cm]{node{Thread mit vorr. kürzester Restrechenzeit}}
|
||||
child[description,level distance=2.5cm]{node{preemtiv; konkurrrierende Threads verdrängen}}
|
||||
child[description,level distance=4cm]{node{Restlaufzeit muss vorliegen}}
|
||||
}
|
||||
}
|
||||
child{node{Prioritäten}
|
||||
child{node{jeder Thread erhält indv. Priorität}}
|
||||
child{node{höchste Prioritäten erhalten Prozessor}}
|
||||
child{node{gleiche Priorität: Round Robin}}
|
||||
}
|
||||
child{node{in Echtzeitsystemen}
|
||||
child{node{EDF: earliest deadline first}
|
||||
child{node{dynamische Lasten; adaptiv}}
|
||||
child{node{Threads nennen Deadline/Frist}}
|
||||
child{node{kausale und zeitliche Unabhängigkeit}}
|
||||
child{node{Priorität setzt kürzere Fristen}}
|
||||
child { node [subtopic]{Interaktives System}
|
||||
child[theme,level distance=1cm]{node{Benutzer kann eingreifen}}
|
||||
child[theme,level distance=2cm]{node{Minimierung von Reaktionszeiten}}
|
||||
child[theme,level distance=3cm]{node{Fairness (mehrere Benutzer)}}
|
||||
child[theme,level distance=4cm]{node{Round Robin Varianten}
|
||||
child[description,level distance=1cm]{node{jeder Thread gleicher Teil der Zeitscheibe}}
|
||||
child[description,level distance=2.5cm]{node{einfach zu implementieren}}
|
||||
child[description,level distance=3.5cm]{node{geringe Algorithmuskosten}}
|
||||
child[description,level distance=4.5cm]{node{schnelle Entscheidungen}}
|
||||
child[description,level distance=5.5cm]{node{geringes Wissen notwendig}}
|
||||
}
|
||||
child{node{RMS: rate-monotonic scheduling}
|
||||
child{node{periodische Lasten}}
|
||||
child{node{Threads nennen Periodendauer}}
|
||||
child{node{kürzeste Periodendauer aktiv}}
|
||||
child{node{statische Prioritäten}}
|
||||
}
|
||||
child{node[subtopic]{Prioritäten}
|
||||
child[theme,level distance=1cm]{node{jeder Thread erhält indv. Priorität}}
|
||||
child[theme,level distance=2.5cm]{node{höchste Prioritäten erhalten Prozessor}}
|
||||
child[theme,level distance=4cm]{node{gleiche Priorität: Round Robin}}
|
||||
}
|
||||
child{node[subtopic]{in Echtzeitsystemen}
|
||||
child[theme,level distance=1cm]{node{EDF: earliest deadline first}
|
||||
child[description,level distance=1cm]{node{dynamische Lasten; adaptiv}}
|
||||
child[description,level distance=2cm]{node{Threads nennen Deadline/Frist}}
|
||||
child[description,level distance=3cm]{node{kausale und zeitliche Unabhängigkeit}}
|
||||
child[description,level distance=4cm]{node{Priorität setzt kürzere Fristen}}
|
||||
}
|
||||
child[theme,level distance=7cm]{node{RMS: rate-monotonic scheduling}
|
||||
child[description,level distance=1cm]{node{periodische Lasten}}
|
||||
child[description,level distance=2cm]{node{Threads nennen Periodendauer}}
|
||||
child[description,level distance=3cm]{node{kürzeste Periodendauer aktiv}}
|
||||
child[description,level distance=4cm]{node{statische Prioritäten}}
|
||||
}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Privilegierungsebenen
|
||||
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=blue!40,
|
||||
level 1/.append style={level distance=4cm},
|
||||
level 2/.append style={level distance=3cm, sibling angle=30},
|
||||
every node/.append style={scale=0.8}]
|
||||
\node{Privilegierungsebenen}
|
||||
child{node{Konzepte}
|
||||
child{node{private Adressräume}}
|
||||
child{node{Zugriffsschutz auf Arbeitsspeicherbereiche}}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Privilegierungsebenen
|
||||
\begin{tikzpicture}[
|
||||
level 1/.style={sibling distance=5cm},
|
||||
level 1/.append style={level distance=3cm},
|
||||
]
|
||||
% Topic
|
||||
\node[topic]{Privilegierungsebenen}
|
||||
% Subtopic and Themes
|
||||
child{node[subtopic]{Konzepte}
|
||||
child[theme,level distance=1cm]{node{private Adressräume}}
|
||||
child[theme,level distance=3cm]{node{Zugriffsschutz auf Arbeitsspeicherbereiche}}
|
||||
}
|
||||
child{node{kritische Operationen}
|
||||
child{node{Abschalten der Uhr}}
|
||||
child{node{Abschalten des Ereignismanagement}}
|
||||
child{node{Veränderung des Speicherlayouts}}
|
||||
child{node{Veränderng kritischer Prozessorkontrollregister}}
|
||||
child{node{Zugriff auf E/A Geräte}}
|
||||
child{node[subtopic]{kritische Operationen}
|
||||
child[theme,level distance=1cm]{node{Abschalten der Uhr}}
|
||||
child[theme,level distance=2cm]{node{Abschalten des Ereignismanagement}}
|
||||
child[theme,level distance=3cm]{node{Veränderung des Speicherlayouts}}
|
||||
child[theme,level distance=4.3cm]{node{Veränderng kritischer Prozessorkontrollregister}}
|
||||
child[theme,level distance=5.5cm]{node{Zugriff auf E/A Geräte}}
|
||||
}
|
||||
child{node{P. Ebenen}
|
||||
child{node{steuern Rechte}
|
||||
child{node{zur Ausführung privilegierter Prozessorinstruktionen}}
|
||||
child{node{zur Konfiguration des Arbeitsspeicher-Layouts}}
|
||||
child{node{zum Zugriff auf Arbeitsspeicherbereiche}}
|
||||
child{node{zum Zugriff auf E/A-Geräte}}
|
||||
child{node[subtopic]{P. Ebenen}
|
||||
child[theme,level distance=1cm]{node{steuern Rechte}
|
||||
child[description,level distance=1cm]{node{zur Ausführung privilegierter Prozessorinstruktionen}}
|
||||
child[description,level distance=2.5cm]{node{zur Konfiguration des Arbeitsspeicher-Layouts}}
|
||||
child[description,level distance=3.8cm]{node{zum Zugriff auf Arbeitsspeicherbereiche}}
|
||||
child[description,level distance=5cm]{node{zum Zugriff auf E/A-Geräte}}
|
||||
}
|
||||
child{node{realisiert in Ringen (0-3)}}
|
||||
child[theme,level distance=7cm]{node{realisiert in Ringen (0-3)}}
|
||||
}
|
||||
child{node{Implementierung}
|
||||
child{node{Hardware Unterstützung}}
|
||||
child{node{Teil "Current Privilege Level" (CPL)}}
|
||||
child{node{permantente Überwachung}}
|
||||
child{node{Änderung der CPL beschränken}}
|
||||
child{node[subtopic]{Implementierung}
|
||||
child[theme,level distance=1cm]{node{Hardware Unterstützung}}
|
||||
child[theme,level distance=3cm]{node{Teil "Current Privilege Level" (CPL)}}
|
||||
child[theme,level distance=5cm]{node{permantente Überwachung}}
|
||||
child[theme,level distance=7cm]{node{Änderung der CPL beschränken}}
|
||||
}
|
||||
child{node{Botschaften}
|
||||
child{node{P.E. < 3 ablaufende Aktivität hat Zugriff auf kritische Ressourcen}}
|
||||
child{node{P.E. 0 ablaufende Aktivität hat Zugriff auf}
|
||||
child{node{Ressourcen eines Prozessors}}
|
||||
child{node{MMU-Register zur Arbeitsspeicherkonfiguration}}
|
||||
child{node{Register der E/A-Peripherie}}
|
||||
child{node[subtopic]{Botschaften}
|
||||
child[theme,level distance=1.3cm]{node{P.E. $< 3$ ablaufende Aktivität hat Zugriff auf kritische Ressourcen}}
|
||||
child[theme,level distance=3cm]{node{P.E. 0 ablaufende Aktivität hat Zugriff auf}
|
||||
child[description,level distance=1cm]{node{Ressourcen eines Prozessors}}
|
||||
child[description,level distance=2.5cm]{node{MMU-Register zur Arbeitsspeicherkonfiguration}}
|
||||
child[description,level distance=4cm]{node{Register der E/A-Peripherie}}
|
||||
}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kommunikation und Synchronisation
|
||||
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=yellow!40,
|
||||
level 1/.append style={level distance=4cm},
|
||||
level 2/.append style={level distance=3cm, sibling angle=30},
|
||||
every node/.append style={scale=0.8}]
|
||||
\node{Kommunikation und \\Synchronisation}
|
||||
child { node {Elementare Konzepte}
|
||||
child{node{Ziel}
|
||||
child{node{nur 1 Thread darf zu einem Zeitpunkt mit best. Speicherbereich arbeiten}}
|
||||
child{node{erst nach beendigung, darf ein anderer Thread damit arbeiten}}
|
||||
}
|
||||
child{node{Austausch von Daten zwischen Prozessen $\rightarrow$ Kommunikation}}
|
||||
child{node{Abweichende Geschwindigkeiten von Sender und Empfänger $\rightarrow$ Synchronisation}}
|
||||
child{node{Eine Phase, in der ein Thread eine exklusive Operation auf einer Ressource ausführt, heißt kritischer Abschnitt.}}
|
||||
child{node{Kritische Abschnitte erfordern den wechselseitigen Ausschluss (die Isolation) konkurrierender Threads bzw. Prozesse.}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kommunikation und Synchronisation
|
||||
\begin{tikzpicture}[
|
||||
level 1/.style={sibling distance=5cm},
|
||||
level 1/.append style={level distance=3cm},
|
||||
]
|
||||
% Topic
|
||||
\node[topic]{Kommunikation und Synchronisation}
|
||||
% Subtopic and Themes
|
||||
child { node [subtopic]{Elementare Konzepte}
|
||||
child[theme,level distance=1.5cm]{node{nur 1 Thread pro Speicherbereich arbeiten}}
|
||||
child[theme,level distance=3cm]{node{Austausch von Daten zwischen Prozessen $\rightarrow$ Kommunikation}}
|
||||
child[theme,level distance=5cm]{node{Abweichende Geschwindigkeiten von Sender und Empfänger $\rightarrow$ Synchronisation}}
|
||||
child[theme,level distance=7.5cm]{node{Eine Phase, in der ein Thread eine exklusive Operation auf einer Ressource ausführt, heißt kritischer Abschnitt.}}
|
||||
child[theme,level distance=10cm]{node{Kritische Abschnitte erfordern den wechselseitigen Ausschluss (die Isolation) konkurrierender Threads bzw. Prozesse.}}
|
||||
}
|
||||
child { node {wechselseitiger Ausschluss}
|
||||
child{node{Korrektheit: in kritischen Abschnitt höchstens ein Thread}}
|
||||
child{node{Lebendigkeit: Falls ein Thread einen kritischen Abschnitt betreten möchte, dann betritt (irgendwann) ein Thread diesen Abschnitt.}}
|
||||
child{node{Verhungerungsfreiheit: Kein Thread wartet für immer vor einem kritischen Abschnitt}}
|
||||
child { node [subtopic]{wechselseitiger Ausschluss}
|
||||
child[theme,level distance=1.5cm]{node{Korrektheit: in kritischen Abschnitt höchstens ein Thread}}
|
||||
child[theme,level distance=4cm]{node{Lebendigkeit: Falls ein Thread einen kritischen Abschnitt betreten möchte, dann betritt (irgendwann) ein Thread diesen Abschnitt.}}
|
||||
child[theme,level distance=7.5cm]{node{Verhungerungs-freiheit: Kein Thread wartet für immer vor einem kritischen Abschnitt}}
|
||||
}
|
||||
child { node {Mechanismen}
|
||||
child { node {(binäre) Semaphore}
|
||||
child{node{2 Zustände: frei, belegt}}
|
||||
child{node{2 atomare Operationen}
|
||||
child{node{belegen: P}}
|
||||
child{node{freigeben: V}}
|
||||
}
|
||||
child{node{Sämtliche Nutzer dieses kritischen Abschnitts müssen diese semaphore verwenden}}
|
||||
child{node{Unterstützung durch Hardware: die TSL-Operation (TestAndSetLock)}}
|
||||
child{node{Implementierung im Ressourcenmanagement}}
|
||||
child{node{Mehrwertiger Semaphor (oder Zählsemaphor) mit mehreren Semaphoren; maximaler Sem-Wert = n, bestimmt maximale Anzahl von Threads, die gleichzeitig aktiv sein können}}
|
||||
}
|
||||
child { node {Hoare'sche Monitore}
|
||||
child{node{Zusammenfassen von Daten/Operationen/Zugriff zu abstrakten Datentyp}}
|
||||
child{node{Zugriff auf Daten über implizit synchronisierende Operation}}
|
||||
child{node{kritischer Abschnitt und Daten in durch Monitor geschütztem Bereich}}
|
||||
child{node{wechselseitiger Ausschluss}
|
||||
child{node{Türsteher an Eingang \& Ausgang}}
|
||||
child{node{Betreten nur mit Monitor Zustimmung}}
|
||||
child{node{falls Thread in Monitor aktiv, kein weiterer rein (P)}}
|
||||
child{node{falls Thread Monitor verlässt, Wartenden rein (V)}}
|
||||
child{node{Threads Verlassen statt Warten im Monitor}}
|
||||
}
|
||||
child{node{je Monitor eine Semaphor}}
|
||||
child{node{am Eingang eine P-Operation}}
|
||||
child{node{am Ausgang eine V-Operation}}
|
||||
}
|
||||
child { node[subtopic] {(binäre) Semaphore}
|
||||
child[theme,level distance=1cm]{node{2 Zustände: frei, belegt}}
|
||||
child[theme,level distance=2cm]{node{2 atomare Operationen P/V}}
|
||||
child[theme,level distance=3.5cm]{node{Sämtliche Nutzer dieses kritischen Abschnitts müssen diese semaphore verwenden}}
|
||||
child[theme,level distance=5cm]{node{Unterstützung durch Hardware: die TSL-Operation (TestAndSetLock)}}
|
||||
child[theme,level distance=6.5cm]{node{Implementierung im Ressourcenmanagement}}
|
||||
child[theme,level distance=9cm]{node{Mehrwertiger Semaphor: bestimmt maximale Anzahl von Threads, die gleichzeitig aktiv sein können}}
|
||||
}
|
||||
child { node {weitere}
|
||||
child { node {Trans-aktionaler Speicher}
|
||||
child{node{keine Sperre bei Ausschluss $\rightarrow$ Parallelität}}
|
||||
child{node{nach Operation untersuchen auf Fehler und Korrektur}}
|
||||
child{node{Kombination mit Transaktionen}}
|
||||
child { node [subtopic]{Hoare'sche Monitore}
|
||||
child[theme,level distance=1.5cm]{node{Zusammenfassen von Daten/Operationen/Zugriff zu abstrakten Datentyp}}
|
||||
child[theme,level distance=3.5cm]{node{Zugriff auf Daten über implizit synchronisierende Operation}}
|
||||
child[theme,level distance=5.3cm]{node{kritischer Abschnitt und Daten in durch Monitor geschütztem Bereich}}
|
||||
child[theme,level distance=6.8cm]{node{wechselseitiger Ausschluss}}
|
||||
child[theme,level distance=8cm]{node{je Monitor eine Semaphor}}
|
||||
child[theme,level distance=9cm]{node{am Eingang eine P-Operation}}
|
||||
child[theme,level distance=10cm]{node{am Ausgang eine V-Operation}}
|
||||
}
|
||||
child { node[subtopic] {weitere Mechanismen}
|
||||
child [theme,level distance=1cm]{ node {Trans-aktionaler Speicher}
|
||||
child[description,level distance=1cm]{node{keine Sperre bei Ausschluss $\rightarrow$ Parallelität}}
|
||||
child[description,level distance=2.5cm]{node{nach Operation untersuchen auf Fehler und Korrektur}}
|
||||
child[description,level distance=4cm]{node{Kombination mit Transaktionen}}
|
||||
}
|
||||
child { node {Botschaften}
|
||||
child{node{für Kommunikation zwischen}}
|
||||
child{node{Prozessen innerhalb eines Systems}}
|
||||
child{node{Anwendungsprozessen}}
|
||||
child{node{Senden/Empfangen von Botschaften}}
|
||||
child{node{Kommunikationsparadigma}}
|
||||
child [theme,level distance=6cm]{ node {Botschaften}
|
||||
child[description,level distance=1cm]{node{Komm. zw. Prozessen innerhalb eines Systems}}
|
||||
child[description,level distance=2cm]{node{Senden/Empfangen von Botschaften}}
|
||||
child[description,level distance=3cm]{node{Kommunikationsparadigma}}
|
||||
}
|
||||
child { node {Fernaufrufe (Remote Procedure Calls)}}
|
||||
child { node {System-aufrufe}}
|
||||
child { node {Ereignis-management}}
|
||||
child { node {IPC Modell}}
|
||||
child { node {pop-up-Thread-Modell}}
|
||||
child [theme,level distance=10cm]{ node {Fernaufrufe (Remote Procedure Calls)}}
|
||||
child [theme,level distance=11cm]{ node {System-aufrufe}}
|
||||
child [theme,level distance=12cm]{ node {Ereignis-management}}
|
||||
child [theme,level distance=13cm]{ node {IPC Modell}}
|
||||
child [theme,level distance=14cm]{ node {pop-up-Thread-Modell}}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Speichermanagement
|
||||
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=orange!40,
|
||||
level 1/.append style={level distance=4cm},
|
||||
level 2/.append style={level distance=3cm, sibling angle=30},
|
||||
every node/.append style={scale=0.8}]
|
||||
\node{Virtueller Speicher}
|
||||
child { node {Virtuelles Speichermanagement}}
|
||||
child { node {Begriffe}}
|
||||
child { node {Abbildung}}
|
||||
child { node {Memory Management Units}}
|
||||
child { node {Seiten-abbildungs-tabellen}}
|
||||
child { node {Seitenaustausch-Algorithmen}
|
||||
child { node {FIFO}}
|
||||
child { node {Second Chance}}
|
||||
child { node {Least Recently Used}}
|
||||
child { node {Working Set}}
|
||||
child { node {WSClock}}
|
||||
}
|
||||
;
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Speichermanagement
|
||||
\begin{tikzpicture}[
|
||||
level 1/.style={sibling distance=5cm},
|
||||
level 1/.append style={level distance=3cm},
|
||||
]
|
||||
% Topic
|
||||
\node[topic]{Virtueller Speicher}
|
||||
% Subtopic and Themes
|
||||
child { node [subtopic]{Virtuelles Speichermanagement}}
|
||||
child { node [subtopic]{Abbildung}}
|
||||
child { node [subtopic]{Memory Management Units}}
|
||||
child { node [subtopic]{Seiten-abbildungs-tabellen}}
|
||||
child { node [subtopic]{Seiten-austausch-Algorithmen}
|
||||
child [theme,level distance=1cm]{ node {FIFO}}
|
||||
child [theme,level distance=2cm]{ node {Second Chance}}
|
||||
child [theme,level distance=3cm]{ node {Least Recently Used}}
|
||||
child [theme,level distance=4cm]{ node {Working Set}}
|
||||
child [theme,level distance=5cm]{ node {WSClock}}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
|
||||
|
||||
\end{document}
|
Loading…
Reference in New Issue
Block a user