diff --git a/Betriebssysteme - Cheatsheet.pdf b/Betriebssysteme - Cheatsheet.pdf index 0a3816b..99634a7 100644 Binary files a/Betriebssysteme - Cheatsheet.pdf and b/Betriebssysteme - Cheatsheet.pdf differ diff --git a/Betriebssysteme - Cheatsheet.tex b/Betriebssysteme - Cheatsheet.tex index 7303025..3a90618 100644 --- a/Betriebssysteme - Cheatsheet.tex +++ b/Betriebssysteme - Cheatsheet.tex @@ -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} \ No newline at end of file