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
Welche Systemaufrufe ändern den Heap
Systemaufrufe brk und sbrk ändern Heap und mmap erstellt neue Speichermapping im virtuellen Adressraum
26
Was sind Ziele der Speichervirtualisierung
Transparenz (Prozess merkt nicht, dass er virtuellen Speicher nutzt) Sicherheit (Prozesse sind voneinander Isoliert und geschützt) Effizient (Speicher und Zeiteffizient durch Hardware-Features)
27
Typische Fehler mit Umgang mit Speicher
Vergessen Speicher zu reservieren Zu wenig Speicher reserviert Speicher reserviert aber nicht initialisiert Speicher nicht freigegeben Speicher mehrfach freigegeben
28
Problem bei direkter Ausführung von Prozessen
Sicherstellung, dass Prozess keine verbotenen Aktionen ausführt, dass eingeschränkte Aktionen korrekt gehandhabt werden und Prozess Kontrolle wieder abgibt
29
Was sind User und Kernel Mode
User Mode: Programme laufen in eingeschränktem Modus, bestimmte Operationen sind eingeschränkt Kernel Mode: Erlaubt alle Operationen
30
Syscall
1. Programm führt Trap Instruktion aus 2. Springt in Kernel Mode 3. Führt Operation im SysCall Handler aus 3. Kehrt in User Mode mit return from trap Instruktion
31
Welche Hardwareunterstützung bei Direct Excecution
Bei Wechsel in Kernel Mode werden wichtige Register gespeichert und später wiederhergestellt
32
Trap Table
Definiert, welcher Code bei welchem Ereignis ausgeführt wird Wird beim Systemstart im Kernel Mode erstellt und Hardware mitgeteilt
33
Scheduling Policy
Regeln, nach denen Scheduler entscheidet, welcher Prozess als nächstes ausgeführt wird
34
Turnaround Zeit
Zeitspanne von der Ankunft eines Prozesses bis zu dessen Abschluss
35
FIFO
Langsame Prozesse blockieren schnelle Prozesse Einfach zu implementieren (P1 + P2 +Pn) / n
36
Shortest Job First (SJF)
Kürzester Job wird zuerst ausgeführt Problem, wenn Jobs nicht gleichzeitig ankommen
37
Shortest Time-to-Completion First (STCF)
Ä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
38
Round Robin
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)
39
Berchnung Turnaroung Time
Turnaround = Completion - Arrival
40
Berechnung Response Time
Response = Firstrun - Arrival
41
Convoy Effekt
Langsame Prozesse blockieren schnelle Prozesse
42
Was passiert mit einem Job, der IO durchführt
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
43
Unterschied Ressourcen Nutzung mit und ohne Overlapping
Ohne Overlapping können CPU oder I/O ungenutzt bleiben Mit Overlapping können CPU und I/O gleichzeitig genutzt werden
44
Herausforderung ohne Kenntnis der Prozessdauer
Scheduler kennt Restlaufzeit von Prozess nicht und muss dennoch Responsetime und Turnaround-Zeiten minimieren
45
Regeln Multi Level Feedback Queue
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
46
Beispiel für Verhalten von Jobs in MLFQ
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
47
Probleme MLFQ
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
Grundidee Lottery Scheduling
Prozesse erhalten Tickets, die CPU-Anteile repräsentieren Scheduler zieht zufällig Ticket und Gewinnerprozess läuft
49
Überlegung für Lottery Scheduling
Je länger Jobs laufen desto besser statistische Verteilung Guter Zufallsgenerator nötig Jobs müssen fair in System Integriert werden
50
Linux Completely Fair Scheduler
CFS verwendet virtuelle Laufzeit für faire Zuteilung von Ressourcen Prozess mit geringsten Laufzeit wird ausgewählt
51
Berechnung in CFS
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
Welche Datenstrukturen nutzen CFS
Rot-Schwarz-Bäume um Prozesse effizient zu verwalten und Skalierbarkeit zu gewährleisten
53
CFS mit I/O
Wenn Prozess nach IO aufwacht, erhält er minimale Laufzeit im Baum um starvation zu vermeiden
54
Was wird bei Speicherverwaltung oft angenommen
Alle Adressräume sind gleich groß Bedeutet, dass bei Speicherzuweisung nur nächste freie Lücke gefunden und genutzt werden muss
55
Warum funktioniert Annahme von gleich großen Speicher nicht immer effizient
Wenn Segmentierung eingeführt wird, da unterschiedliche Speicherabschnitte unterschiedlicher Größen angefordert und freigegeben werden
56
Externe Fragmentierung
Tritt auf, wenn physischer Speicher in viele kleine, nicht zusammenhängende Blöcke aufteilt ist Häufig bei Segmentierung
57
Was ist interne Fragmentierung
Wenn innerhalb eines zugewiesenen Speicherblocks ungenutzter Speicher verbleibt
58
Was ist eine Free List
Datenstruktur zur Verwaltung freier Speicherbereiche die auf einer linked list basieren Ermöglicht dynamische allokation und freigabe von Speicher
59
Freelist bei Speicheranforderungen
Free List sucht geeigneten Block Wenn Block größer als benötigt, wird Block aufgeteilt und Rest verbleibt als neuer Block
60
Freelist bei Speicherfreigabe
Wenn Speicherblock freigegeben wird, wird er wieder in Freelist eingefügt Um Fragmentierung zu minimieren versucht Speicherverwaltung angrenzende Blöcke zusammenzufassen
61
Problem bei Freigabe von Speicherblöcken
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
Was ist ein Thread
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
Warum sind Threads nützlich
Ermöglichen Parallelisierung bei mehreren CPUs Erhöhen Effizient bei I/O Operationen Erlauben gleichzeitiges Arbeiten an denselben Daten innerhalb von Prozess
64
Race Condition
Tritt aufm wenn Ergebnis eines Programms von der Reihenfolge und dem Timing der Threads abhängt
65
Kritischer Abschnitt
Teil eines Code, der Race Conditions auslösen kann und daher vor gleichzeitiger Ausführung durch mehrere Threads geschützt werden muss
66
Wie wird mutual exclusion bei Threads erreicht
Durch Locks, die sicherstellen, dass nur ein Thread auf kritischen Abschnitt zugreifen kann
67
OISUX
Standard, der Schnittstellen bereitstellt um Threads zu erstellen und zu kontrollieren
68
Wie wird Thread mit POSIX erstellt
#include 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
Wie wird auf Ende von Thread gewartet
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
Was ist Mutex und wie wird er verwendet
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
Wichtige Anforderungen an Locks
Jeder Thread muss faire Chance haben Lock zu erhalten Aufwand für Setzen und Freigeben von Lock sollte gering sein
72
Condition Variables in POSIX
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
Was sind Semaphore
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
Wie wird Semaphore initialisiert
#include 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
Was macht sem_wait()
Verringert den Wert der Semaphore um 1 und lässt aufrufenden Thread warten, falls Wert negativ wird
76
Was macht sem_post()
Erhöht den Wert der Semaphore um 1 und weckt, falls vorhanden einen wartenden Thread auf
77
Wie kann Semaphore als Lock verwendet werden
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
Was passiert wenn Thread sem_wait aufruft während anderer Thread kritischen Abschnitt hält
Aufrufender Thread verringert Wert der Semaphore auf -1 und wartet bis der andere Thread sem_post aufruft und Wert der Semaphore erhöht
79
BInäre Semaphore
Semaphore mit nur zwei Zuständen 0: gesperrt 1: nicht gesperrt
80
Wie wird Semaphore zu Signalisierung zwischen Parent und Child Thread verwendet
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
Deadlock
Zustand, in dem zwei oder mehr Threads sich gegenseitig blockieren Jeder wartet auf Ressource, die anderer Thread hält
82
Mutex
Mechanismus um sicherzustellen, dass nur ein Thread gleichzeitig auf kritischen Abschnitt zugreift
83
Speicherbus
Dient zur schnellen Anbindung des HauptspeichersW
84
Welche Funktion hat IO-Bus
Wird zur systeminternen Kommunikation verwendet, z.B. PCI
85
Wofür Peripherie-Bus
Dient zur Anbindung von Peripheriegeräten wie SATA oder USB
86
Warum mehrere Bus Systeme
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
Canonical Device
Besteht aus Hardware Interface zu Steuerung des Gerätes und oft aus eigenen Chips mit CPU und Speicher
88
Welche Register zur Ansteuerung von I/O-Geräten
Status Register: Zeigt Gerätestatus an Command Register: Übermittelt Befehle an Gerät Data Register: Übermittelt Daten an Gerät
89
4 Schritte Prozess zur Ansteuerung von IO Gerät
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
Polling
Fortwährende Abfragen des Status Registers Nachteil ist, dass CPU Zyklen verschwendet werden und andere Prozesse verlangsamt
91
Programmed I/O
Bei PIO wird CPU zur Datenübertragung genutzt Ineffizient, da CPU mit trivialen aufgaben beschäftigt wird
92
Funktionsweise Interrupt
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
Vor und und Nachteile Polling vs Interrupts
Polling: CPU wartet bis Gerät fertig aber ineffizient da CPU Zyklen verschwendet werden Interrupts: CPU kann während Interrupt andere Aufgaben erledigen
94
Livelock
Tritt auf wenn zu viele Interrupts System überlasten Kann durch kurzes Polling dann Interrupt oder Coalescing (verzögerter Interrupt) vermieden werden
95
Direct Memory Access (DMA)
Mechanismus, bei dem separate DMA-Engine Datenfluss zwischen Gerät und Hauptspeicher orchestriert CPU wird von trivialen Aufgaben entlastet
96
Funktion Gerätetreiber
Gerätetreiber implementiert gerätespezifische Funktionalität und ermöglicht Interaktion zwischen OS und Gerät
97
Warum Gerätetreiber
Wichtig, weil sie 70% des Codes von OS ausmachen Für Funktionalität der Hardware Herausforderung in Kompatibilität und Stabilität
98
Warum sind HDDs am weitesten vertreitet
Kosteneffizient und hohe Kapazität
99
Wie ist moderne Hard Disk aufgebaut
Besteht aus Sektoren die normalerweise 512 Byte Blöcke sind und nummeriert sind
100
Atomare Schreiboperation bei HDD
Garantiert, dass Schreibvorgang auf 512 Byte Blöcken vollständig ohne Unterbrechung durchgeführt werden
101
Torn Write
Tritt auf, wenn bei Schreiben Stromausfall auftritt Blöcke werden nicht alle vollständig geschrieben
102
Welche Annahmen über HDDs sind aufgrund von SSDs ungültig geworden
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
Unterschied Rotational Delay und Seek Time
Rotational Delay: Zeit bis gesuchter Sektor unter Lesekopf ist Seek Time: Zeit die Kopf benötigt um zu bestimmten Track zu gelangen
104
Ziel Disk scheduling
Minimierung der Zugriffszeiten durch geeignete Anordnung der IO Anfragen
105
RAID 0
Striping ohne Redundanz Cap. N*B Bei Ausfall einer Disk alle Daten weg Hohe sequentielle Lese und Schreibraten
106
RAID 1
Verwendet Monitoring Cap. N*B / 2 Verkraftet Ausfall einer Disk Gute Lese aber durchschnittl. Schreibraten
107
RAID 4
Verwendet Paritätsbit auf seperaten Disk Cap. N-1 * B Verkraftet Ausfall einer Disk Gute Lese und Schreibraten aber langsame wahlfreie Schreiboperationen
108
RAID 5
Verwendet verteile Patirätsblöcke Cap. N-1*B Verkraftet Ausfall einer Disk Verbesserte wahlfreie Schreiboperation im Vergleich zu RAID 4
109
VMs
Virtuelle Maschinen simulieren vollständige Hardwareumgebung Betreiben ein OS unabhängig vom Host-System Jede VM benötigt dedizierte Ressourcen (CPU, RAM, Festplattenspeicher)
110
Vortiele VMs
Isolation Unabhängiges Management Backup-Fähigkeit Verschiedene OS auf gleicher physischen Hardware
111
Nachteile VMs
Hoher Ressourcenverbrauch Langsame Startzeit Warten auf Hochfahren von VM
112
Containerisierung
Betreibt Anwendung in isolierten Einheiten (Containern) auf gemeinsamen Betriebssystem Kernel Container teilen OS des Hosts und nutzen nur benötigte Ressourcen
113
Vorteile Container
Leichtgewichtig Schnell startbar Leicht skalierbar Isolierte aber ressourcenschonende Umgebung für Anwendungen
114
Container vs. VMs
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
Docker Compose
Werkzeug zur Orchestrierung mehrere Container und deren Netzwerkkonfig. Konfigurationsdatei definiert Services, Images, Umgebungsvariablen, Netzwerke und Volumes für Anwendung
116
Beispielrechnung FIFO
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
Beispielrechnung SJF
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