diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Betriebssysteme.iml b/.idea/Betriebssysteme.iml new file mode 100644 index 0000000..6102194 --- /dev/null +++ b/.idea/Betriebssysteme.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..8a21bcd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Writerside/c.list b/Writerside/c.list new file mode 100644 index 0000000..c4c77a2 --- /dev/null +++ b/Writerside/c.list @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Writerside/cfg/buildprofiles.xml b/Writerside/cfg/buildprofiles.xml new file mode 100644 index 0000000..e0e1a8f --- /dev/null +++ b/Writerside/cfg/buildprofiles.xml @@ -0,0 +1,12 @@ + + + + + + + true + + + + diff --git a/Writerside/images/completion_procedure.png b/Writerside/images/completion_procedure.png new file mode 100644 index 0000000..3535a3f Binary files /dev/null and b/Writerside/images/completion_procedure.png differ diff --git a/Writerside/images/completion_procedure_dark.png b/Writerside/images/completion_procedure_dark.png new file mode 100644 index 0000000..a65beb0 Binary files /dev/null and b/Writerside/images/completion_procedure_dark.png differ diff --git a/Writerside/images/convert_table_to_xml.png b/Writerside/images/convert_table_to_xml.png new file mode 100644 index 0000000..2518a64 Binary files /dev/null and b/Writerside/images/convert_table_to_xml.png differ diff --git a/Writerside/images/convert_table_to_xml_dark.png b/Writerside/images/convert_table_to_xml_dark.png new file mode 100644 index 0000000..4716122 Binary files /dev/null and b/Writerside/images/convert_table_to_xml_dark.png differ diff --git a/Writerside/images/image.png b/Writerside/images/image.png new file mode 100644 index 0000000..b74c3aa Binary files /dev/null and b/Writerside/images/image.png differ diff --git a/Writerside/images/image_1.png b/Writerside/images/image_1.png new file mode 100644 index 0000000..5d4dd28 Binary files /dev/null and b/Writerside/images/image_1.png differ diff --git a/Writerside/images/image_10.png b/Writerside/images/image_10.png new file mode 100644 index 0000000..3e170f9 Binary files /dev/null and b/Writerside/images/image_10.png differ diff --git a/Writerside/images/image_11.png b/Writerside/images/image_11.png new file mode 100644 index 0000000..6c77350 Binary files /dev/null and b/Writerside/images/image_11.png differ diff --git a/Writerside/images/image_12.png b/Writerside/images/image_12.png new file mode 100644 index 0000000..fe14e15 Binary files /dev/null and b/Writerside/images/image_12.png differ diff --git a/Writerside/images/image_13.png b/Writerside/images/image_13.png new file mode 100644 index 0000000..688d5b8 Binary files /dev/null and b/Writerside/images/image_13.png differ diff --git a/Writerside/images/image_14.png b/Writerside/images/image_14.png new file mode 100644 index 0000000..642f493 Binary files /dev/null and b/Writerside/images/image_14.png differ diff --git a/Writerside/images/image_2.png b/Writerside/images/image_2.png new file mode 100644 index 0000000..0233c79 Binary files /dev/null and b/Writerside/images/image_2.png differ diff --git a/Writerside/images/image_3.png b/Writerside/images/image_3.png new file mode 100644 index 0000000..ef8e77d Binary files /dev/null and b/Writerside/images/image_3.png differ diff --git a/Writerside/images/image_4.png b/Writerside/images/image_4.png new file mode 100644 index 0000000..712de6a Binary files /dev/null and b/Writerside/images/image_4.png differ diff --git a/Writerside/images/image_5.png b/Writerside/images/image_5.png new file mode 100644 index 0000000..5e989d5 Binary files /dev/null and b/Writerside/images/image_5.png differ diff --git a/Writerside/images/image_6.png b/Writerside/images/image_6.png new file mode 100644 index 0000000..161d5f3 Binary files /dev/null and b/Writerside/images/image_6.png differ diff --git a/Writerside/images/image_7.png b/Writerside/images/image_7.png new file mode 100644 index 0000000..97449f9 Binary files /dev/null and b/Writerside/images/image_7.png differ diff --git a/Writerside/images/image_8.png b/Writerside/images/image_8.png new file mode 100644 index 0000000..1e9ae90 Binary files /dev/null and b/Writerside/images/image_8.png differ diff --git a/Writerside/images/image_9.png b/Writerside/images/image_9.png new file mode 100644 index 0000000..572696e Binary files /dev/null and b/Writerside/images/image_9.png differ diff --git a/Writerside/images/new_topic_options.png b/Writerside/images/new_topic_options.png new file mode 100644 index 0000000..bc6abb6 Binary files /dev/null and b/Writerside/images/new_topic_options.png differ diff --git a/Writerside/images/new_topic_options_dark.png b/Writerside/images/new_topic_options_dark.png new file mode 100644 index 0000000..bf3e48d Binary files /dev/null and b/Writerside/images/new_topic_options_dark.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree new file mode 100644 index 0000000..bae2be8 --- /dev/null +++ b/Writerside/in.tree @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/Writerside/topics/prozessstruktur.md b/Writerside/topics/prozessstruktur.md new file mode 100644 index 0000000..43f85d1 --- /dev/null +++ b/Writerside/topics/prozessstruktur.md @@ -0,0 +1,58 @@ +# Prozessstruktur + +## Prozessdarstellung +- Umfasst [_Zustände_](prozesszustaende.md) und _Struktur_ eines laufenden Programms + - Grundlegende Komponenten, die die _Speicherrepräsentation_ eines Prozesses vorhanden sein können + - Systemumgebung + - Stack + - Heap + - BSS (Block Started by Symbol) + - Datensegment + - Codesegment + - ![image_8.png](image_8.png) + + + Beispiel: Terminalbefehl **- size** + - ![image_9.png](image_9.png) + +## Prozesse im Speicher +- ![image_10.png](image_10.png) +- Ablage im physischen Speicher erfolgt in nicht fortlaufender Weise durch den virtuellen Speicher + - nicht zwangsläufig ständig im Hauptspeicher + +## Erzeugung von Prozesskopien +- Systemaufruf **fork** unter Linux/Unix + - Erzeugung einer _identischen Kopie_ eines Prozesses + - aufrufender Prozess: _Elternprozess (Parent Process)_ + - neuer Prozess: _Kind-Prozess_ (Child Process) + - hat gleichen _Programmcode_ und _Befehlszähler_ + - verweist auf gleiche Zeile im Programmcode + - Speicherbereiche von Kind- und Elternprozess streng getrennt +- ![image_11.png](image_11.png) + +## Erzeugung von neuen Prozessen +- Systemaufruf **exec** + - Ersetzt bestehenden Prozess durch einen anderen + - neuer Prozess erbt PID des aufrufenden Prozesses + - ![image_12.png](image_12.png) + - Soll aus einem Prozess (_bspw. Kommandozeilen-Interpreter (Shell)_) heraus ein Programm gestartet werden: + - _fork_ -> _exec_ + - ![image_13.png](image_13.png) + + +## Übersicht Erzeugung/Verkettung/Vergabelung +![image_14.png](image_14.png) + + +## Beenden von Prozessen +Arten des Beendens: +- Normales Beenden (freiwillig, im Code definiert) +- Beenden aufgrund eines Fehlers (freiwillig, im Code definiert) +- Beenden aufgrund eines schwerwiegenden Fehlers (unfreiwillig, durch BS) +- Beenden durch einen anderen Prozess (unfreiwillig) + +Unix Befehl: **kill** erstellt einen Wrapper um BS-Aufruf _kilL()_ +- ist auf jedem Unix als alleinstehende Anwendung vorhanden (_/bin/kill_) + +## Zeitliche Ausführung von Prozessen +- \ No newline at end of file diff --git a/Writerside/topics/prozesszustaende.md b/Writerside/topics/prozesszustaende.md new file mode 100644 index 0000000..194d940 --- /dev/null +++ b/Writerside/topics/prozesszustaende.md @@ -0,0 +1,64 @@ +# Prozesszustände +- Bereit (Ready) +- Laufend (Running) +- Blockiert (Blocked) +- Beendet (Terminated) + +## 2-Zustands-Modell +![image.png](image.png) + +Prozesse, die untätig werden, werden in einer Warteschlange gespeichert +- Wird nach Priorität / Wartezeit sortiert +![image_1.png](image_1.png) + +#### Pro +- Einfach realisierbar + +#### Contra +- Annahme, dass Prozesse jederzeit zur Ausführung bereit sind + - Es gibt blockierte Prozesse + - Wartet auf Ein-/Ausgabe + - Wartet auf Ergebnis eines anderen Prozesses + - Wartet auf Reaktion eines Benutzers + +## 3-Zustands-Modell +### Ereignisbezogene Warteschlangen +![image_3.png](image_3.png) +- Für jedes Ereignis, auf welches ein Prozess wartet, gibt es eine Warteschlange +- Tritt das Ereignis ein, werden alle Prozesse der WS in die WS mit den *ready* Prozessen überführt + +![image_2.png](image_2.png) + +## 5-Zustands-Modell +Anzahl der ausführbaren Prozesse *limitieren*, um Speicher zu sparen +- Zwei weitere Zustände: + - **new (new)** + - Prozesse, deren PCB das Betriebssystem bereits erzeugt hat, aber noch nicht in der Warteschlange sind + - **beendet (exit)** + - Abgearbeitete oder abgebrochene Prozesse, deren PCB und Eintrag noch nicht aus der Prozesstabelle entfernt wurden + +![image_4.png](image_4.png) + +## 6-Zustands-Modell +Falls nicht genügend physischer Hauptspeicher für alle Prozesse: +- **Auslagerungsspeicher (Swap)** + - Zustand: **suspendiert (suspended)** + - dadurch steht den Prozessen in den Zuständen _rechnend_ und _bereit_ mehr Hauptspeicher zur Verfügung + +![image_5.png](image_5.png) + +## 7-Zustands-Modell +![image_6.png](image_6.png) + +## Zustands-Modell von Linux +- ähnlich wie [7-Zustands-Modell](#7-zustands-modell) +- Zustand _rechnend_: + - **benutzer rechnend (user running)** + - Prozesse im Benutzermodus + - **kernel rechnend (kernel running)** + - Prozesse im Kernel-Modus +- Zustand _beendet (exit)_ = _Zombie_ + - ist fertig abgearbeitet + - Eintrag in der Prozesstabelle existiert noch bis Elternprozess den Rückgabewert abgefragt hat# + +![image_7.png](image_7.png) \ No newline at end of file diff --git a/Writerside/v.list b/Writerside/v.list new file mode 100644 index 0000000..2d12cb3 --- /dev/null +++ b/Writerside/v.list @@ -0,0 +1,5 @@ + + + + + diff --git a/Writerside/writerside.cfg b/Writerside/writerside.cfg new file mode 100644 index 0000000..98e1435 --- /dev/null +++ b/Writerside/writerside.cfg @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file