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