MindMap to Cheatsheet

This commit is contained in:
WieErWill 2021-02-09 14:29:13 +01:00
parent e651fa6abd
commit 4356e4d6e0
3 changed files with 286 additions and 287 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -1,4 +1,4 @@
\documentclass[a4pape]{article} \documentclass[a4paper]{article}
\usepackage[ngerman]{babel} \usepackage[ngerman]{babel}
\usepackage{multicol} \usepackage{multicol}
\usepackage{calc} \usepackage{calc}
@ -13,7 +13,8 @@
\usepackage{tikz} \usepackage{tikz}
\usepackage{pdflscape} \usepackage{pdflscape}
\usepackage{verbatim} \usepackage{verbatim}
\usetikzlibrary{mindmap} \usetikzlibrary{mindmap, arrows,shapes,positioning,shadows,trees}
\tikzstyle{every node}=[draw=black,thin,anchor=west, minimum height=2em]
\usepackage[hidelinks,pdfencoding=auto]{hyperref} \usepackage[hidelinks,pdfencoding=auto]{hyperref}
\pdfinfo{ \pdfinfo{
@ -106,9 +107,13 @@
\setlength{\multicolsep}{1pt} \setlength{\multicolsep}{1pt}
\setlength{\columnsep}{2pt} \setlength{\columnsep}{2pt}
\centering{
\includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Uebersicht.png}
}
\paragraph{Prozesse} \paragraph{Prozesse}
\begin{itemize*} \begin{itemize*}
\item Betriebssystem-Abstraktionen zur Ausführung von Programmen \item BS-Abstraktionen zur Ausführung von Programmen
\item Eigentümer von Ressourcen \item Eigentümer von Ressourcen
\item differenzierte Prozessmodelle: definieren konkrete Prozesseigenschaften \item differenzierte Prozessmodelle: definieren konkrete Prozesseigenschaften
\end{itemize*} \end{itemize*}
@ -116,11 +121,11 @@
\paragraph{Prozessmanagement} \paragraph{Prozessmanagement}
\begin{itemize*} \begin{itemize*}
\item Komponente eines Betriebssystems, die Prozessmodell dieses Betriebssystems implementiert \item Komponente eines Betriebssystems, die Prozessmodell dieses Betriebssystems implementiert
\item wichtige Aufgaben: Prozesserzeugung u. -beendigung (u. Scheduling) \item Aufgaben: Prozesserzeugung u. -beendigung (u. Scheduling)
\item wichtigste Datenstrukturen: Prozessdeskriptor, Prozessdeskriptortabelle \item Datenstrukturen: Prozessdeskriptor, -deskriptortabelle
\end{itemize*} \end{itemize*}
\paragraph{Prozessdeskriptor (PCB)} \paragraph{Prozessdeskriptor}
Buchführung über sämtliche zum Management eines Prozesses notwendigen Informationen Buchführung über sämtliche zum Management eines Prozesses notwendigen Informationen
\begin{itemize*} \begin{itemize*}
\item Prozessidentifikation \item Prozessidentifikation
@ -134,59 +139,48 @@
enthält: Prozessdeskriptoren aller momentan existierenden Prozesse enthält: Prozessdeskriptoren aller momentan existierenden Prozesse
\paragraph{Threads} \paragraph{Threads}
\begin{itemize*} BS-Abstraktionen für sequentielle, nebenläufige Aktivitäten; sind Gegenstand des Schedulings
\item Betriebssystem-Abstraktionen für sequentielle, nebenläufige Aktivitäten
\item sind Gegenstand des Schedulings
\end{itemize*}
\paragraph{Multithread-Prozessmodell} \paragraph{Multithread-Prozessmodell}
\begin{itemize*} vollständige Beschreibung einer ablaufenden Aktivität. Dazu gehören insbesondere
\item vollständige Beschreibung einer ablaufenden Aktivität \begin{enumerate*}
\item Dazu gehören insbesondere \item das ablaufende Programm
\begin{enumerate*} \item zugeordnete Betriebsmittel (Prozessor/Speicher/Kommunikation)
\item das ablaufende Programm \item Rechte
\item zugeordnete Betriebsmittel (Prozessor/Speicher/Kommunikation) \item prozessinterne parallele Aktivitäten (Threads) und deren Bearbeitungszustände
\item Rechte \end{enumerate*}
\item prozessinterne parallele Aktivitäten (Threads) und deren Bearbeitungszustände
\end{enumerate*}
\end{itemize*}
\paragraph{Threaddeskriptor (TCB)} \paragraph{Threaddeskriptor}
\begin{itemize*} ein TCB enthält lediglich:
\item ein TCB enthält lediglich: \begin{enumerate*}
\begin{enumerate*} \item Threadzustand (aktiv, bereit, blockiert, ...)
\item Threadzustand (aktiv, bereit, blockiert, ...) \item Ablaufkontext, falls nicht aktiv (Programmzähler, Stackpointer, Prozessorregister)
\item Ablaufkontext, falls nicht aktiv (Programmzähler, Stackpointer, Prozessorregister) \end{enumerate*}
\end{enumerate*} enthält nicht: Beschreibung der Ressourcen (Speicherlayout, Rechte)
\item enthält nicht: Beschreibung der Ressourcen (Speicherlayout, Rechte)
\end{itemize*}
\paragraph{Thread-Typen} \paragraph{Thread-Typen}
\begin{itemize*} \begin{itemize*}
\item Kernel Level Threads (KLTs): Kenntnis über Threads: hat Betriebssystem, genauer: der Betriebssystem-Kern(el) \item Kernel Level Threads (KLTs): Kenntnis über Threads: hat Betriebssystem, genauer: der Betriebssystem-Kern(el)
\item User Level Threads (ULTs): Kenntnis über Threads: existiert nur auf Benutzer-Ebene (user level) \item User Level Threads (ULTs): Kenntnis über Threads: existiert nur auf Benutzer-Ebene (user level)
\item das Betriebssystem [genauer: der Betriebssystem-Kern(el)] weiß nicht, dass Threads existieren \item der Betriebssystem-Kern(el) weiß nicht, dass Threads existieren
\end{itemize*} \end{itemize*}
\paragraph{Scheduling: Grundaufgabe} \paragraph{Scheduling}
Entscheidung: Welche Threads erhalten wann u. wie lange einen Prozessor/Prozessorkern zugeteilt? Entscheidung: Welche Threads erhalten wann und wie lange einen Prozessor/Prozessorkern zugeteilt?
\paragraph{Zustandsmodelle} \paragraph{Zustandsmodelle}
\begin{itemize*} Threads können verschiedene Zustände annehmen\\
\item Threads können verschiedene Zustände annehmen (Beispiel 3/5-Zustandsmodell) Beispiel 3/5-Zustandsmodell)
\item bereit, aktiv, blockiert, frisch, beendet
\end{itemize*}
\centering{ \centering{
\includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Zustandsmodell.png} \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Zustandsmodell.png}
} }
\paragraph{Scheduling: Notwendigkeit u. Sinn} \paragraph{Scheduling: Notwendigkeit u. Sinn}
\begin{itemize*} \begin{itemize*}
\item im Allgemeinen: Anzahl der Aktivitäten >> Anzahl der Prozessoren \item allg: Anzahl Aktivitäten $>>$ Anzahl Prozessoren
\item nicht alle können gleichzeitig arbeiten \item nicht alle können gleichzeitig arbeiten
\item eine Auswahl muss getroffen werden \item eine Auswahl muss getroffen werden
\item Auswahlstrategie: Schedulingstrategie, ~algorithmus \item Auswahlstrategie: Schedulingstrategie, -Algorithmus
\item die Betriebssystemkomponente: Scheduler
\end{itemize*} \end{itemize*}
\paragraph{Scheduling-Strategien} \paragraph{Scheduling-Strategien}
@ -198,43 +192,43 @@
\end{itemize*} \end{itemize*}
\item wichtige Strategien: \item wichtige Strategien:
\begin{itemize*} \begin{itemize*}
\item FCFS \item FCFS (First Come, First Served)
\item SRTN \item SRTN (Shortest Remaining Time Next)
\item Round Robin (ohne u. mit Prioritäten) \item Round Robin (ohne und mit Prioritäten)
\item EDF \item EDF (earliest deadline first)
\item ratenmonotones Scheduling \item ratenmonotones Scheduling
\end{itemize*} \end{itemize*}
\end{itemize*} \end{itemize*}
\paragraph{Privilegierungsebenen} \paragraph{Privilegierungsebenen}
\begin{itemize*} \begin{itemize*}
\item sind typischerweise "kernel mode" und "user mode" \item sind typischerweise 'kernel mode' und 'user mode'
\item steuern Rechte ... \item steuern Rechte
\begin{itemize*} \begin{itemize*}
\item zur Ausführung privilegierter Prozessorinstruktionen \item zur Ausführung privilegierter Prozessorinstruktionen
\item zur Konfiguration des Arbeitsspeicherlayouts \item zur Konfiguration des Arbeitsspeicherlayouts
\item zum Zugriff auf Arbeitsspeicherbereiche \item zum Zugriff auf Arbeitsspeicherbereiche
\item zum Zugriff auf E/A-Geräte \item zum Zugriff auf E/A-Geräte
\end{itemize*} \end{itemize*}
\item ermöglichen: Durchsetzung von Regeln: "Nur ein im 'kernel mode' ablaufender Prozess hat Zugriff auf ..." \item Durchsetzung von Regeln: "Nur ein im 'kernel mode' ablaufender Prozess hat Zugriff auf ..."
\end{itemize*} \end{itemize*}
\paragraph{Kommunikation u. Synchronisation} \paragraph{Kommunikation und Synchronisation}
\begin{itemize*} \begin{itemize*}
\item Austausch von Daten zwischen Prozessen = Kommunikation (Inter-Prozess-Kommunikation, IPC) \item Austausch von Daten zwischen Prozessen = Kommunikation (Inter-Prozess-Kommunikation, IPC)
\item Abweichende Geschwindigkeiten von Sender und Empfänger: behandelt durch Synchronisation \item Abweichende Geschwindigkeiten von Sender und Empfänger: behandelt durch Synchronisation
\end{itemize*} \end{itemize*}
\paragraph{kritischer Abschnitt und wechselseitiger Ausschluss} \paragraph{kritischer Abschnitt}
\begin{itemize*} \begin{itemize*}
\item in einem kritischen Abschnitt darf sich stets nur ein Thread aufhalten \item in kritischen Abschnitt darf stets nur ein Thread sein
\item notwendig: wechselseitiger (gegenseitiger) Ausschluss \item notwendig: wechselseitiger (gegenseitiger) Ausschluss
\item realisiert durch Entry- u. Exit-Code [z.B. die Semaphor-Operationen belegen (P) und freigeben (V)] \item realisiert durch Entry- und Exit-Code z.B. die Semaphor-Operationen belegen (P) und freigeben (V)
\end{itemize*} \end{itemize*}
\paragraph{Mechanismen zur Synchronisation} \paragraph{Mechanismen zur Synchronisation}
\begin{itemize*} \begin{itemize*}
\item Semaphore (binäre Semaphore u. mehrwertige Semaphore) (ansehen!) \item binäre Semaphore und mehrwertige Semaphore
\item (Hoarsche) Monitore \item (Hoarsche) Monitore
\end{itemize*} \end{itemize*}
@ -248,13 +242,13 @@
\paragraph{Notwendigkeit des Ereignismanagement} \paragraph{Notwendigkeit des Ereignismanagement}
\begin{itemize*} \begin{itemize*}
\item in Betriebssystemen laufen sehr viele Aktivitäten parallel ab \item in BS laufen sehr viele Aktivitäten parallel ab
\item dabei entstehen immer wieder Situationen, in denen auf unterschiedlichste Ereignisse reagiert werden muss, z.B. \item dabei entstehen immer wieder Situationen, in denen auf unterschiedlichste Ereignisse reagiert werden muss, z.B.
\begin{itemize*} \begin{itemize*}
\item Timerablauf \item Timerablauf
\item Benutzereingaben (Maus, Tastatur) \item Benutzereingaben (Maus, Tastatur)
\item Eintreffen von Daten von Netzwerken, Festplatten, ... \item Eintreffen von Daten von Netzwerken, Festplatten, ...
\item Einlegen/stecken von Datenträgern \item Einlegen/-stecken von Datenträgern
\item Aufruf von Systemdiensten \item Aufruf von Systemdiensten
\item Fehlersituationen \item Fehlersituationen
\end{itemize*} \end{itemize*}
@ -262,16 +256,16 @@
\paragraph{Umgangsformen mit Ereignissen} \paragraph{Umgangsformen mit Ereignissen}
\begin{itemize*} \begin{itemize*}
\item "busy waiting" \item 'busy waiting'
\item "periodic testing" \item 'periodic testing'
\item Unterbrechungen ("Interrupts") \item Unterbrechungen ('Interrupts')
\end{itemize*} \end{itemize*}
\paragraph{Programmiermodelle zum Umgang mit Interrupts} \paragraph{Programmiermodelle für Interrupts}
\begin{itemize*} \begin{itemize*}
\item Prozeduren ( inline Prozeduraufrufmodell) \item Prozeduren ($\rightarrow$ inline Prozeduraufrufmodell)
\item IPC-Operationen ( IPC-Modell) \item IPC-Operationen ($\rightarrow$ IPC-Modell)
\item Threads ( pop-up Thread Modell) \item Threads ($\rightarrow$ pop-up Thread Modell)
\end{itemize*} \end{itemize*}
\paragraph{Interrupts auf Anwendungsebene} \paragraph{Interrupts auf Anwendungsebene}
@ -295,21 +289,21 @@
\includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Seitentabelleneinträge.png} \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Seitentabelleneinträge.png}
} }
\begin{itemize*} \begin{itemize*}
\item anwesend:Indikator, ob Seite im Arbeitsspeicher liegt ("present"-Bit) \item anwesend: liegt Seite im Arbeitsspeicher? ('present'-Bit)
\item benutzt: Indikator, ob auf die Seite zugegriffen wurde ("used/referenced"-Bit) \item benutzt: wurde auf die Seite zugegriffen? ('used'-Bit)
\item verändert: Indikator, ob Seite "schmutzig" ist ("dirty/modified"-Bit) \item verändert: ist Seite 'schmutzig'? ('dirty/modified'-Bit)
\item Schutz: erlaubte Zugriffsart je Privilegierungsebene ("access control list") \item Schutz: erlaubte Zugriffsart je Privilegierungsebene ('access control list')
\item Caching: Indikator, ob Inhalt der Seite ge"cached" werden darf \item Caching: darf Inhalt der Seite gecached werden?
\end{itemize*} \end{itemize*}
\paragraph{Seitenaustauschalgorithmen} \paragraph{Seitenaustauschalgorithmen}
\begin{itemize*} \begin{itemize*}
\item Optimale Strategie: Auslagerung derjenigen Arbeitsspeicherseite, deren ... \item Optimal: Auslagern der Arbeitsspeicherseite, deren
\begin{itemize*} \begin{itemize*}
\item nächster Gebrauch am weitesten in der Zukunft liegt ("Hellseher") \item nächster Gebrauch am weitesten in der Zukunft liegt
\item Auslagerung nichts kostet (man müsste man wissen, ob eine Seite seit ihrer Einlagerung verändert wurde) \item Auslagerung nichts kostet
\end{itemize*} \end{itemize*}
\item im Folgenden: einige Algorithmen, die sich diesem Optimum annähern: \item einige Algorithmen, die sich diesem Optimum annähern:
\begin{itemize*} \begin{itemize*}
\item First-In, First-Out (FIFO) \item First-In, First-Out (FIFO)
\item Second-Chance \item Second-Chance
@ -319,33 +313,29 @@
\end{itemize*} \end{itemize*}
\paragraph{i-Node} \paragraph{i-Node}
i-Node: Metainformationen über genau eine Datei Metainformationen über genau eine Datei
\centering{ \centering{
\includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_i-Node.png} \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_i-Node.png}
} }
\paragraph{Verzeichnis} \paragraph{Verzeichnis}
Verzeichnis = Menge von Paaren (Name, i-Node-Index) = Menge von Paaren (Name, i-Node-Index)
\paragraph{Superblock} \paragraph{Superblock} = Einstiegspunkt eines Dateisystems. Enthält Schlüsselparameter:
\begin{itemize*} \begin{itemize*}
\item Superblock: Einstiegspunkt eines Dateisystems \item Name des Dateisystems
\item enthält: Schlüsselparameter \item Typ (NTFS, Ext * , HFS, ...) → Layout der Metadaten
\begin{itemize*} \item Größe und Anzahl Sektoren
\item Name des Dateisystems \item Ort und Größe der i-Node-Tabelle
\item Typ (NTFS, Ext * , HFS, ...) → Layout der Metadaten \item Ort und Größe der Freiliste
\item Größe und Anzahl Sektoren \item i-Node-Nummer des Wurzelverzeichnisses
\item Ort und Größe der i-Node-Tabelle
\item Ort und Größe der Freiliste
\item i-Node-Nummer des Wurzelverzeichnisses
\end{itemize*}
\end{itemize*} \end{itemize*}
\paragraph{Hardware-Prinzipien} \paragraph{Hardware-Prinzipien}
\begin{itemize*} \begin{itemize*}
\item\item Controller-Register \item Controller-Register
\begin{itemize*} \begin{itemize*}
\item\item in E/A-Adressräumen \item in E/A-Adressräumen
\item im Arbeitsspeicher (Memory Mapped E/A) \item im Arbeitsspeicher (Memory Mapped E/A)
\item Isolation, Robustheit, Sicherheit \item Isolation, Robustheit, Sicherheit
\end{itemize*} \end{itemize*}
@ -355,7 +345,7 @@
\paragraph{Software-Prinzipien} \paragraph{Software-Prinzipien}
Gerätemanager (Treiber) Gerätemanager (Treiber)
\begin{itemize*} \begin{itemize*}
\item\item Auftragsmanagement \item Auftragsmanagement
\item ISRs \item ISRs
\end{itemize*} \end{itemize*}
@ -364,203 +354,242 @@
\includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Architekturen.png} \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Architekturen.png}
} }
\paragraph{Sicherheit} \paragraph{SELinux-Ansatz} neue Betriebssystem-Abstraktion
\begin{itemize*} \begin{itemize*}
\item\item Schutz des Betriebssystems \item absolute Kontrolle über kritische Funktionen des Betriebssystems
\item z.B. gegen Angriffe von außen \item spezifiziert durch Regelmenge
\item implementiert durch die SELinux-Sicherheitsarchitektur
\end{itemize*} \end{itemize*}
\paragraph{SELinux-Ansatz} \paragraph{Robustheit} Tolerierung unvorhergesehener Fehler und Ausfälle
\begin{itemize*} \begin{itemize*}
\item\item Sicherheitspolitiken in SELinux \item Mikrokernarchitekturen (Robuster als Makrokern)
\item neue Betriebssystem-Abstraktion \item Fehlerisolation
\begin{itemize*} \item Möglichkeiten zur Fehlerbehebung (z.B. Micro-Reboot)
\item\item absolute Kontrolle über kritische Funktionen des Betriebssystems
\item spezifiziert durch Regelmenge
\item implementiert durch die SELinux-Sicherheitsarchitektur
\end{itemize*}
\end{itemize*} \end{itemize*}
\paragraph{Robustheit} \paragraph{Funktionale Eigenschaften}
\begin{itemize*} \begin{itemize*}
\item Ziel: Tolerierung unvorhergesehener Fehler und Ausfälle \item Authentisierung, Verschlüsselung
\item Mikrokernarchitekturen: robuster als Makrokernarchitekturen \item Informations-management
\item Gründe: \item Kommunikations-management
\item Ressourcen-management
\end{itemize*}
\paragraph{Nichtfunktionale Eigenschaften}
\begin{itemize*}
\item Sicherheit
\item Korrektheit
\item Echtzeitfähigkeit
\item Skalierbarkeit
\item Offenheit
\item Sparsamkeit
\item Verfügbarkeit
\item Robustheit
\end{itemize*}
\paragraph{Betriebssysteme}
\begin{itemize*}
\item Mainframe
\begin{itemize*} \begin{itemize*}
\item\item Fehlerisolation \item performante E/A
\item Möglichkeiten zur Fehlerbehebung (z.B. Micro-Reboot) \item Massen-daten-verarbeitung
\end{itemize*} \end{itemize*}
\item Server (Web Server, Fileshare)
\item Parallelrechner
\begin{itemize*}
\item parallele Algorithmen, hoher Rechenbedarf
\item schnelle IPC
\end{itemize*}
\item Desktop/Laptop
\item Echtzeit
\item Eingebettete
\end{itemize*} \end{itemize*}
\end{multicols} \end{multicols}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Überblick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Überblick
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=black!10, \begin{tikzpicture}[
level 1/.append style={level distance=4cm}, topic/.style={
level 2/.append style={level distance=3cm, sibling angle=30}, minimum height=8mm,
every node/.append style={scale=0.8}] text depth = 0pt,
text centered,
\node{Betriebssysteme} text width=5cm,
child [concept color=red!30]{ node {Prozessor-management} level distance=1mm,
child { node {Prozess-erzeugung}} sibling distance=5mm,
child { node {Prozess-terminierung}} rounded corners=2pt},
child { node {Threads}} 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)}},
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},
level 1/.style={sibling distance=4cm},
level 1/.append style={level distance=3cm},
]
% Topic
\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 [concept color=green!30]{ node {Scheduling} child{ node [subtopic] {Scheduling}
child { node {Scheduler-aktivierung}} child[theme,level1]{ node {Scheduler-aktivierung}}
child { node {Scheduling Strategien}} child[theme,level2]{ node {Scheduling Strategien}}
} }
child [concept color=blue!30]{ node {Privilegierungs-ebenen}} child{ node [subtopic] {Privilegierungs-ebenen}}
child [concept color=yellow!30]{ node {Kommunikation und\\Synchronisation} child{ node [subtopic] {Kommunikation \& Synchronisation}
child { node {Elementare Konzepte}} child[theme,level1]{ node {Elementare Konzepte}}
child { node {wechselseitiger Ausschluss}} child[theme,level2]{ node {wechselseitiger Ausschluss}}
child { node {Mechanismen}} child[theme,level3]{ node {Mechanismen}}
} }
child [concept color=orange!30]{ node {Speicher-management} child{ node [subtopic] {Speicher-management}
child { node {Speicher-technologien}} child[theme,level1]{ node {Speicher-technologien}}
child { node {Speicher-klassen}} child[theme,level2]{ node {Speicher-klassen}}
child { node {Relokation}} child[theme,level3]{ node {Relokation}}
child { node {Swapping}} child[theme,level4]{ node {Swapping}}
child { node {Virtueller Speicher}} child[theme,level5]{ node {Virtueller Speicher}}
child { node {Segmentierung}} child[theme,level6]{ node {Segmentierung}}
} }
child [concept color=lime!30]{ node {Dateisystem} child{ node [subtopic] {Dateisystem}
child { node {Dateimodelle}} child[theme,level1]{ node {Dateimodelle}}
child { node {Dateisysteme}} child[theme,level2]{ node {Dateisysteme}}
child { node {Datenstrukturen \& Algorithmen}} child[theme,level3]{ node {Datenstrukturen \& Algorithmen}}
}; };
\end{tikzpicture} \end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Grundbegriffe
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=black!40,
level 1/.append style={level distance=4cm, sibling angle=120},
level 2/.append style={level distance=3cm, sibling angle=30},
every node/.append style={scale=0.8}]
\node{Grundbegriffe}
child[concept color=red!30]{node{Funktionale Eigenschaften}
child{node{Authentisierung, Verschlüsselung}}
child{node{Informations-management}}
child{node{Kommunikations-management}}
child{node{Ressourcen-management}}
}
child[concept color=green!30]{node{Nichtfunktionale Eigenschaften}
child{node{Sicherheit}}
child{node{Korrektheit}}
child{node{Echtzeitfähigkeit}}
child{node{Skalierbarkeit}}
child{node{Offenheit}}
child{node{Sparsamkeit}}
child{node{Verfügbarkeit}}
child{node{Robustheit}}
}
child[concept color=blue!30]{node{Betriebssysteme}
child{ node {Mainframe}
child{ node {performante E/A}}
child{ node {Massen-daten-verarbeitung}}
}
child{ node {Server}
child{ node {Web Server, Fileshare}}
}
child{ node {Parallelrechner}
child{ node {parallele Algorithmen, hoher Rechenbedarf}}
child{ node {schnelle IPC}}
}
child{ node {Desktop/Laptop}
child{ node {Interaktivität \& Responsivität}}
}
child{ node {Echtzeit}
child{ node {Einhaltung zeitlicher Garantien}}
child{ node {Fahrzeug-, Anlagensteuerung}}
}
child{ node {Eingebettete}
child{ node {Controller, Kaffeemaschinen,...}}
}
}
;
\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Prozessormanagement %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Prozessormanagement
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=red!40, \begin{tikzpicture}[
level 1/.append style={level distance=4cm, sibling angle=90}, topic/.style={
level 2/.append style={level distance=3cm, sibling angle=35}, text centered,
every node/.append style={scale=0.8}] text width=5cm,
\node{Prozessor-management} level distance=1mm,
child[concept color=blue!30] { node {Prozess-erzeugung} sibling distance=5mm,
child { node {Vorraussetzungen} rounded corners=2pt
child { node {Rechte}} },
child{ node {Ressourcen Verfügbar}} subtopic/.style={
child{ node {Sicherheit}} yshift=1.5cm,
child{ node{Fariness}} text centered,
child{node{Robustheit / Überlastungsvermeidung}} 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},
]
% Topic
\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{ node [subtopic] {Prozesserzeugung}
child[theme,level1]{ 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}}
child[description,level distance=4cm]{ node{Fariness}}
child[description,level distance=5cm]{node{Robustheit / Überlastvermeidung}}
} }
child { node {Namens-vergabe} child [theme,level distance=7cm]{ node {Namens-vergabe}
child{node{eindeutig bzgl allen existierenden}} child[description,level distance=1cm]{node{eindeutig bzgl allen existierenden}}
child{node{nicht eindeutig bzgl allen}} child[description,level distance=2cm]{node{nicht eindeutig bzgl allen}}
} }
child { node {Stammbaum-pflege} child [theme,level distance=10cm]{ node {Stammbaumpflege}
child{node{erzeugt Kinder}} child[description,level distance=1cm]{node{erzeugt Kinder}}
child{node{baumartige Hierarchie}} child[description,level distance=2cm]{node{baumartige Hierarchie}}
child{node{Verwaiste Prozesse -> Adoption}} child[description,level distance=3cm]{node{Verwaiste Prozesse $->$ Adoption}}
} }
child { node {Allokation (von Ressourcen)} child [theme,level distance=14cm]{ node {Allokation (von Ressourcen)}
child{node{Arbeits-speicher} child[description,level distance=1cm]{node{Arbeits-speicher Größe}}
child{node{Größe}} child[description,level distance=2cm]{node{Zeitpunkt}}
child{node{Zeitpunkt}} child[description,level distance=3cm]{node{Prozessorzeit}}
} child[description,level distance=4cm]{node{Format}}
child{node{Prozessorzeit}}
child{node{Format}
child{node{a.out (ehem UNIX)}}
child{node{Mach Object (iOS)}}
child{node{Executeable and Link(age/able) (Linux)}}
}
} }
} }
child[concept color=red!30] { node {Prozess Management} child{ node [subtopic] {Prozessterminierung}
child{node{Prozess-identifikation}} child[theme,level distance=1cm]{node{durch}
child{node{Scheduling}} child[description,level distance=1cm]{node{Aufgabe erledigt}}
child{node{Ereignis-management}} child[description,level distance=2cm]{node{Fehler aufgetreten}}
child{node{Rechte-management}} child[description,level distance=3cm]{node{durch Nutzer geschlossen}}
child{node{Speicher-management}}
child{node{Prozessor-management}}
child{node{Kommu-nikations-management}}
child{node{Virtueller Adressraum}}
child{node{allg Ressourcen Management}}
}
child[concept color=green!30] { node {Prozess-terminierung}
child{node{durch}
child{node{Aufgabe erledigt}}
child{node{Fehler aufgetreten}}
child{node{durch Nutzer geschlossen}}
} }
child{node{Folgen} child[theme,level distance=5cm]{node{Folgen}
child{node{Freigabe der Ressourcen}} child[description,level distance=1cm]{node{Freigabe der Ressourcen}}
child{node{Benachrichtigung der "Parents"}} child[description,level distance=2cm]{node{Benachrichtigung der 'Parents'}}
child{node{Adoption der "Children"}} child[description,level distance=3cm]{node{Adoption der 'Children'}}
} }
} }
child[concept color=yellow!30] { node {Threads} child{ node [subtopic] {Threads}
child{node{sequenziell innerhalb eines Prozesses}} child[theme,level distance=1cm]{node{sequenziell innerhalb eines Prozesses}}
child{node{Kernel Level Thread} child[theme,level distance=3cm]{node{Kernel Level Thread}
child{node{Implementiert im Betriebssystem}} child[description,level distance=1cm]{node{Implementiert im Betriebssystem}}
child{node{Betriebssystem hat Kenntnis über Thread}} child[description,level distance=2cm]{node{Betriebssystem hat Kenntnis über Thread}}
child{node{Multi-Thread-modell}} child[description,level distance=3cm]{node{Multi-Thread-modell}}
child{node{Performance durch Parallelität}} child[description,level distance=4cm]{node{Performance durch Parallelität}}
child{node{Nutzung von Mehrkern-architektur}} child[description,level distance=5cm]{node{Nutzung von Mehrkern-architektur}}
} }
child{node{User Level Thread} child[theme,level distance=10cm]{node{User Level Thread}
child{node{Implementiert auf Anwendungsebene}} child[description,level distance=1cm]{node{Implementiert auf Anwendungsebene}}
child{node{Kenntnis nur bei Endbenutzer}} child[description,level distance=2cm]{node{Kenntnis nur bei Endbenutzer}}
child{node{Single-Thread-Modell}} child[description,level distance=3cm]{node{Single-Thread-Modell}}
child{node{Performance durch geringen Overhead}} child[description,level distance=4cm]{node{Performance durch geringen Overhead}}
child{node{management ohne systemaufrufe}} child[description,level distance=5cm]{node{management ohne systemaufrufe}}
child{node{Individualität}} child[description,level distance=6cm]{node{Individualität}}
child{node{Portabilität}} child[description,level distance=7cm]{node{Portabilität}}
} }
}; };
\end{tikzpicture} \end{tikzpicture}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Scheduling %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Scheduling
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=green!40, \begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=green!40,
level 1/.append style={level distance=4cm}, level 1/.append style={level distance=4cm},
@ -755,52 +784,22 @@
level 1/.append style={level distance=4cm}, level 1/.append style={level distance=4cm},
level 2/.append style={level distance=3cm, sibling angle=30}, level 2/.append style={level distance=3cm, sibling angle=30},
every node/.append style={scale=0.8}] every node/.append style={scale=0.8}]
\node{Speichermanagement} \node{Virtueller Speicher}
child { node {Speichertechnologien }} child { node {Virtuelles Speichermanagement}}
child { node {Speicherklassen}} child { node {Begriffe}}
child { node {Relokation}} child { node {Abbildung}}
child { node {Swapping}} child { node {Memory Management Units}}
child { node {Virtueller Speicher} child { node {Seiten-abbildungs-tabellen}}
child { node {Virtuelles Speichermanagement}} child { node {Seitenaustausch-Algorithmen}
child { node {Begriffe}} child { node {FIFO}}
child { node {Abbildung}} child { node {Second Chance}}
child { node {Memory Management Units}} child { node {Least Recently Used}}
child { node {Seiten-abbildungs-tabellen}} child { node {Working Set}}
child { node {Seitenaustausch-Algorithmen} child { node {WSClock}}
child { node {FIFO}}
child { node {Second Chance}}
child { node {Least Recently Used}}
child { node {Working Set}}
child { node {WSClock}}
}
} }
child { node {Segmentierung}}
; ;
\end{tikzpicture} \end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Dateisystem
\begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=lime!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{Dateisystem}
child { node {Dateimodelle}
child { node {Abstraktion Datei}}
child { node {symbolischer Namen}}
child { node {Datei-Attribute}}
child { node {Operationen auf Dateien}}
}
child { node {Dateisysteme}
child { node {Speichermedien}}
child { node {Management-Datenstrukturen}
child { node {Verzeichnisse}}
child { node {Freiliste}}
child { node {Superblock}}
}
}
child { node {Datenstrukturen u. Algorithmen}}
;
\end{tikzpicture}
\end{document} \end{document}