1. Einleitung Flashcards
Was sind die Gründe weshalb wir Betriebssysteme einsetzten?
- um eine Standart Programmierschnittstelle ((API) Application Programming Interface) zu Verfügung zustellen, um auf die verschiedenen Arten der Ressourcen eines Computersystems zugreifen zu können.
- Damit mehrere Prozesse (z.B. Applikationen, Dienste, Benutzer interface) gleichzeitig ausgeführt werden können (multi-tasking)
- Das der Zugriff, den einzelne Programme haben, aufeinander, auf das Betriebssystem und auf andere Ressourcen, entsprechend kontrolliert wird. (Compartmentalization) –> Zugriffskontrolle (access control)
Was sind die Gründe dafür, dass wir Betriebssysteme benutzen?
- Um ein Standart-Programmierschnittstelle (API) zur Verfügung zu stellen, um auf die verschiedenen Arten von Ressourcen eines Computersystems zugreifen zu können und diesen Zugriff auf geordnet steuern zu können.
- Mehrere Prozesse gleichzeitig ausgeführt werden können (multi-tasking) z.B. Applikationen, Dienste (services), Benutzer Interface
- Das der Zugriff, den einzelne Programme/Prozesse haben, aufeinander, auf das Betriebssystem und auf andere Ressourcen, kontrolliert wird (Compartmentalization)
Welche Hardware Komponenten gibt es in aktuellen Computersystemen?
CPU (Central Processing Unit): Der Hauptprozessor –> die MMU(Memory Management Unit) ist Teil der CPU
EEPROM: Electrically Erasable Programmable Read-Only Memory
NIC: Network Interface Card
RAM: Random Access Memory
USB: Universal Serial Bus
Wie lauten die Subkomponenten der CPU?
- ALU: Arithmetic Logic Units(s), ist das eigentliche Rechenwerk, hier werden die Befehle ausgeführt
- fetch/decode units(s): lesen die Befehle ein
- Register: sind kleine Speicherzellen
- instruction register (ir): enthält den Befehl der gerade ausgeführt werden soll
- program counter (pc): enthält die Adresse des nächsten auszufüllenden Prozesses
-stack pointer (sp)
-accumulator (a): Rechenergebnisse der ALU wird hier gespeichert
- program status word (psw)/ flags: bestimmen in welchem Betriebsmodus sich die CPU gerade befindet - Externe Busse um mit dem Speicher oder der I/O direkt zu kommunizieren
Was beschreibt der Von-Neumann Zyklus?
Wie CPUs im wesentlichen funktionieren.
Erkläre den Von-Neumann Zyklus!
Beim Einschalten wird der program counter auf einen Startwert gesetzt
1. fetch instruction: der instruction register wird auf den Inhalt auf den der program counters zeigt, gesetzt
2. Der Program counter wird auf die nächste Instruktion zu setzten
3. execute instruction: dort wird die Instruktion ausgeführt
4. handle interrupt
Bei dem Von-Neumann Zyklus, gibt es welche Arten von Instruktionen, innerhalb der execute instruction?
- Prozessor - Memory: Daten zwischen dem Prozessor und dem Hauptspeicher zu transportieren
- Prozessor - I/O (Eingabe/Ausgabe Geräten): Daten transportieren
- Data Processing: führen Rechenoperationen aus
- Kontrollinstruktion: Modifizieren das pc-register
Welche zwei Modi gibt es in der CPU?
User mode
kernel mode
Erkläre den user mode!
Hat Einschränkungen bei der Art welche Instruktionen durchgeführt werden können z.B. I/O Instruktionen
hat Einschränkungen an dem memory access
wird benutzt von user Programmen und Teilen des Betriebssystem
Erkläre den kernel mode!
hat keine Einschränkungen von Instruktionen
das Betriebssystem benutzt diesen Modus
Erkläre das SMP (Symmetric Multiprocessing)!
2 oder mehr Prozessoren (CPUs), welche die selben Funktionen ausführen können sollen symmetrisch laufen
Sie greifen beide auf den selben Hauptspeicher zu und greifen beide auf die selben I/O devices zu.
Nenne die Reihenfolge der Speicherhierarche!
Prozessor register sind die schnellsten Speichereinheiten > Caches > Main memory (RAM) > Flash > Hard disk > Tape drivers sind die langsamsten aber haben viel Speicher
Was steuert die MMU (memory management unit)?
Den Zugriff des Prozessors auf den Hauptspeicher (RAM)
Was ist in der MMU (memory management untit) abgelegt?
Der Programm Code und Daten
Was sind die zwei Hauptaufgaben des Betriebssystems?
- Das Betriebssystem kann als Erweiterung des Computersystems gesehen werden
- Den Zugriff auf Ressourcen regulieren
Was sind die Grundkonzepte von Betriebssystemen?
Prozesse (eine Instanz eines Programmes), haltet den address space und andere Ressourcen
Files/Dateien sind eine Abstraktion für persistene (sollen nicht verloren gehen) Daten
Was ist ein Prozess?
Ein Programm, welches sich in der Ausführung befindet.
Was sind Datenelemente die speziell dem Prozess zugeordnet werden?
process ID (PID)
Zeiger für die Adress Regionen
weitere Zeiger (handles) für verschiedene Ressourcen
den jetzigen Zustand des Prozess (laufend, wartend, ausgelagert,…)
Priorität
Welche Aufgaben hat das Betriebssystem im Bezug auf Prozesse?
Starten und terminieren von Prozessen
Pausieren und wiederaufnehmen
Scheduling/ Zuweisen von Rechenressourcen an Prozessen
Trennen Prozesse von einander (Adress Raum, Ressourcen)
Kommunikation und Synchronisatzion
Wo werden Prozesse ausgeführt?
Im RAM (Random Access Memory) welcher nicht persistent ist
Welche Gliederungen gibt es von Adress Räumen (address spaces)?
Text: beinhaltet den Programmcode (Instruktionen) und die statischen Daten (meist nicht veränderlich)
Daten (data): dort kann dynamisch Speicher reserviert und wieder freigegeben werden
Stack: beinhaltet alle lokalen Variablen und Parameter
Welche Aufgaben hat das Betriebssystem in Bezug auf den Speicher?
Buchführung (tracking) welche Regionen bereits von geladenen Prozessen benutzt werden
neu zuweisen und freigeben von Speicher
Isolieren von Speicher zwischen verschiedenen Prozessen
Welche Aufgaben hat das Betriebssystem in Bezug auf Dateien (files)?
Erzeugen und Löschen von Dateien
Strukturieren (hierarchisch)
Retrieving
Modifizieren
Persistieren
Kontrolle über den Zugriff
Welche andere Arten von Dateien, also Dateien die keine Daten speichern, gibt es?
Verzeichnisse
Charakter oder block devices
Pipes
Sockets
Hard and soft links (Verknüpfungen): können zusätzliche Namen für Dateien erstellen)
Was ist die Hauptaufgabe von Pipes?
Verbinden von Ein und Ausgaben von Prozessen
Was ist das Kiss Prinzip?
Kombination von mehreren Programmen über pipes
Was sind monolitische (monolithic) Systeme?
haben keine klare Struktur
werden von spezifischen Applikation Bedürfnisse getrieben
Was ist ein Kernel?
Ist der Hauptteil des Betriebssystems; der Teil des Betriebssystems, der immer im Hauptspeicher geladen ist
Was sind die 3 Hauptaufgaben des Kernel?
scheduling von Prozessen
Speicherverwaltung und Verwaltung von I/O Geräten
Kommunikation zwischen Prozessen –> IPC (inter-process communication)