update
This commit is contained in:
parent
fd66c695fc
commit
5654a06633
@ -22,6 +22,7 @@
|
||||
<toc-element topic="15_Bibliotheken.md"/>
|
||||
<toc-element topic="16_Dateisysteme.md"/>
|
||||
<toc-element topic="17_Plattenspeicherverwaltung.md"/>
|
||||
<toc-element topic="Klausurthemen.md"/>
|
||||
</toc-element>
|
||||
<toc-element toc-title="OOAD">
|
||||
<toc-element topic="IntroductionOOAD.md"/>
|
||||
|
63
Writerside/topics/BS/Klausurthemen.md
Normal file
63
Writerside/topics/BS/Klausurthemen.md
Normal file
@ -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
|
||||
|
@ -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
|
||||
|
124
Writerside/topics/OOAD/Praktikum4_Diagramme.md
Normal file
124
Writerside/topics/OOAD/Praktikum4_Diagramme.md
Normal file
@ -0,0 +1,124 @@
|
||||
```plantuml
|
||||
@startuml
|
||||
class Subject <<abstract>>{
|
||||
+ ~Subject()
|
||||
+ attach(obersever: Observer*): void
|
||||
+ detach(observer: Observer*): void
|
||||
+ notify(): void
|
||||
}
|
||||
|
||||
class Observer <<interface>>{
|
||||
+ {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<Observer*>
|
||||
|
||||
|
||||
@enduml
|
||||
```
|
||||
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
actor human
|
||||
activate human
|
||||
create participant Main
|
||||
human -)+ Main: <<create>>
|
||||
|
||||
Note over Main: create Observers and Subject
|
||||
create participant SystemBattery as systemBattery: Subject
|
||||
Main ->>+ SystemBattery: <<create>>
|
||||
SystemBattery --)- Main: return
|
||||
|
||||
create participant Observer as batteryApp: Observer
|
||||
Main ->>+ Observer: <<create>>(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: <<create>>(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: <<delete>>
|
||||
activate Observer
|
||||
Observer ->>+ SystemBattery: detach(this)
|
||||
SystemBattery ->> SystemBattery: overservers.remove(batteryApp)
|
||||
deactivate Observer
|
||||
destroy Observer
|
||||
SystemBattery --)- Observer: return
|
||||
|
||||
Main --x Logger: <<delete>>
|
||||
activate Logger
|
||||
Logger ->>+ SystemBattery: detach(this)
|
||||
SystemBattery ->> SystemBattery: overservers.remove(batteryLogger)
|
||||
deactivate Logger
|
||||
destroy Logger
|
||||
SystemBattery --)- Logger: return
|
||||
|
||||
destroy SystemBattery
|
||||
Main --x SystemBattery: <<delete>>
|
||||
|
||||
Main --)- human: return
|
||||
|
||||
destroy Main
|
||||
human --x Main: <<destroy>>
|
||||
deactivate human
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user