MindMap to Cheatsheet
This commit is contained in:
		
							parent
							
								
									e651fa6abd
								
							
						
					
					
						commit
						4356e4d6e0
					
				
							
								
								
									
										
											BIN
										
									
								
								Assets/Betriebssysteme_Uebersicht.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/Betriebssysteme_Uebersicht.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 104 KiB | 
										
											Binary file not shown.
										
									
								
							| @ -1,4 +1,4 @@ | ||||
| \documentclass[a4pape]{article} | ||||
| \documentclass[a4paper]{article} | ||||
| \usepackage[ngerman]{babel} | ||||
| \usepackage{multicol} | ||||
| \usepackage{calc} | ||||
| @ -13,7 +13,8 @@ | ||||
| \usepackage{tikz} | ||||
| \usepackage{pdflscape} | ||||
| \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} | ||||
| 
 | ||||
| \pdfinfo{ | ||||
| @ -106,9 +107,13 @@ | ||||
|   \setlength{\multicolsep}{1pt} | ||||
|   \setlength{\columnsep}{2pt} | ||||
| 
 | ||||
|   \centering{ | ||||
|     \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Uebersicht.png} | ||||
|   } | ||||
| 
 | ||||
|   \paragraph{Prozesse} | ||||
|   \begin{itemize*} | ||||
|     \item Betriebssystem-Abstraktionen zur Ausführung von Programmen | ||||
|     \item BS-Abstraktionen zur Ausführung von Programmen | ||||
|     \item Eigentümer von Ressourcen | ||||
|     \item differenzierte Prozessmodelle: definieren konkrete Prozesseigenschaften | ||||
|   \end{itemize*} | ||||
| @ -116,11 +121,11 @@ | ||||
|   \paragraph{Prozessmanagement} | ||||
|   \begin{itemize*} | ||||
|     \item Komponente eines Betriebssystems, die Prozessmodell dieses Betriebssystems implementiert | ||||
|     \item wichtige Aufgaben: Prozesserzeugung u. -beendigung (u. Scheduling) | ||||
|     \item wichtigste Datenstrukturen: Prozessdeskriptor, Prozessdeskriptortabelle | ||||
|     \item Aufgaben: Prozesserzeugung u. -beendigung (u. Scheduling) | ||||
|     \item Datenstrukturen: Prozessdeskriptor, -deskriptortabelle | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Prozessdeskriptor (PCB)} | ||||
|   \paragraph{Prozessdeskriptor} | ||||
|   Buchführung über sämtliche zum Management eines Prozesses notwendigen Informationen | ||||
|   \begin{itemize*} | ||||
|     \item Prozessidentifikation | ||||
| @ -134,59 +139,48 @@ | ||||
|   enthält: Prozessdeskriptoren aller momentan existierenden Prozesse | ||||
| 
 | ||||
|   \paragraph{Threads} | ||||
|   \begin{itemize*} | ||||
|     \item Betriebssystem-Abstraktionen für sequentielle, nebenläufige Aktivitäten | ||||
|     \item sind Gegenstand des Schedulings | ||||
|   \end{itemize*} | ||||
|   BS-Abstraktionen für sequentielle, nebenläufige Aktivitäten; sind Gegenstand des Schedulings | ||||
| 
 | ||||
|   \paragraph{Multithread-Prozessmodell} | ||||
|   \begin{itemize*} | ||||
|     \item vollständige Beschreibung einer ablaufenden Aktivität | ||||
|     \item Dazu gehören insbesondere | ||||
|     \begin{enumerate*} | ||||
|       \item das ablaufende Programm | ||||
|       \item zugeordnete Betriebsmittel (Prozessor/Speicher/Kommunikation) | ||||
|       \item Rechte | ||||
|       \item prozessinterne parallele Aktivitäten (Threads) und deren Bearbeitungszustände | ||||
|     \end{enumerate*} | ||||
|   \end{itemize*} | ||||
|   vollständige Beschreibung einer ablaufenden Aktivität. Dazu gehören insbesondere | ||||
|   \begin{enumerate*} | ||||
|     \item das ablaufende Programm | ||||
|     \item zugeordnete Betriebsmittel (Prozessor/Speicher/Kommunikation) | ||||
|     \item Rechte | ||||
|     \item prozessinterne parallele Aktivitäten (Threads) und deren Bearbeitungszustände | ||||
|   \end{enumerate*} | ||||
| 
 | ||||
|   \paragraph{Threaddeskriptor (TCB)} | ||||
|   \begin{itemize*} | ||||
|     \item ein TCB enthält lediglich: | ||||
|     \begin{enumerate*} | ||||
|       \item Threadzustand (aktiv, bereit, blockiert, ...) | ||||
|       \item Ablaufkontext, falls nicht aktiv (Programmzähler, Stackpointer, Prozessorregister) | ||||
|     \end{enumerate*} | ||||
|     \item enthält nicht: Beschreibung der Ressourcen (Speicherlayout, Rechte) | ||||
|   \end{itemize*} | ||||
|   \paragraph{Threaddeskriptor} | ||||
|   ein TCB enthält lediglich: | ||||
|   \begin{enumerate*} | ||||
|     \item Threadzustand (aktiv, bereit, blockiert, ...) | ||||
|     \item Ablaufkontext, falls nicht aktiv (Programmzähler, Stackpointer, Prozessorregister) | ||||
|   \end{enumerate*} | ||||
|   enthält nicht: Beschreibung der Ressourcen (Speicherlayout, Rechte) | ||||
| 
 | ||||
|   \paragraph{Thread-Typen} | ||||
|   \begin{itemize*} | ||||
|     \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 das Betriebssystem [genauer: der Betriebssystem-Kern(el)] weiß nicht, dass Threads existieren | ||||
|     \item der Betriebssystem-Kern(el) weiß nicht, dass Threads existieren | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Scheduling: Grundaufgabe} | ||||
|   Entscheidung: Welche Threads erhalten wann u. wie lange einen Prozessor/Prozessorkern zugeteilt? | ||||
|   \paragraph{Scheduling} | ||||
|   Entscheidung: Welche Threads erhalten wann und wie lange einen Prozessor/Prozessorkern zugeteilt? | ||||
| 
 | ||||
|   \paragraph{Zustandsmodelle} | ||||
|   \begin{itemize*} | ||||
|     \item Threads können verschiedene Zustände annehmen (Beispiel 3/5-Zustandsmodell) | ||||
|     \item bereit, aktiv, blockiert, frisch, beendet | ||||
|   \end{itemize*} | ||||
|   Threads können verschiedene Zustände annehmen\\ | ||||
|   Beispiel 3/5-Zustandsmodell) | ||||
|   \centering{ | ||||
|     \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Zustandsmodell.png} | ||||
|   } | ||||
| 
 | ||||
|   \paragraph{Scheduling: Notwendigkeit u. Sinn} | ||||
|   \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 eine Auswahl muss getroffen werden | ||||
|     \item Auswahlstrategie: Schedulingstrategie, ~algorithmus | ||||
|     \item die Betriebssystemkomponente: Scheduler | ||||
|     \item Auswahlstrategie: Schedulingstrategie, -Algorithmus | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Scheduling-Strategien} | ||||
| @ -198,43 +192,43 @@ | ||||
|     \end{itemize*} | ||||
|     \item wichtige Strategien: | ||||
|     \begin{itemize*} | ||||
|       \item FCFS | ||||
|       \item SRTN | ||||
|       \item Round Robin (ohne u. mit Prioritäten) | ||||
|       \item EDF | ||||
|       \item FCFS (First Come, First Served) | ||||
|       \item SRTN (Shortest Remaining Time Next) | ||||
|       \item Round Robin (ohne und mit Prioritäten) | ||||
|       \item EDF (earliest deadline first) | ||||
|       \item ratenmonotones Scheduling | ||||
|     \end{itemize*} | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Privilegierungsebenen} | ||||
|   \begin{itemize*} | ||||
|     \item sind typischerweise "kernel mode" und "user mode" | ||||
|     \item steuern Rechte ... | ||||
|     \item sind typischerweise 'kernel mode' und 'user mode' | ||||
|     \item steuern Rechte | ||||
|     \begin{itemize*} | ||||
|       \item zur Ausführung privilegierter Prozessorinstruktionen | ||||
|       \item zur Konfiguration des Arbeitsspeicherlayouts | ||||
|       \item zum Zugriff auf Arbeitsspeicherbereiche | ||||
|       \item zum Zugriff auf E/A-Geräte | ||||
|     \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*} | ||||
| 
 | ||||
|   \paragraph{Kommunikation u. Synchronisation} | ||||
|   \paragraph{Kommunikation und Synchronisation} | ||||
|   \begin{itemize*} | ||||
|     \item Austausch von Daten zwischen Prozessen = Kommunikation (Inter-Prozess-Kommunikation, IPC) | ||||
|     \item Abweichende Geschwindigkeiten von Sender und Empfänger: behandelt durch Synchronisation | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{kritischer Abschnitt und wechselseitiger Ausschluss} | ||||
|   \paragraph{kritischer Abschnitt} | ||||
|   \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 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*} | ||||
| 
 | ||||
|   \paragraph{Mechanismen zur Synchronisation} | ||||
|   \begin{itemize*} | ||||
|     \item Semaphore (binäre Semaphore u. mehrwertige Semaphore) (ansehen!) | ||||
|     \item binäre Semaphore und mehrwertige Semaphore | ||||
|     \item (Hoar‘sche) Monitore | ||||
|   \end{itemize*} | ||||
| 
 | ||||
| @ -248,13 +242,13 @@ | ||||
| 
 | ||||
|   \paragraph{Notwendigkeit des Ereignismanagement} | ||||
|   \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. | ||||
|     \begin{itemize*} | ||||
|       \item Timerablauf | ||||
|       \item Benutzereingaben (Maus, Tastatur) | ||||
|       \item Eintreffen von Daten von Netzwerken, Festplatten, ... | ||||
|       \item Einlegen/stecken von Datenträgern | ||||
|       \item Einlegen/-stecken von Datenträgern | ||||
|       \item Aufruf von Systemdiensten | ||||
|       \item Fehlersituationen | ||||
|     \end{itemize*} | ||||
| @ -262,16 +256,16 @@ | ||||
| 
 | ||||
|   \paragraph{Umgangsformen mit Ereignissen} | ||||
|   \begin{itemize*} | ||||
|     \item "busy waiting" | ||||
|     \item "periodic testing" | ||||
|     \item Unterbrechungen ("Interrupts") | ||||
|     \item 'busy waiting' | ||||
|     \item 'periodic testing' | ||||
|     \item Unterbrechungen ('Interrupts') | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Programmiermodelle zum Umgang mit Interrupts} | ||||
|   \paragraph{Programmiermodelle für Interrupts} | ||||
|   \begin{itemize*} | ||||
|     \item Prozeduren (→ inline Prozeduraufrufmodell) | ||||
|     \item IPC-Operationen (→ IPC-Modell) | ||||
|     \item Threads (→ pop-up Thread Modell) | ||||
|     \item Prozeduren ($\rightarrow$ inline Prozeduraufrufmodell) | ||||
|     \item IPC-Operationen ($\rightarrow$ IPC-Modell) | ||||
|     \item Threads ($\rightarrow$ pop-up Thread Modell) | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Interrupts auf Anwendungsebene} | ||||
| @ -295,21 +289,21 @@ | ||||
|     \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Seitentabelleneinträge.png} | ||||
|   } | ||||
|   \begin{itemize*} | ||||
|     \item anwesend:Indikator, ob Seite im Arbeitsspeicher liegt ("present"-Bit) | ||||
|     \item benutzt: Indikator, ob auf die Seite zugegriffen wurde ("used/referenced"-Bit) | ||||
|     \item verändert: Indikator, ob Seite "schmutzig" ist ("dirty/modified"-Bit) | ||||
|     \item Schutz: erlaubte Zugriffsart je Privilegierungsebene ("access control list") | ||||
|     \item Caching: Indikator, ob Inhalt der Seite ge"cached" werden darf | ||||
|     \item anwesend: liegt Seite im Arbeitsspeicher? ('present'-Bit) | ||||
|     \item benutzt: wurde auf die Seite zugegriffen? ('used'-Bit) | ||||
|     \item verändert: ist Seite 'schmutzig'? ('dirty/modified'-Bit) | ||||
|     \item Schutz: erlaubte Zugriffsart je Privilegierungsebene ('access control list') | ||||
|     \item Caching: darf Inhalt der Seite gecached werden? | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Seitenaustauschalgorithmen} | ||||
|   \begin{itemize*} | ||||
|     \item Optimale Strategie: Auslagerung derjenigen Arbeitsspeicherseite, deren ... | ||||
|     \item Optimal: Auslagern der Arbeitsspeicherseite, deren | ||||
|     \begin{itemize*} | ||||
|       \item nächster Gebrauch am weitesten in der Zukunft liegt ("Hellseher") | ||||
|       \item Auslagerung nichts kostet (man müsste man wissen, ob eine Seite seit ihrer Einlagerung verändert wurde) | ||||
|       \item nächster Gebrauch am weitesten in der Zukunft liegt | ||||
|       \item Auslagerung nichts kostet | ||||
|     \end{itemize*} | ||||
|     \item im Folgenden: einige Algorithmen, die sich diesem Optimum annähern: | ||||
|     \item einige Algorithmen, die sich diesem Optimum annähern: | ||||
|     \begin{itemize*} | ||||
|       \item First-In, First-Out (FIFO) | ||||
|       \item Second-Chance | ||||
| @ -319,33 +313,29 @@ | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{i-Node} | ||||
|   i-Node: Metainformationen über genau eine Datei | ||||
|   Metainformationen über genau eine Datei | ||||
|   \centering{ | ||||
|     \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_i-Node.png} | ||||
|   } | ||||
| 
 | ||||
|   \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*} | ||||
|     \item Superblock: Einstiegspunkt eines Dateisystems | ||||
|     \item enthält: Schlüsselparameter | ||||
|     \begin{itemize*} | ||||
|       \item Name des Dateisystems | ||||
|       \item Typ (NTFS, Ext * , HFS, ...) → Layout der Metadaten | ||||
|       \item Größe und Anzahl Sektoren | ||||
|       \item Ort und Größe der i-Node-Tabelle | ||||
|       \item Ort und Größe der Freiliste | ||||
|       \item i-Node-Nummer des Wurzelverzeichnisses | ||||
|     \end{itemize*} | ||||
|     \item Name des Dateisystems | ||||
|     \item Typ (NTFS, Ext * , HFS, ...) → Layout der Metadaten | ||||
|     \item Größe und Anzahl Sektoren | ||||
|     \item Ort und Größe der i-Node-Tabelle | ||||
|     \item Ort und Größe der Freiliste | ||||
|     \item i-Node-Nummer des Wurzelverzeichnisses | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Hardware-Prinzipien} | ||||
|   \begin{itemize*} | ||||
|     \item\item Controller-Register | ||||
|     \item Controller-Register | ||||
|     \begin{itemize*} | ||||
|       \item\item in E/A-Adressräumen | ||||
|       \item in E/A-Adressräumen | ||||
|       \item im Arbeitsspeicher (Memory Mapped E/A) | ||||
|       \item Isolation, Robustheit, Sicherheit | ||||
|     \end{itemize*} | ||||
| @ -355,7 +345,7 @@ | ||||
|   \paragraph{Software-Prinzipien} | ||||
|   Gerätemanager (Treiber) | ||||
|   \begin{itemize*} | ||||
|     \item\item Auftragsmanagement | ||||
|     \item Auftragsmanagement | ||||
|     \item ISRs | ||||
|   \end{itemize*} | ||||
| 
 | ||||
| @ -364,203 +354,242 @@ | ||||
|     \includegraphics[width=\textwidth/4]{Assets/Betriebssysteme_Architekturen.png} | ||||
|   } | ||||
| 
 | ||||
|   \paragraph{Sicherheit} | ||||
|   \paragraph{SELinux-Ansatz} neue Betriebssystem-Abstraktion | ||||
|   \begin{itemize*} | ||||
|     \item\item Schutz des Betriebssystems | ||||
|     \item z.B. gegen Angriffe von außen | ||||
|     \item absolute Kontrolle über kritische Funktionen des Betriebssystems | ||||
|     \item spezifiziert durch Regelmenge | ||||
|     \item implementiert durch die SELinux-Sicherheitsarchitektur | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{SELinux-Ansatz} | ||||
|   \paragraph{Robustheit} Tolerierung unvorhergesehener Fehler und Ausfälle | ||||
|   \begin{itemize*} | ||||
|     \item\item Sicherheitspolitiken in SELinux | ||||
|     \item neue Betriebssystem-Abstraktion | ||||
|     \begin{itemize*} | ||||
|       \item\item absolute Kontrolle über kritische Funktionen des Betriebssystems | ||||
|       \item spezifiziert durch Regelmenge | ||||
|       \item implementiert durch die SELinux-Sicherheitsarchitektur | ||||
|     \end{itemize*} | ||||
|     \item Mikrokernarchitekturen (Robuster als Makrokern) | ||||
|     \item Fehlerisolation | ||||
|     \item Möglichkeiten zur Fehlerbehebung (z.B. Micro-Reboot) | ||||
|   \end{itemize*} | ||||
| 
 | ||||
|   \paragraph{Robustheit} | ||||
|   \paragraph{Funktionale Eigenschaften} | ||||
|   \begin{itemize*} | ||||
|     \item Ziel: Tolerierung unvorhergesehener Fehler und Ausfälle | ||||
|     \item Mikrokernarchitekturen: robuster als Makrokernarchitekturen | ||||
|     \item Gründe: | ||||
|     \item Authentisierung, Verschlüsselung | ||||
|     \item Informations-management | ||||
|     \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*} | ||||
|       \item\item Fehlerisolation | ||||
|       \item Möglichkeiten zur Fehlerbehebung (z.B. Micro-Reboot) | ||||
|       \item performante E/A | ||||
|       \item Massen-daten-verarbeitung | ||||
|     \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{multicols} | ||||
| \newpage | ||||
| 
 | ||||
| 
 | ||||
| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Überblick | ||||
| \begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=black!10, | ||||
|     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{Betriebssysteme} | ||||
|   child [concept color=red!30]{ node {Prozessor-management} | ||||
|       child { node {Prozess-erzeugung}} | ||||
|       child { node {Prozess-terminierung}} | ||||
|       child { node {Threads}} | ||||
| \begin{tikzpicture}[ | ||||
|     topic/.style={ | ||||
|         minimum height=8mm, | ||||
|         text depth = 0pt, | ||||
|         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)}}, | ||||
|     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 {Scheduler-aktivierung}} | ||||
|       child { node {Scheduling Strategien}} | ||||
|   child{ node [subtopic] {Scheduling} | ||||
|       child[theme,level1]{ node {Scheduler-aktivierung}} | ||||
|       child[theme,level2]{ node {Scheduling Strategien}} | ||||
|     } | ||||
|   child [concept color=blue!30]{ node {Privilegierungs-ebenen}} | ||||
|   child [concept color=yellow!30]{ node {Kommunikation und\\Synchronisation} | ||||
|       child { node {Elementare Konzepte}} | ||||
|       child { node {wechselseitiger Ausschluss}} | ||||
|       child { node {Mechanismen}} | ||||
|   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 [concept color=orange!30]{ node {Speicher-management} | ||||
|       child { node {Speicher-technologien}} | ||||
|       child { node {Speicher-klassen}} | ||||
|       child { node {Relokation}} | ||||
|       child { node {Swapping}} | ||||
|       child { node {Virtueller Speicher}} | ||||
|       child { node {Segmentierung}} | ||||
|   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 [concept color=lime!30]{ node {Dateisystem} | ||||
|       child { node {Dateimodelle}} | ||||
|       child { node {Dateisysteme}} | ||||
|       child { node {Datenstrukturen \& Algorithmen}} | ||||
|   child{ node [subtopic] {Dateisystem} | ||||
|       child[theme,level1]{ node {Dateimodelle}} | ||||
|       child[theme,level2]{ node {Dateisysteme}} | ||||
|       child[theme,level3]{ node {Datenstrukturen \& Algorithmen}} | ||||
|     }; | ||||
| \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 | ||||
| \begin{tikzpicture}[ mindmap, grow cyclic, every node/.style=concept, concept color=red!40, | ||||
|     level 1/.append style={level distance=4cm, sibling angle=90}, | ||||
|     level 2/.append style={level distance=3cm, sibling angle=35}, | ||||
|     every node/.append style={scale=0.8}] | ||||
|   \node{Prozessor-management} | ||||
|   child[concept color=blue!30]  { node {Prozess-erzeugung} | ||||
|       child { node {Vorraussetzungen} | ||||
|           child { node {Rechte}} | ||||
|           child{ node {Ressourcen Verfügbar}} | ||||
|           child{ node {Sicherheit}} | ||||
|           child{ node{Fariness}} | ||||
|           child{node{Robustheit / Überlastungsvermeidung}} | ||||
| \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}, | ||||
|   ] | ||||
|   % 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{node{eindeutig bzgl allen existierenden}} | ||||
|           child{node{nicht eindeutig bzgl allen}} | ||||
|       child [theme,level distance=7cm]{ node {Namens-vergabe} | ||||
|           child[description,level distance=1cm]{node{eindeutig bzgl allen existierenden}} | ||||
|           child[description,level distance=2cm]{node{nicht eindeutig bzgl allen}} | ||||
|         } | ||||
|       child { node {Stammbaum-pflege} | ||||
|           child{node{erzeugt Kinder}} | ||||
|           child{node{baumartige Hierarchie}} | ||||
|           child{node{Verwaiste Prozesse -> Adoption}} | ||||
|       child [theme,level distance=10cm]{ node {Stammbaumpflege} | ||||
|           child[description,level distance=1cm]{node{erzeugt Kinder}} | ||||
|           child[description,level distance=2cm]{node{baumartige Hierarchie}} | ||||
|           child[description,level distance=3cm]{node{Verwaiste Prozesse $->$ Adoption}} | ||||
|         } | ||||
|       child { node {Allokation (von Ressourcen)} | ||||
|           child{node{Arbeits-speicher} | ||||
|               child{node{Größe}} | ||||
|               child{node{Zeitpunkt}} | ||||
|             } | ||||
|           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 [theme,level distance=14cm]{ node {Allokation (von Ressourcen)} | ||||
|           child[description,level distance=1cm]{node{Arbeits-speicher Größe}} | ||||
|           child[description,level distance=2cm]{node{Zeitpunkt}} | ||||
|           child[description,level distance=3cm]{node{Prozessorzeit}} | ||||
|           child[description,level distance=4cm]{node{Format}} | ||||
|         } | ||||
|     } | ||||
|   child[concept color=red!30]  { node {Prozess Management} | ||||
|       child{node{Prozess-identifikation}} | ||||
|       child{node{Scheduling}} | ||||
|       child{node{Ereignis-management}} | ||||
|       child{node{Rechte-management}} | ||||
|       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 [subtopic] {Prozessterminierung} | ||||
|       child[theme,level distance=1cm]{node{durch} | ||||
|           child[description,level distance=1cm]{node{Aufgabe erledigt}} | ||||
|           child[description,level distance=2cm]{node{Fehler aufgetreten}} | ||||
|           child[description,level distance=3cm]{node{durch Nutzer geschlossen}} | ||||
|         } | ||||
|       child{node{Folgen} | ||||
|           child{node{Freigabe der Ressourcen}} | ||||
|           child{node{Benachrichtigung der "Parents"}} | ||||
|           child{node{Adoption der "Children"}} | ||||
|       child[theme,level distance=5cm]{node{Folgen} | ||||
|           child[description,level distance=1cm]{node{Freigabe der Ressourcen}} | ||||
|           child[description,level distance=2cm]{node{Benachrichtigung der 'Parents'}} | ||||
|           child[description,level distance=3cm]{node{Adoption der 'Children'}} | ||||
|         } | ||||
|     } | ||||
|   child[concept color=yellow!30]  { node {Threads} | ||||
|       child{node{sequenziell innerhalb eines Prozesses}} | ||||
|       child{node{Kernel Level Thread} | ||||
|           child{node{Implementiert im Betriebssystem}} | ||||
|           child{node{Betriebssystem hat Kenntnis über Thread}} | ||||
|           child{node{Multi-Thread-modell}} | ||||
|           child{node{Performance durch Parallelität}} | ||||
|           child{node{Nutzung von Mehrkern-architektur}} | ||||
|   child{ node [subtopic] {Threads} | ||||
|       child[theme,level distance=1cm]{node{sequenziell innerhalb eines Prozesses}} | ||||
|       child[theme,level distance=3cm]{node{Kernel Level Thread} | ||||
|           child[description,level distance=1cm]{node{Implementiert im Betriebssystem}} | ||||
|           child[description,level distance=2cm]{node{Betriebssystem hat Kenntnis über Thread}} | ||||
|           child[description,level distance=3cm]{node{Multi-Thread-modell}} | ||||
|           child[description,level distance=4cm]{node{Performance durch Parallelität}} | ||||
|           child[description,level distance=5cm]{node{Nutzung von Mehrkern-architektur}} | ||||
|         } | ||||
|       child{node{User Level Thread} | ||||
|           child{node{Implementiert auf Anwendungsebene}} | ||||
|           child{node{Kenntnis nur bei Endbenutzer}} | ||||
|           child{node{Single-Thread-Modell}} | ||||
|           child{node{Performance durch geringen Overhead}} | ||||
|           child{node{management ohne systemaufrufe}} | ||||
|           child{node{Individualität}} | ||||
|           child{node{Portabilität}} | ||||
|       child[theme,level distance=10cm]{node{User Level Thread} | ||||
|           child[description,level distance=1cm]{node{Implementiert auf Anwendungsebene}} | ||||
|           child[description,level distance=2cm]{node{Kenntnis nur bei Endbenutzer}} | ||||
|           child[description,level distance=3cm]{node{Single-Thread-Modell}} | ||||
|           child[description,level distance=4cm]{node{Performance durch geringen Overhead}} | ||||
|           child[description,level distance=5cm]{node{management ohne systemaufrufe}} | ||||
|           child[description,level distance=6cm]{node{Individualität}} | ||||
|           child[description,level distance=7cm]{node{Portabilität}} | ||||
|         } | ||||
|     }; | ||||
| \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}, | ||||
| @ -755,52 +784,22 @@ | ||||
|     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{Speichermanagement} | ||||
|   child { node {Speichertechnologien }} | ||||
|   child { node {Speicherklassen}} | ||||
|   child { node {Relokation}} | ||||
|   child { node {Swapping}} | ||||
|   child { 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}} | ||||
|         } | ||||
|   \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}} | ||||
|     } | ||||
|   child { node {Segmentierung}} | ||||
|   ; | ||||
| \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} | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user