BetriebsSys Flashcards

1
Q

Was ist ein Prozess

A

Ein ausgeführtes Programm das vom OS verwaltet wird
Beinhaltet Programmcode, Aktivitäten, Prozesssteuerungsinformationen und benötigte Ressourcen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Unterschied Programm und Prozess

A

Programm: Statische Ansammlung von Befehlen und Daten, die auf Festplatte gespeichert sind und erfordert RAM und CPU zur ausführung
Prozess: Nach Ausführen eines Programms wird es zu aktivem Prozess

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie erzeugt OS Illusion vieler CPUs

A

Durch Timesharing, CPU-Zeit wird in Zeitscheiben aufgeteilt und abwechselnd Prozessen zugewiesen
Das erweckt Anschein, dass mehrere Prozesse gleichzeitig ausgeführt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Rolle von Speicher und CPU in Prozessverwaltung

A

RAM: Speichert Programmanweisungen und Daten
CPU: Führt Befehle aus und verwendet Register zum Speichern temporärer Daten und Statusinformationen wie den PC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist der adressierbare Speicher eines Prozesses

A

Jeder Prozess hat eigenen Adressraum, der Speicherbereich umfasst, auf den er nicht zugreifen kann
Verhindert, dass Prozesse auf Speicher anderer Prozesse zugreifen und sich beeinflussen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Rolle von Dateien und Registern in Prozessen

A

Prozesse greifen auf Dateien zu, um Daten zu lesen oder zu schreiben
Nutzen verschiedene Register für I/O, Stack Pointer, Funktionsparameter, lokale Variablen und Rücksprungadressen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Warum ist Speichern von Prozessinformationen wichtig

A

Informationen über Prozess können gespeichert werden und später wiederhergestellt werden
Ist essentiell für Context Switch, bei dem CPU von einem Prozess zum anderen wechselt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist die Steuerinstanz bei Prozessverwaltung

A

Teil des OS, oft der Scheduler, der entscheidet, welcher Prozess als nächstes ausgeführt wird, basierend auf Algorithmen und Prioritäten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Methoden für Virtualisierung

A

Protokolle und Mechanismen, die erforderlich sind, um Prozesse zu starten und zu stoppen sowie Regeln und Richtlinien, wie Prozesse gleichzeitig ausgeführt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Funktionen hat Prozess API

A

Create: Start eines neuen Prozesses
Destroy: Beenden eines Prozesses
Wait: Warten auf Prozess
Status: Statusabfrage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Voraussetzung zum erstellen von Prozess

A

Programm muss in ausführbarer Form vorliegen und in Adressraum geladen werden
Früher: Gesamtes Programm geladen (eager loading)
Heute: Benötigter Programmcode wird geladen (Lazy loading)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Unterschied Stack und Heap

A

Stack: Für lokale Variablen, Funktionsparameter und Rücksprungadressen (Nach First in Last out prinzip)
Heap: Dynamische Speicherzuweisung mit verwendung von malloc und free

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein PCB

A

Prozesskontrollblock
Datenstruktur, die alle wichtigen Infos über Prozess enthält und Infos über Status (Ready, Running, Blocked, Zombie)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind Adressräume

A

Isolierte Speicherbereiche, die jedem Prozess zugeordnet sind
Jeder Prozess glaub er habe Speicherbereich für sich allein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist Speichervirtualisierung

A

Ermöglicht, dass Prozesse isolierte Adressräume haben
Erhöht Stabilität und Sicherheit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie werden Programminstruktionen adressiert

A

Code der ausgeführt wird, ist im Speicher abgelegt und wird von PC adressiert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist der Heap

A

Dynamischer Speicherbereich, in dem Speicher während Laufzeit eines Programms angefordert und freigegeben werden kann

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was ist der Stack

A

Speicherbereich, der für Funktionsaufrufe, lokale Variablen und Rücksprungadressen verwendet wird
Wächst bei Funktionsaufrufen und schrumpft bei deren Beendigung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was bedeutet eigener Speicherinhalt für jeden Prozess

A

Jeder Prozess hat eigenen Adressraum, auf den nur er zugreifen kann
Wenn Speicher für Prozess nicht ausreicht, wird bei Context Switch der Adressraum des aktuellen Prozesses gespeichert und der neue Prozess geladen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was sind Bestandteile von Adressraum

A

Besteht aus
Code: unveränderlich und einfach zu laden
Heap: Wächst nach oben
Stack: Wächst nach unten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was sind virtuelle Adressen

A

Prozess denkt er sei bei Adresse 0 im Speicher geladen, befindet sich aber bei verschiedenen physischen Adressen
Bei jedem Zugriff auf Variablen oder Konstanten muss virtuelle Adresse in physische umgerechnet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Wie funktioniert automatische Reservierung von Speicher auf dem Stack

A

void func() {
int x; // Speicher für x wird auf Stack reserviert
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Wie funktioniert manuelle Reservierung von Speicher auf dem Heap

A

void func() {
int *x = (int *) malloc(sizeof(int)); // Speicher auf dem Heap reservieren

free(x); // Speicher freigeben
}

double *d = (double *) malloc(sizeof(double)); // Speicher für einen double-Wert reservieren

double *x = malloc(10 * sizeof(double));

free(x); // Speicher freigeben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was ist virtuelle Adressraum in Bezug auf Malloc und Free

A

Malloc und Free arbeiten innerhalb von virtuellen Adressraum eines Prozesses
Auch bei Speicherlecks wird gesamter Speicher nach Ende des Prozesses freigegeben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Welche Systemaufrufe ändern den Heap

A

Systemaufrufe brk und sbrk ändern Heap und mmap erstellt neue Speichermapping im virtuellen Adressraum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Was sind Ziele der Speichervirtualisierung

A

Transparenz (Prozess merkt nicht, dass er virtuellen Speicher nutzt)
Sicherheit (Prozesse sind voneinander Isoliert und geschützt)
Effizient (Speicher und Zeiteffizient durch Hardware-Features)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Typische Fehler mit Umgang mit Speicher

A

Vergessen Speicher zu reservieren
Zu wenig Speicher reserviert
Speicher reserviert aber nicht initialisiert
Speicher nicht freigegeben
Speicher mehrfach freigegeben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Problem bei direkter Ausführung von Prozessen

A

Sicherstellung, dass Prozess keine verbotenen Aktionen ausführt, dass eingeschränkte Aktionen korrekt gehandhabt werden und Prozess Kontrolle wieder abgibt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Was sind User und Kernel Mode

A

User Mode: Programme laufen in eingeschränktem Modus, bestimmte Operationen sind eingeschränkt
Kernel Mode: Erlaubt alle Operationen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Syscall

A
  1. Programm führt Trap Instruktion aus
  2. Springt in Kernel Mode
  3. Führt Operation im SysCall Handler aus
  4. Kehrt in User Mode mit return from trap Instruktion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Welche Hardwareunterstützung bei Direct Excecution

A

Bei Wechsel in Kernel Mode werden wichtige Register gespeichert und später wiederhergestellt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Trap Table

A

Definiert, welcher Code bei welchem Ereignis ausgeführt wird
Wird beim Systemstart im Kernel Mode erstellt und Hardware mitgeteilt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Scheduling Policy

A

Regeln, nach denen Scheduler entscheidet, welcher Prozess als nächstes ausgeführt wird

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Turnaround Zeit

A

Zeitspanne von der Ankunft eines Prozesses bis zu dessen Abschluss

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

FIFO

A

Langsame Prozesse blockieren schnelle Prozesse
Einfach zu implementieren

(P1 + P2 +Pn) / n

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Shortest Job First (SJF)

A

Kürzester Job wird zuerst ausgeführt
Problem, wenn Jobs nicht gleichzeitig ankommen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Shortest Time-to-Completion First (STCF)

A

Ähnlich wie SJF aber preemptive, Prozesse können unterbrochen werden
Geht nur, wenn Laufzeit bekannt ist
Problem: Wenn ständig neue kürzere Jobs eintreffen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Round Robin

A

Job wird für bestimmte Zeitspanne ausgeführt
Bei jedem Wechsel von Prozess wird Context Switch ausgeführt
Zeitspanne sollte größer sein als Context Switch dauert, sonst lohnt es sich nicht
Gut für Response Time, schlecht für Turnaround Time
(Alle fairen Scheduler sind schlecht für Turnaround Time)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Berchnung Turnaroung Time

A

Turnaround = Completion - Arrival

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Berechnung Response Time

A

Response = Firstrun - Arrival

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Convoy Effekt

A

Langsame Prozesse blockieren schnelle Prozesse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Was passiert mit einem Job, der IO durchführt

A

Job ist blockiert und kann CPU nicht nutzen
Scheduler kann in der Zeit anderen Job laufen lassen
Sobald IO fertig ist, wird blockierter Job wieder auf ready gesetzt und kann CPU wieder nutzen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Unterschied Ressourcen Nutzung mit und ohne Overlapping

A

Ohne Overlapping können CPU oder I/O ungenutzt bleiben
Mit Overlapping können CPU und I/O gleichzeitig genutzt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Herausforderung ohne Kenntnis der Prozessdauer

A

Scheduler kennt Restlaufzeit von Prozess nicht und muss dennoch Responsetime und Turnaround-Zeiten minimieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Regeln Multi Level Feedback Queue

A

Mehrere Queues mit unterschiedlichen Prio-Leveln: Hohe Prio läuft zuerst
RR innerhalb einer Queue: Bei gleicher Prio laufen sie in RR
Prio ist dynamisch und hängt von beobachteten Verhalten ab
Neue Jobs erhalten höchste Prio
Job der gesamte Zeitscheibe aufbraucht wird herabgestuft
Job der CPu vor Ablauf freigibt behält Prio

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Beispiel für Verhalten von Jobs in MLFQ

A

Langlaufender Job: Braucht gesamte Zeitscheibe auf, wird herabgestuft
Kurzläufer: Startet in der höchste und bleibt dort, wenn CPU schnell freigibt
Mischung IO und CPU Intensiv: Wenn CPU schnell freigeben bleibt hohe Prio

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Probleme MLFQ

A

Scheduler Manipulation: Jobs können vor Ablauf der Zeitscheibe IO Operation ausführen um Prio zu behalten, Lösung: Priority Boost
Verbesserte Buchführung: Nicht nach Zeitscheibe herabstufen, sondern Gesamtzeit in Queue berechnen und Prio reduzieren sobald Max. Zeit erreicht ist

48
Q

Grundidee Lottery Scheduling

A

Prozesse erhalten Tickets, die CPU-Anteile repräsentieren
Scheduler zieht zufällig Ticket und Gewinnerprozess läuft

49
Q

Überlegung für Lottery Scheduling

A

Je länger Jobs laufen desto besser statistische Verteilung
Guter Zufallsgenerator nötig
Jobs müssen fair in System Integriert werden

50
Q

Linux Completely Fair Scheduler

A

CFS verwendet virtuelle Laufzeit für faire Zuteilung von Ressourcen
Prozess mit geringsten Laufzeit wird ausgewählt

51
Q

Berechnung in CFS

A

sched_latency: Gesamte Zeitspanne in der alle Prozesse mind. einmal laufen
mind_granularity: Mindestdauert einer Zeitscheibe
Gewichtung basierend auf nice levels zur Priorisierung von Prozessen

52
Q

Welche Datenstrukturen nutzen CFS

A

Rot-Schwarz-Bäume um Prozesse effizient zu verwalten und Skalierbarkeit zu gewährleisten

53
Q

CFS mit I/O

A

Wenn Prozess nach IO aufwacht, erhält er minimale Laufzeit im Baum um starvation zu vermeiden

54
Q

Was wird bei Speicherverwaltung oft angenommen

A

Alle Adressräume sind gleich groß
Bedeutet, dass bei Speicherzuweisung nur nächste freie Lücke gefunden und genutzt werden muss

55
Q

Warum funktioniert Annahme von gleich großen Speicher nicht immer effizient

A

Wenn Segmentierung eingeführt wird, da unterschiedliche Speicherabschnitte unterschiedlicher Größen angefordert und freigegeben werden

56
Q

Externe Fragmentierung

A

Tritt auf, wenn physischer Speicher in viele kleine, nicht zusammenhängende Blöcke aufteilt ist
Häufig bei Segmentierung

57
Q

Was ist interne Fragmentierung

A

Wenn innerhalb eines zugewiesenen Speicherblocks ungenutzter Speicher verbleibt

58
Q

Was ist eine Free List

A

Datenstruktur zur Verwaltung freier Speicherbereiche die auf einer linked list basieren
Ermöglicht dynamische allokation und freigabe von Speicher

59
Q

Freelist bei Speicheranforderungen

A

Free List sucht geeigneten Block
Wenn Block größer als benötigt, wird Block aufgeteilt und Rest verbleibt als neuer Block

60
Q

Freelist bei Speicherfreigabe

A

Wenn Speicherblock freigegeben wird, wird er wieder in Freelist eingefügt
Um Fragmentierung zu minimieren versucht Speicherverwaltung angrenzende Blöcke zusammenzufassen

61
Q

Problem bei Freigabe von Speicherblöcken

A

Wenn mittlerer Block freigegeben wird, ohne angrenzende Blöcke zu berücksichtigen, können mehrere kleine unzusammenhängende Blöcke entstehen
Führt zu Fragmentierung

62
Q

Was ist ein Thread

A

Ausführungsstrang innerhalb eines Programms
Multi-threaded Programme besitzen mehrere Threads die sich Adressraum eines Prozesses teilen und aus dieselben Daten zugreifen können
Ermöglicht Parallelisierung und verbessert effizienz

63
Q

Warum sind Threads nützlich

A

Ermöglichen Parallelisierung bei mehreren CPUs
Erhöhen Effizient bei I/O Operationen
Erlauben gleichzeitiges Arbeiten an denselben Daten innerhalb von Prozess

64
Q

Race Condition

A

Tritt aufm wenn Ergebnis eines Programms von der Reihenfolge und dem Timing der Threads abhängt

65
Q

Kritischer Abschnitt

A

Teil eines Code, der Race Conditions auslösen kann und daher vor gleichzeitiger Ausführung durch mehrere Threads geschützt werden muss

66
Q

Wie wird mutual exclusion bei Threads erreicht

A

Durch Locks, die sicherstellen, dass nur ein Thread auf kritischen Abschnitt zugreifen kann

67
Q

OISUX

A

Standard, der Schnittstellen bereitstellt um Threads zu erstellen und zu kontrollieren

68
Q

Wie wird Thread mit POSIX erstellt

A

include <pthread.h></pthread.h>

int pthread_create(pthread_t thread, const pthread_attr_t attr, void *(start_routine)(void), void *arg);

thread: Pointer auf Struktur vom Typ pthread_t
attr: Attribute des Threads
start_routine: Function Pointer auf Routine, die vom Thread ausgeführt werden soll
arg: Argument, das an Routine übergeben wird

69
Q

Wie wird auf Ende von Thread gewartet

A

int pthread_join(pthread_t thread, void **value_ptr);

thread: Spezifiziert Thread auf den gewartet wird
value_ptr: Zeiger auf Rückgabewert der Routine

70
Q

Was ist Mutex und wie wird er verwendet

A

pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_lock(&lock);
// kritischer Abschnitt
pthread_mutex_unlock(&lock);

Mutex stellt mutual exclusion sicher, indem es nur einem Thread erlaubt, den kritischen Abschnitt zu betreten

71
Q

Wichtige Anforderungen an Locks

A

Jeder Thread muss faire Chance haben Lock zu erhalten
Aufwand für Setzen und Freigeben von Lock sollte gering sein

72
Q

Condition Variables in POSIX

A

int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
int pthread_cond_signal(pthread_cond_t *cond);

Condition Variables ermöglichen Verständigung zwischen Threads
pthread_cond_wait wartet auf Signal und pthread_cond_signal sendet Signal

73
Q

Was sind Semaphore

A

Objekt mit einem Integer Wert und dazugehörigen Methoden
Wird zur Synchronisation von Threads genutzt
Kann als Lock für kritische Abschnitte verwendet werden und Anzahl gleichzeitiger Zugriffe Regeln

74
Q

Wie wird Semaphore initialisiert

A

include <semaphore.h></semaphore.h>

sem_t s;
sem_init(&s, 0, 1);

Initialisiert Semaphore s mit dem Wert 1
Parameter 0 gibt an, dass Semaphore zwischen Threads im selben Prozess geteilt wird

75
Q

Was macht sem_wait()

A

Verringert den Wert der Semaphore um 1 und lässt aufrufenden Thread warten, falls Wert negativ wird

76
Q

Was macht sem_post()

A

Erhöht den Wert der Semaphore um 1 und weckt, falls vorhanden einen wartenden Thread auf

77
Q

Wie kann Semaphore als Lock verwendet werden

A

Thread ruft sem_wait auf um Wert der Semaphore zu verringern und Kritischen Abschnitt zu betreten
Nach Beendigung des kritischen Abschnitts ruft Thread sem_post auf um Wert der Semaphore zu erhöhen und evtl. wartende Thread zu wecken

78
Q

Was passiert wenn Thread sem_wait aufruft während anderer Thread kritischen Abschnitt hält

A

Aufrufender Thread verringert Wert der Semaphore auf -1 und wartet bis der andere Thread sem_post aufruft und Wert der Semaphore erhöht

79
Q

BInäre Semaphore

A

Semaphore mit nur zwei Zuständen
0: gesperrt
1: nicht gesperrt

80
Q

Wie wird Semaphore zu Signalisierung zwischen Parent und Child Thread verwendet

A

Parent Thread initialisiert Semaphore auf 0
Child Thread führt Operationen durch und ruft sem_post auf um Parent Thread zu signalisieren das er fertig ist
Parent Thread wartet mit sem_wait auf Signal von Child Thread

81
Q

Deadlock

A

Zustand, in dem zwei oder mehr Threads sich gegenseitig blockieren
Jeder wartet auf Ressource, die anderer Thread hält

82
Q

Mutex

A

Mechanismus um sicherzustellen, dass nur ein Thread gleichzeitig auf kritischen Abschnitt zugreift

83
Q

Speicherbus

A

Dient zur schnellen Anbindung des HauptspeichersW

84
Q

Welche Funktion hat IO-Bus

A

Wird zur systeminternen Kommunikation verwendet, z.B. PCI

85
Q

Wofür Peripherie-Bus

A

Dient zur Anbindung von Peripheriegeräten wie SATA oder USB

86
Q

Warum mehrere Bus Systeme

A

Existieren aufgrund physikalischer und kostentechnischer Gründe
Schnellere Busse sind kürzer und teurer
Verschiedene Bus Systeme ermöglichen effiziente Anbindung von Geräten mit unterschiedl. Anforderungen

87
Q

Canonical Device

A

Besteht aus Hardware Interface zu Steuerung des Gerätes und oft aus eigenen Chips mit CPU und Speicher

88
Q

Welche Register zur Ansteuerung von I/O-Geräten

A

Status Register: Zeigt Gerätestatus an
Command Register: Übermittelt Befehle an Gerät
Data Register: Übermittelt Daten an Gerät

89
Q

4 Schritte Prozess zur Ansteuerung von IO Gerät

A
  1. Warten bis Gerät bereit
  2. Daten in Data Register schreiben
  3. Kommando in Command Register schreiben
  4. Warten bis Gerät fertig
90
Q

Polling

A

Fortwährende Abfragen des Status Registers
Nachteil ist, dass CPU Zyklen verschwendet werden und andere Prozesse verlangsamt

91
Q

Programmed I/O

A

Bei PIO wird CPU zur Datenübertragung genutzt
Ineffizient, da CPU mit trivialen aufgaben beschäftigt wird

92
Q

Funktionsweise Interrupt

A
  1. OS stellt Anfrage an Gerät
  2. Prozess wird schlafen geschickt
  3. Context Switch zu anderem Prozess
  4. Gerät löst Hardware-Interrupt aus sobald fertig
  5. OS führt Interrupt Service Routine (ISR) aus
93
Q

Vor und und Nachteile Polling vs Interrupts

A

Polling: CPU wartet bis Gerät fertig aber ineffizient da CPU Zyklen verschwendet werden
Interrupts: CPU kann während Interrupt andere Aufgaben erledigen

94
Q

Livelock

A

Tritt auf wenn zu viele Interrupts System überlasten
Kann durch kurzes Polling dann Interrupt oder Coalescing (verzögerter Interrupt) vermieden werden

95
Q

Direct Memory Access (DMA)

A

Mechanismus, bei dem separate DMA-Engine Datenfluss zwischen Gerät und Hauptspeicher orchestriert
CPU wird von trivialen Aufgaben entlastet

96
Q

Funktion Gerätetreiber

A

Gerätetreiber implementiert gerätespezifische Funktionalität und ermöglicht Interaktion zwischen OS und Gerät

97
Q

Warum Gerätetreiber

A

Wichtig, weil sie 70% des Codes von OS ausmachen
Für Funktionalität der Hardware
Herausforderung in Kompatibilität und Stabilität

98
Q

Warum sind HDDs am weitesten vertreitet

A

Kosteneffizient und hohe Kapazität

99
Q

Wie ist moderne Hard Disk aufgebaut

A

Besteht aus Sektoren die normalerweise 512 Byte Blöcke sind und nummeriert sind

100
Q

Atomare Schreiboperation bei HDD

A

Garantiert, dass Schreibvorgang auf 512 Byte Blöcken vollständig ohne Unterbrechung durchgeführt werden

101
Q

Torn Write

A

Tritt auf, wenn bei Schreiben Stromausfall auftritt
Blöcke werden nicht alle vollständig geschrieben

102
Q

Welche Annahmen über HDDs sind aufgrund von SSDs ungültig geworden

A

Schnelle Zugriffe auf nahe beieinander liegende Blöcke und schnellere sequentielles Lesen/Schreiben sind bei SSDs nicht mehr gültig, da SSDs keine beweglichen Teile haben -> Geringe Zugriffszeiten

103
Q

Unterschied Rotational Delay und Seek Time

A

Rotational Delay: Zeit bis gesuchter Sektor unter Lesekopf ist
Seek Time: Zeit die Kopf benötigt um zu bestimmten Track zu gelangen

104
Q

Ziel Disk scheduling

A

Minimierung der Zugriffszeiten durch geeignete Anordnung der IO Anfragen

105
Q

RAID 0

A

Striping ohne Redundanz
Cap. N*B
Bei Ausfall einer Disk alle Daten weg
Hohe sequentielle Lese und Schreibraten

106
Q

RAID 1

A

Verwendet Monitoring
Cap. N*B / 2
Verkraftet Ausfall einer Disk
Gute Lese aber durchschnittl. Schreibraten

107
Q

RAID 4

A

Verwendet Paritätsbit auf seperaten Disk
Cap. N-1 * B
Verkraftet Ausfall einer Disk
Gute Lese und Schreibraten aber langsame wahlfreie Schreiboperationen

108
Q

RAID 5

A

Verwendet verteile Patirätsblöcke
Cap. N-1*B
Verkraftet Ausfall einer Disk
Verbesserte wahlfreie Schreiboperation im Vergleich zu RAID 4

109
Q

VMs

A

Virtuelle Maschinen simulieren vollständige Hardwareumgebung
Betreiben ein OS unabhängig vom Host-System
Jede VM benötigt dedizierte Ressourcen (CPU, RAM, Festplattenspeicher)

110
Q

Vortiele VMs

A

Isolation
Unabhängiges Management
Backup-Fähigkeit
Verschiedene OS auf gleicher physischen Hardware

111
Q

Nachteile VMs

A

Hoher Ressourcenverbrauch
Langsame Startzeit
Warten auf Hochfahren von VM

112
Q

Containerisierung

A

Betreibt Anwendung in isolierten Einheiten (Containern) auf gemeinsamen Betriebssystem Kernel
Container teilen OS des Hosts und nutzen nur benötigte Ressourcen

113
Q

Vorteile Container

A

Leichtgewichtig
Schnell startbar
Leicht skalierbar
Isolierte aber ressourcenschonende Umgebung für Anwendungen

114
Q

Container vs. VMs

A

Container: Bieten isolierte Umgebung im User-Space für Anwendungen nutzen aber Kernel von Host OS und virtualisieren nicht gesamtes OS wie es VMs machen

115
Q

Docker Compose

A

Werkzeug zur Orchestrierung mehrere Container und deren Netzwerkkonfig.
Konfigurationsdatei definiert Services, Images, Umgebungsvariablen, Netzwerke und Volumes für Anwendung

116
Q

Beispielrechnung FIFO

A

Prozess Ankunftszeit Ausführungszeit
P1 0 5
P2 1 3
P3 2 7
P4 3 2

P1 + P2 + P3 + P4 / n

((0 - 0) + (5-1) + (8-2) + (15-3)) / 4
(0 + 4 + 6 + 12) / 4
5,5

117
Q

Beispielrechnung SJF

A

Prozess Ankunftszeit Ausführungszeit
P1 0 7
P2 2 5
P3 3 1
P4 5 3

P1+P3+P4+P2 / 4
(1 + 0 + 3 + 9) / 4
3,25