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