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[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 (Hoar‘sche) Monitore |     \item (Hoar‘sche) 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} | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user