diff --git a/Writerside/in.tree b/Writerside/in.tree
index 08459ec..d2fbcec 100644
--- a/Writerside/in.tree
+++ b/Writerside/in.tree
@@ -22,6 +22,7 @@
+
diff --git a/Writerside/topics/BS/Klausurthemen.md b/Writerside/topics/BS/Klausurthemen.md
new file mode 100644
index 0000000..bf12517
--- /dev/null
+++ b/Writerside/topics/BS/Klausurthemen.md
@@ -0,0 +1,63 @@
+# Klausur
+## Themenbereiche
+- 4 Stück mit je 20 Punkten
+
+1. Kernel
+ - Was ist ein Kernel
+ - Was für Varianten
+ - Warum ist das so
+
+2. Prozesse
+ - Wie funktionieren die
+ - Wie sind sie aufgebaut
+ - Wer verwaltet sie
+ - Wie werden sie verwaltet
+
+3. Interprozesskommunikation / Scheduling
+ - IPC
+ - Scheduling
+ - Was ist das
+ - Was macht das
+
+4. Speicherverwaltung / Virtualisierung
+ - VM / Container
+ - Virtueller Speicher
+ - Wie funktioniert das
+ - Was macht Speicherverwaltung generell
+ - Konzepte
+ - Was wird da so gemacht
+
+### Keine Spickzettel :/
+
+## Kommt nicht dran
+- Energieeffizienz
+- Dateisysteme
+- Plattenspeicherverwaltung
+- Und alles was da oben nicht steht :)
+
+
+## Altklausur WiSe 2324
+**Aufgabe1:**
+1. Beschreiben Sie Betriebssysteme
+2. Grundlegende Funktionalitäten von Kernel
+3. Unterschied von monolithische und minimale Kernel grafisch darstellen.
+4. Grundsätzlich m.. Bottleneck von verschiedenen Betriebssystem Varianten
+
+**Aufgabe2:**
+1. Beschreiben Sie die Kontrollstruktur von Prozessen blah blah, Welche Informationen bekommt man blah blah
+2. Unterschied zwischen Thread und Fork() im Zusammenhang mit nebenläufigen Programme
+3. 8-Zustandsdiagramm von Linux
+4. Beschreiben Sie die Funktion von Signalen im BS/Prozess?
+
+**Aufgabe3:**
+1. Beschreiben Sie Interkommunikation thingy
+2. Nenne Sie 3 Methoden davon und beschreiben Sie diese
+3. Beschreiben Sie die Funktionen von verdrängende und kooperative Scheduling
+4. Warum Priorisierung Scheduling und Wie
+
+**Aufgabe4:**
+1. verschiedene Partionierungsverfahren beschreiben
+2. Speicherabstraktion und funktion von Adressenräume
+3. Paging erklären
+4. Virtueller Speicherraum vs Container
+
diff --git a/Writerside/topics/OOAD/DesignPatterns.md b/Writerside/topics/OOAD/DesignPatterns.md
index e01bdcb..d1ca7eb 100644
--- a/Writerside/topics/OOAD/DesignPatterns.md
+++ b/Writerside/topics/OOAD/DesignPatterns.md
@@ -175,7 +175,7 @@
- **Probleme**
- Pattern löst zwei Probleme gleichzeitig
- verletzt [SRP](SOLID-Principle.md#s-single-responsibility-principle-srp)
- - Kann schlechtes Design verstecken (bspw. kein Loose Coupling)
+ - Kann sychlechtes Design verstecken (bspw. kein Loose Coupling)
## Adapter Pattern
diff --git a/Writerside/topics/OOAD/Praktikum4_Diagramme.md b/Writerside/topics/OOAD/Praktikum4_Diagramme.md
new file mode 100644
index 0000000..69c1ad3
--- /dev/null
+++ b/Writerside/topics/OOAD/Praktikum4_Diagramme.md
@@ -0,0 +1,124 @@
+```plantuml
+@startuml
+class Subject <>{
++ ~Subject()
++ attach(obersever: Observer*): void
++ detach(observer: Observer*): void
++ notify(): void
+}
+
+class Observer <>{
++ {abstract} update(): void
++ ~Observer()
+}
+
+class SystemBattery{
++ setBatteryLevel(data: int): void
++ getData(): int
+- BatteryLevel: int
+}
+
+class BatteryApp{
++ BatteryApp(subject: SystemBattery&, name: string)
++ update(): void
+- name: string
+}
+
+class BatteryLogger{
++ BatteryLogger(subject: SystemBattery&, name: string)
++ update(): void
+- name: string
+}
+
+Subject <|-- SystemBattery
+Observer <|-- BatteryApp
+Observer <|-- BatteryLogger
+
+SystemBattery "1" *- "*" BatteryApp: - subject: SystemBattery&
+SystemBattery "1" *- "*" BatteryLogger: - subject: SystemBattery&
+Subject "*" -o "*" Observer: - observers: list
+
+
+@enduml
+```
+
+
+```mermaid
+sequenceDiagram
+ actor human
+ activate human
+ create participant Main
+ human -)+ Main: <>
+
+ Note over Main: create Observers and Subject
+ create participant SystemBattery as systemBattery: Subject
+ Main ->>+ SystemBattery: <>
+ SystemBattery --)- Main: return
+
+ create participant Observer as batteryApp: Observer
+ Main ->>+ Observer: <>(SystemBattery* = *systemBattery, name = "BatteryApp")
+ Observer->>+ SystemBattery: attach(this)
+ SystemBattery ->> SystemBattery: observers.push_back(batteryApp)
+ SystemBattery --)- Observer: return
+ Observer --)- Main: return
+
+ create participant Logger as batteryLogger: Observer
+ Main ->>+ Logger: <>(SystemBattery* = *systemBattery, name = "BatteryLogger")
+ Logger->>+ SystemBattery: attach(this)
+ SystemBattery ->> SystemBattery: observers.push_back(batteryLogger)
+ SystemBattery --)- Logger: return
+ Logger --)- Main: return
+
+ Note over Main: Set BatteryLevel to 87
+ Main ->>+ SystemBattery: setBatteryLevel(data = 87)
+ activate SystemBattery
+ SystemBattery -->> SystemBattery: BatteryLevel = data
+ SystemBattery --) human: "New value 87
+
+%% Loop for each observer
+ note over SystemBattery: update each Observer
+ SystemBattery ->>+ SystemBattery: notify()
+ SystemBattery ->>+ Observer: update()
+ Observer ->>+ SystemBattery: getData()
+ SystemBattery --)- Observer: return BatteryLevel
+ Observer -->> Observer: newValue = BatteryLevel
+ Observer --) human: "This is batteryApp! Received value 87"
+ Observer --)- SystemBattery: return
+
+ SystemBattery ->>+ Logger: update()
+ Logger ->>+ SystemBattery: getData()
+ SystemBattery --)- Logger: return BatteryLevel
+ Logger -->> Logger: newValue = BatteryLevel
+ Logger --) human: "TThis is batteryLogger! Received value 87! Will proceed to log value into file..."
+ Logger -->> Logger: log data into file
+ Logger --)- SystemBattery: return
+%% end loop
+ deactivate SystemBattery
+ SystemBattery --)- Main: return
+
+ Note over Main: delete created Objects
+ Main --x Observer: <>
+ activate Observer
+ Observer ->>+ SystemBattery: detach(this)
+ SystemBattery ->> SystemBattery: overservers.remove(batteryApp)
+ deactivate Observer
+ destroy Observer
+ SystemBattery --)- Observer: return
+
+ Main --x Logger: <>
+ activate Logger
+ Logger ->>+ SystemBattery: detach(this)
+ SystemBattery ->> SystemBattery: overservers.remove(batteryLogger)
+ deactivate Logger
+ destroy Logger
+ SystemBattery --)- Logger: return
+
+ destroy SystemBattery
+ Main --x SystemBattery: <>
+
+ Main --)- human: return
+
+ destroy Main
+ human --x Main: <>
+ deactivate human
+```
\ No newline at end of file