diff --git a/Writerside/images/image_17.png b/Writerside/images/image_17.png new file mode 100644 index 0000000..bb5f3b0 Binary files /dev/null and b/Writerside/images/image_17.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index bae2be8..cd451a7 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -4,8 +4,11 @@ + start-page="05_prozesszustaende.md"> - - + + + + + \ No newline at end of file diff --git a/Writerside/topics/prozesszustaende.md b/Writerside/topics/05_prozesszustaende.md similarity index 100% rename from Writerside/topics/prozesszustaende.md rename to Writerside/topics/05_prozesszustaende.md diff --git a/Writerside/topics/prozessstruktur.md b/Writerside/topics/06_prozessstruktur.md similarity index 97% rename from Writerside/topics/prozessstruktur.md rename to Writerside/topics/06_prozessstruktur.md index 02d8cb9..41cfe5e 100644 --- a/Writerside/topics/prozessstruktur.md +++ b/Writerside/topics/06_prozessstruktur.md @@ -1,7 +1,7 @@ # Prozessstruktur ## Prozessdarstellung -- Umfasst [_Zustände_](prozesszustaende.md) und _Struktur_ eines laufenden Programms +- Umfasst [_Zustände_](05_prozesszustaende) und _Struktur_ eines laufenden Programms - Grundlegende Komponenten, die die _Speicherrepräsentation_ eines Prozesses vorhanden sein können - Systemumgebung - Stack diff --git a/Writerside/topics/Betriebssysteme_heute.md b/Writerside/topics/Betriebssysteme_heute.md new file mode 100644 index 0000000..7144fe2 --- /dev/null +++ b/Writerside/topics/Betriebssysteme_heute.md @@ -0,0 +1,28 @@ +# Betriebssysteme heute +## Einsatzgebiete +- Desktop / Laptop + - Heim- und Büroanwendungen +- Eingebettete Systeme + - Industrieautomation, Fahrzeuge, etc. +- Mobilgeräte + - Smartphones, Tablets, etc. +- Server + - Datacenter, Großrechner, Cloud- / Grid-Computing + +## Vielfältige Peripherie +- WLAN, Bluetooth, 3G/5G/5G +- CD, DVD, HDD, SSD, Flash-Memory, USB-Storage +- LCD-/OLED-Displays, Touchscreens +- Keyboard, Mouse, Touchpad +- Drucker, Scanner +- GPS +- Gyroskop +- ... + +## Schnittstellen +Zur Vereinfachung der Programmierung existieren spezielle vom Betriebssystem bereitgestellte Funktionen (Systemaufrufe) bspw. für: +- Prozesse +- Dateisystem +- Ein-/Ausgabe +- ... + Standardisierung ([POSIX](06_prozessstruktur.md#posix-api) ermöglicht Portierung von Anwendungen über Plattform-Grenzen hinweg diff --git a/Writerside/topics/Betriebssystemkerne.md b/Writerside/topics/Betriebssystemkerne.md new file mode 100644 index 0000000..d704af7 --- /dev/null +++ b/Writerside/topics/Betriebssystemkerne.md @@ -0,0 +1,49 @@ +# Betriebssystemkerne + + +> Gute **Architektur** sagt und _warum_ etwas getan wurde. +> Nicht _wie_ und nicht _wann_ und _wer_. + +## Der Betriebssystemkern +- Enthält grundlegende Funktionen des Betriebssystems + - Systemaufrufe + - Benutzerverwaltung + - Prozessverwaltung inklusive Ausführungsreihenfolge ([Scheduling](06_prozessstruktur.md#zeitliche-ausf-hrung-von-prozessen)) + - Interprozesskommunikation + - Prozessumschalter ([Dispatcher](06_prozessstruktur.md#zeitliche-ausf-hrung-von-prozessen)) + - Gerätetreiber + - [Speicherverwaltung](06_prozessstruktur.md#prozesse-im-speicher) + - Dateisysteme zur Verwaltung von Dateien auf Speicherlaufwerken +- Ist die Schnittstelle zur Hardware des Computers + - Funktionalitäten im BS-Kern haben vollen Hardwarezugriff + - Funktionalitäten laufen als Prozess im Adressraum des Kerns + - Funktionalitäten müssen nicht zwingend im Kern positioniert sein, sie können auch über Dienste bereitgestellt werden (Architektur) + +## Übersicht Betriebssystem +![image_17.png](image_17.png) +### Betriebssystemkern +- Der **Kernel-Bereich** ist privilegiert +### Die Anwendungsschicht +- Der **User-Bereich** ist nicht privilegiert, kann aber darauf aufbauende Funktionalitäten bereitstellen +- Zugriff auf die Hardware erfolgt alleinig durch die im _Kernel_ bereitgestellten Funktionalitäten (System-Calls) + + +## Monolitische Kerne +Ein Monolith enthält alle Funktionalitäten eines Betriebssystems + +| Pro | Con | +|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Bessere **Ausführungsgeschwindigkeit** da weniger _Prozesswechsel_ notwendig sind | Abgestürzte Komponenten des Kerns können nicht separat neu gestartet werden -> können das gesamte BS zum Absturz bringen | +| Durch jahrelange Entwicklungstätigkeit ist eine gewachsene **Stabilität** vorhanden | | + +## Minimale Kerne (Microkernel) +Hier befinden sich nur die nötigsten Funktionen im Kernel + +| Pro | Con | +|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Alle weiteren Funktionalitäten laufen als _Dienste_ bzw. _Server_ im User-Modus | Abgestürzte Komponenten des Kerns können nicht separat neu gestartet werden -> können das gesamte BS zum Absturz bringen | +| Ausgelagerte Funktionalitäten sind leichter austauschbar, bietet bessere _Stabilität_ und _Sicherheit_ | | + + +## Hybride Kerne +Enthalten Komponenten, die, aus Geschwindigkeitsgründen, zusätzlich in den Kernel aufgenommen werden \ No newline at end of file