diff --git a/Writerside/images/image_157.png b/Writerside/images/image_157.png
new file mode 100644
index 0000000..2c2e131
Binary files /dev/null and b/Writerside/images/image_157.png differ
diff --git a/Writerside/in.tree b/Writerside/in.tree
index 35d03e2..5eed987 100644
--- a/Writerside/in.tree
+++ b/Writerside/in.tree
@@ -12,6 +12,7 @@
+
@@ -37,5 +38,4 @@
-
\ No newline at end of file
diff --git a/Writerside/topics/BS/08_Threads.md b/Writerside/topics/BS/08_Threads.md
new file mode 100644
index 0000000..589f34e
--- /dev/null
+++ b/Writerside/topics/BS/08_Threads.md
@@ -0,0 +1,73 @@
+# Threads
+- **Kleinste ausführbare Einheit** innerhalb eines Prozesses
+- ermöglichen **flexiblere**, **reaktionsschnellere** und **effizientere** Programmierung
+
+- müssen sorgfältig überwacht werden, um Probleme zu vermeiden
+ - bspw. [Deadlocks](07_Prozesssynchronisation.md#deadlock) oder Rennbedingungen
+
+## Threads vs Prozesse
+| **Merkmal** | **Thread** | **Prozess** |
+|-------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
+| Definition | Kleinste ausführbare Einheit innerhalb eines Prozesses | Unabhängiges Programm in Ausführung |
+| Ressourcenzuweisung | Teilen denselben Adressraum & Ressourcen innerhalb eines Prozesses | Haben eigenen Adressraum und separate Ressourcen |
+| Kommunikation | direkter Zugriff auf gemeinsame Daten
erfordert synchronisierte Mechanismen | erfordert aufwändige Mechanismen wie IPC |
+| [Synchronisation](07_Prozesssynchronisation.md) | benötigt Synchronisationsmechanismen um Rennbedingungen zu vermeiden | Isoliert voneinander, weniger Rennbedingungen,
aber schwerere Synchronisation zwischen Prozessen |
+| Overhead | **geringerer Overhead** | höherer Overhead, da separate Adressräume und Ressourcen |
+| Ressourcennutzung | **effiziente Nutzung innerhalb desselben Prozesses** | höherer Ressourcenverbrauch aufgrund separater Adressräume |
+| Erstellung und Terminierung | **schnellere Erstellung und Terminierung**
Terminierung beeinflusst nur den spezifischen Thread | Langsamere Erstellung und Terminierung
Beenden eines Prozesses beendet alle seine Threads |
+| Fehlerisolierung | Scheitern eines Threads kann gesamten Prozess beeinträchtigen | **Isoliert**, Scheitern beeinflusst keine anderen Prozesse |
+
+- Thread wird auch als _Aktivitätsträger_ oder _leichtgewichtiger Prozess_ benannt
+ - ist immer Teil eines Prozesses
+ - Prozess kan viele Threads gleichzeitig enthalten
+ - werden unabhängig voneinander (_ähnlich Prozesse_) abgearbeitet
+ - Prozess besteht bei Erzeugung aus einem Thread
+ - wird impliziert mit dem Prozess erzeugt
+
+| **Thread** | **Prozess** |
+|-----------------------------------------|-------------------------------------|
+| Leichter Prozess | Programm in Ausführung |
+| Gehört zu Prozess | Vollständig isoliert |
+| gemeinsamer Speicher | eigener Speicher |
+| geringer Ressourcenverbrauch | hoher Ressourcenverbrauch |
+| niedriger Zeitbedarf bei Kontextwechsel | hoher Zeitbedarf bei Kontextwechsel |
+
+> Abarbeitung von Threads ist ca. 10-100 mal schneller im Vergleich zur Verarbeitung
+> von Prozessen.
+>
+> Threads nutzen den gleichen Adressraum, was die Kommunikation erleichtert
+
+
+## Erzeugung von neuen Threads
+- Sehr einfach
+ - Code eines Threads ist eine **normal definierte Funktion**, die wieder andere Funktionen aufrufen kann
+ - werden von Systemaufrufen gestartet
+ - Systemaufruf bekommt die Threadfunktion als Parameter übergeben
+
+## Threads implementieren
+- Threads sind i.d.R. im Kern implementiert, ähnlich wie Prozesse
+- Threads haben dieselben Zustände wie Prozesse, Bedeutung der Zustände ist identisch
+- Kann in vielen Programmiersprachen und Systemen realisiert werden
+ - bspw. _C, C++, C#, Java, Python, Swift, ..._
+
+### Befehle mit [POSIX API](06_prozessstruktur.md#posix-api)
+- **pthread_create** - Erzeugen eines Threads
+- **pthread_exit** - Beenden eines Threads
+- **pthread_join** - Warten auf Ende eines Threads
+- **pthread_yield** - Aufgaben der CPU
+
+## Fork-Join-Modell
+- Paradigma für die parallele Programmierung
+ - Erstellen von Threads (**fork**) und Zusammenführen von Threads (**join**)
+- wird gerne in rekursiven Algorithmen verwendet
+ - große Aufgabe kann in kleinere Teilaufgaben zerlegt werden
+- Jeder Thread kann sich auf eine Teilaufgabe konzentrieren
+ - Ergebnisse werden die Ergebnisse kombiniert
+
+
+
+## FORK
+> Durch den Aufruf der Funktion **fork()** in einem Programm werden Threads ebenso wie der
+> gesamte Adressraum des Prozesses kopiert
+>
+> Es entsteht eine exakte Kopie des aufrufenden Prozesses, einschließlich aller Threads und deren Zustände
\ No newline at end of file
diff --git a/Writerside/topics/RA/MU2-3Rechner.md b/Writerside/topics/RA/MU2-3Rechner.md
index 6723b81..b7a73fa 100644
--- a/Writerside/topics/RA/MU2-3Rechner.md
+++ b/Writerside/topics/RA/MU2-3Rechner.md
@@ -1,4 +1,4 @@
-# MU2 und MU3Rechner
+# MU2/3-Rechner
## MU2 Rechner
## Adressraum vergrößern
### Wortbreite vergrößern
diff --git a/Writerside/topics/RA/MU4-5Rechner.md b/Writerside/topics/RA/MU4-5Rechner.md
index 7c9bbbc..c099802 100644
--- a/Writerside/topics/RA/MU4-5Rechner.md
+++ b/Writerside/topics/RA/MU4-5Rechner.md
@@ -1,4 +1,4 @@
-# MU4 und MU5 Rechner
+# MU4/5-Rechner
## Registeranzahl erhöhen
### Registerarchitektur
- Gesamtzahl der Register ist normalerweise eine Zweierpotenz