Merge branch 'master' into 'main'
initial Commit See merge request david.schirrmeister/betriebssysteme-Mitschriften!1
3
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
8
.idea/Betriebssysteme.iml
generated
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="EMPTY_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
8
.idea/modules.xml
generated
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Betriebssysteme.iml" filepath="$PROJECT_DIR$/.idea/Betriebssysteme.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
Writerside/c.list
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE categories
|
||||||
|
SYSTEM "https://resources.jetbrains.com/writerside/1.0/categories.dtd">
|
||||||
|
<categories>
|
||||||
|
<category id="wrs" name="Writerside documentation" order="1"/>
|
||||||
|
</categories>
|
12
Writerside/cfg/buildprofiles.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<buildprofiles xsi:noNamespaceSchemaLocation="https://resources.jetbrains.com/writerside/1.0/build-profiles.xsd"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
|
||||||
|
<variables></variables>
|
||||||
|
<build-profile instance="in">
|
||||||
|
<variables>
|
||||||
|
<noindex-content>true</noindex-content>
|
||||||
|
</variables>
|
||||||
|
</build-profile>
|
||||||
|
|
||||||
|
</buildprofiles>
|
BIN
Writerside/images/completion_procedure.png
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
Writerside/images/completion_procedure_dark.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
Writerside/images/convert_table_to_xml.png
Normal file
After Width: | Height: | Size: 341 KiB |
BIN
Writerside/images/convert_table_to_xml_dark.png
Normal file
After Width: | Height: | Size: 119 KiB |
BIN
Writerside/images/image.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
Writerside/images/image_1.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
Writerside/images/image_10.png
Normal file
After Width: | Height: | Size: 451 KiB |
BIN
Writerside/images/image_11.png
Normal file
After Width: | Height: | Size: 523 KiB |
BIN
Writerside/images/image_12.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
Writerside/images/image_13.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
BIN
Writerside/images/image_14.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
Writerside/images/image_2.png
Normal file
After Width: | Height: | Size: 167 KiB |
BIN
Writerside/images/image_3.png
Normal file
After Width: | Height: | Size: 303 KiB |
BIN
Writerside/images/image_4.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
Writerside/images/image_5.png
Normal file
After Width: | Height: | Size: 244 KiB |
BIN
Writerside/images/image_6.png
Normal file
After Width: | Height: | Size: 467 KiB |
BIN
Writerside/images/image_7.png
Normal file
After Width: | Height: | Size: 271 KiB |
BIN
Writerside/images/image_8.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
Writerside/images/image_9.png
Normal file
After Width: | Height: | Size: 267 KiB |
BIN
Writerside/images/new_topic_options.png
Normal file
After Width: | Height: | Size: 306 KiB |
BIN
Writerside/images/new_topic_options_dark.png
Normal file
After Width: | Height: | Size: 274 KiB |
11
Writerside/in.tree
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE instance-profile
|
||||||
|
SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd">
|
||||||
|
|
||||||
|
<instance-profile id="in"
|
||||||
|
name="Instance Name"
|
||||||
|
start-page="prozesszustaende.md">
|
||||||
|
|
||||||
|
<toc-element topic="prozesszustaende.md"/>
|
||||||
|
<toc-element topic="prozessstruktur.md"/>
|
||||||
|
</instance-profile>
|
58
Writerside/topics/prozessstruktur.md
Normal file
@ -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
|
||||||
|
- 
|
||||||
|
|
||||||
|
|
||||||
|
Beispiel: Terminalbefehl **- size**
|
||||||
|
- 
|
||||||
|
|
||||||
|
## Prozesse im Speicher
|
||||||
|
- 
|
||||||
|
- 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
|
||||||
|
- 
|
||||||
|
|
||||||
|
## Erzeugung von neuen Prozessen
|
||||||
|
- Systemaufruf **exec**
|
||||||
|
- Ersetzt bestehenden Prozess durch einen anderen
|
||||||
|
- neuer Prozess erbt PID des aufrufenden Prozesses
|
||||||
|
- 
|
||||||
|
- Soll aus einem Prozess (_bspw. Kommandozeilen-Interpreter (Shell)_) heraus ein Programm gestartet werden:
|
||||||
|
- _fork_ -> _exec_
|
||||||
|
- 
|
||||||
|
|
||||||
|
|
||||||
|
## Übersicht Erzeugung/Verkettung/Vergabelung
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## 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
|
||||||
|
-
|
64
Writerside/topics/prozesszustaende.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# Prozesszustände
|
||||||
|
- Bereit (Ready)
|
||||||
|
- Laufend (Running)
|
||||||
|
- Blockiert (Blocked)
|
||||||
|
- Beendet (Terminated)
|
||||||
|
|
||||||
|
## 2-Zustands-Modell
|
||||||
|

|
||||||
|
|
||||||
|
Prozesse, die untätig werden, werden in einer Warteschlange gespeichert
|
||||||
|
- Wird nach Priorität / Wartezeit sortiert
|
||||||
|

|
||||||
|
|
||||||
|
#### 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
|
||||||
|

|
||||||
|
- 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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 7-Zustands-Modell
|
||||||
|

|
||||||
|
|
||||||
|
## 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#
|
||||||
|
|
||||||
|

|
5
Writerside/v.list
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE vars SYSTEM "https://resources.jetbrains.com/writerside/1.0/vars.dtd">
|
||||||
|
<vars>
|
||||||
|
<var name="product" value="Writerside"/>
|
||||||
|
</vars>
|
11
Writerside/writerside.cfg
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE ihp SYSTEM "https://resources.jetbrains.com/writerside/1.0/ihp.dtd">
|
||||||
|
|
||||||
|
<ihp version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="https://resources.jetbrains.com/writerside/1.0/writerside-cfg.xsd">
|
||||||
|
<topics dir="topics"/>
|
||||||
|
<images dir="images" web-path="images"/>
|
||||||
|
<categories src="c.list"/>
|
||||||
|
<vars src="v.list"/>
|
||||||
|
<instance src="in.tree"/>
|
||||||
|
</ihp>
|