diff --git a/Writerside/images/image_248.png b/Writerside/images/image_248.png new file mode 100644 index 0000000..0ad518e Binary files /dev/null and b/Writerside/images/image_248.png differ diff --git a/Writerside/images/image_249.png b/Writerside/images/image_249.png new file mode 100644 index 0000000..798b5f1 Binary files /dev/null and b/Writerside/images/image_249.png differ diff --git a/Writerside/images/image_250.png b/Writerside/images/image_250.png new file mode 100644 index 0000000..fb5013a Binary files /dev/null and b/Writerside/images/image_250.png differ diff --git a/Writerside/images/image_251.png b/Writerside/images/image_251.png new file mode 100644 index 0000000..0e3130b Binary files /dev/null and b/Writerside/images/image_251.png differ diff --git a/Writerside/images/image_252.png b/Writerside/images/image_252.png new file mode 100644 index 0000000..a84cf10 Binary files /dev/null and b/Writerside/images/image_252.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index 5ceed47..1e8c891 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -15,6 +15,8 @@ + + diff --git a/Writerside/topics/BS/11_Energieeffizienz.md b/Writerside/topics/BS/11_Energieeffizienz.md new file mode 100644 index 0000000..1c69108 --- /dev/null +++ b/Writerside/topics/BS/11_Energieeffizienz.md @@ -0,0 +1,62 @@ +# Energieeffizienz +## Energieverwaltung +- Frequenzskalierung der CPU +- Spannungs- und Frequenzanpassung +- [Stromsparmodi](#stromsparmodi-und-profile) +- Bildschirmhelligkeit und -abschaltung +- [Energieeffizientes Scheduling](#energieeffizientes-scheduling) +- [I/O Effizienz](#i-o-effizienz) +- Wärme- und Lüftermanagement +- [Netzwerkmanagement](#netzwerkmanagement) +- Energieprofile und -richtlinien +- Advanced Configuration and Power Interface (ACPI) + +## Prozessor- und Gerätesteuerung +- Strategien und Mechanismen, um _Leistung und Energieeffizienz_ + - von CPUs und anderen Hardwarekomponenten zu optimieren +- Moderne Betriebssysteme + - integrierte Mechanismen zur Steuerung von Hardwarekomponenten + +## Energieeffizientes Scheduling +- CPU-Energieeffizienz maximieren durch Verteilung von Prozessen auf CPU-Kernen + - Kernzusammenlegung + - Dynamisches Kernabschalten + - Aufgabenplanung basierend auf Prozessoreigenschaften + - Scheduling basierend auf Workload Charakteristiken + - Adaptive Scheduling-Richtlinien + - Anpassung an Hardware-Topologie + +## I/O-Effizienz +- Optimierung von Ein- und Ausgabeoperationen + - Effiziente Nutzung von Ressourcen und Reduzierung des Energieverbrauchs + - Batching von I/O-Operationen + - Asynchrone I/O + - Pufferung von Daten + - Intelligente Catching-Strategien + - Effizientes Dateisystem-Layout + - Adaptive Datenkompression + +## Leistungsüberwachung und -profiling +- Bewertung und Analyse der Leistung eines Computers + - Engpässe identifizieren + - Ressourcennutzung optimieren + - Effizienz steigern +- Im Wesentlichen Werkzeuge für SysAdmins, Entwickler, Ingenieure + - Leistung von Computern und Anwendungen verstehen + - Bottlenecks beheben + +## Netzwerkmanagement +- Planung, Implementierung, Überwachung, Optimierung von Netzwerkinfrastrukturen + - zusätzlich: Lastenausgleich, Netzwerkprotokolle & -standards + +## Optimierung von Hintergrundprozessen +- Gewährleistung von Gesamtleistung, Stabilität, Effizienz + - Priorisierung + - Ressourcenzuweisung + - Zeitgesteuerte Ausführung + - Intelligente Aktivierung + - Parallelisierung + - Caching + +## Stromsparmodi und -profile +- Funktionen müssen entsprechend der Anforderungen und Nutzungsmuster angepasst werden. diff --git a/Writerside/topics/BS/12_Virtualisierung.md b/Writerside/topics/BS/12_Virtualisierung.md new file mode 100644 index 0000000..6d2171c --- /dev/null +++ b/Writerside/topics/BS/12_Virtualisierung.md @@ -0,0 +1,90 @@ +# Virtualisierung +> Technologie, die es ermöglicht mehrere virtuelle Instanzen auf einem einzigen +> physischen System auszuführen +> +> Spielt eine entscheidende Rolle bei der effizienten Nutzung von Ressourcen, der Erhöhung von +> Flexibilität und Skalierbarkeit sowie der Verbesserung der Verfügbarkeit von Anwendungen und Daten + + +## Vorteile der Virtualisierung +- **Ressourceneffizienz** + - mehrere VMs können auf einem physischen Server laufen +- **Isolation** + - VMs sind voneinander isoliert + - verbessert Stabilität und Sicherheit +- **Snapshot- und Wiederherstellungsfunktion** +- **Portabilität** + - VMs können auf verschiedenen physischen Servern verschoben und ausgeführt werden + + +## Virtualisierungstypen +### Hypervisor-basierte Virtualisierung +- [Hypervisor](https://www.youtube.com/watch?v=LMAEbB2a50M) (~Virtual Machine Monitor) + - wird direkt auf Hardware ausgeführt + - ermöglicht Ausführung mehrerer Betriebssysteme als VMs +#### Typ 1 (Bare-Metal-Hypervisor) +- direkte auf Hardware installiert + - benötigt kein Host-Betriebssystem +- _bspw.: VMware ESXi, Microsoft Hyper-V_ + +#### Typ 2 (Hosted-Hypervisor) +- Läuft auf Host-Betriebssystem +- _bspw: VMware Workstation, Oracle VirtualBox_ + +### Container-Virtualisierung +- Container teilen sich Kernel des Host-Betriebssystems + - bieten leichtgewichtige Möglichkeit Anwendungen zu isolieren und auszuführen + +## Partitionierung von VMs +- Aufteilung einer _physischen oder virtuellen Ressource_ in mehrere logische Einheiten (Partitionen) +- ![image_248.png](image_248.png) + - können unterschiedliche Betriebssysteminstanzen/Anwendungen beherbergen + - Vorteile u.a. Ressourcenisolierung, verbesserte Sicherheit, bessere Verwaltbarkeit + +## Hardware-Emulation +- Nachbildung oder Simulation von Hardware auf einer anderen Hardware- oder Softwareplattform + - Replikation von Hardware-Komponenten, Geräten oder ganzen Systemen auf einer virtuellen Ebene +- ![image_249.png](image_249.png) +- **Entwicklung neuer Hardware** + - Simulation von Hardware-Designs bevor tatsächliche Hardware erstellt wird +- **Fehlerbehebung und Debugging** + - Identifizierung von Fehlern in Hardware-Komponenten oder -Systemen +- **Testen von Software** + +### Hardware-Emulator vs. Simulator +| **Emulator** | **Simulator** | +|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------| +| Reproduziert Verhalten der tatsächlichen Hardware genau | Ahmt Verhalten von Hardware nach | +| arbeitet auf niedriger Ebene, indem er Hardwarekomponenten genau nachbildet | Arbeitet auf höherer Ebene, Konzentration auf Funktionalität statt exakter Nachbildung | + +## Anwendungsvirtualisierung +- Einzelne anwendung in virtueller Umgebung ausführen, die alle benötigten Komponenten bereitstellt +- ![image_250.png](image_250.png) +- virtuelle Maschine befindet sich zwischen Anwendung und Betriebssystem +- _bspw.: Java Virtual Machine (JVM)_ + +## Betriebssystem-Virtualisierung +- [Container](https://www.youtube.com/watch?v=TvnZTi_gaNc) laufen unter ein und demselben BS-Kern + - mehrere abgeschottete, identische Systemumgebungen +- ![image_251.png](image_251.png) +- bei Start einer VM wird im Gegensatz kein zusätzliches BS gestartet + - Erzeugung isolierte Laufzeitumgebung + +## Vollständige Virtualisierung +- Hypervisor bietet einer VM eine komplette virtuelle PC-Umgebung inkl. eigenem BIOS +- ![image_252.png](image_252.png) +- Gast-BS erhält eigene VM mit virtuellen Ressourcen + - Prozessor(en) + - Hauptspeicher + - Laufwerke + - Netzwerkkarten + - etc. +- Kern der Lösung ist Virtueller Maschinen-Monitor (VMM) + - Aufgabe ist Zuweisung der Hardwareressourcen an VMs + +## Virtualisierungslösungen +- [docker](https://www.docker.com) +- [vmware](https://www.vmware.com) +- [virtualbox](https://www.virtualbox.org) +- [getutm (mac)](https://mac.getutm.app) + diff --git a/Writerside/topics/OOAD/UMLKlassenDiagramme.md b/Writerside/topics/OOAD/UMLKlassenDiagramme.md index 4f03dd4..9a212cc 100644 --- a/Writerside/topics/OOAD/UMLKlassenDiagramme.md +++ b/Writerside/topics/OOAD/UMLKlassenDiagramme.md @@ -1,4 +1,7 @@ # Klassen Diagramme + +https://www.hanser-elibrary.com/doi/epdf/10.3139/9783446431973 + - Klassen werden als Boxen dargestellt mit - Name - Attribute