Scheduling Flashcards
1
Q
FCFS = First Come First Serve
Wie funktioniert das FCFS Prinzip?
A
- Die Threads werden in der Reihenfolge ihrer Ankunft ausgeführt
- Ein neuer Thread wird immer ans Ende gehängt
2
Q
LCFS = Last Come First Serve
Wie funktioniert das LCFS Prinzip?
A
- Sobald die CPU frei ist, wird der letzte Thread als erstes ausgeführt
- Das ist kein hilfreiches Prinzip
3
Q
LCFS-P = LCFS with Preemption
Wie funktioniert LCFS with Preemption?
A
- Wenn ein neuer Thread ankommt, wird der ausführende Thread unterbrochen und an die fertige Liste gehängt
- Das ist hilfreich, da kürzere Threads schneller ausgeführt werden, da es nicht so wahrscheinlich ist, dass sie unterbrochen werden
4
Q
RR = Round Robin (time slicing)
Wie funktioniert Round Robin?
A
- Jeder Thread bekommt nacheinander CPU Zeit in slices.
- Neue Threads werden an die fertige Liste gehängt
- Wenn ein Thread von der fertigen Liste entfernt wird, kriegt es 𝜏 Sekunden an CPU Zeit
- Nach 𝜏 wird der Thread vorgebeugt und an die fertige Liste gehängt
5
Q
PRIO = Priorities
Wie funktioniert PRIO?
A
- Wenn man den nächsten Thread auswählt, wählt man den Thread mit der höchsten Priorität
- Neue Threads werden in die fertige Liste nach deren Priorität eingefügt
- Wenn ein Thread terminiert, nutzt man den nächsten von der fertigen Liste
6
Q
PRIO-P = Priorities with Preemption
Wie funktioniert PRIO-P?
A
- Neue Threads mit höherer Priorität als der ausführende Thread können vorgezogen werden.
- Alles andere bleibt gleich
7
Q
SJN = Shortest Job Next
Wie funktioniert SJN?
A
Wenn man den nächsten Thread auswählt sollte man den Thread mit der kürzesten service time nehmen
8
Q
SRTN = Shortest Remaining Time Next
Wie funktioniert SRTN?
A
- Man soll immer den Thread ausführen den man in kürzester Zeit beenden kann
- Der Nachteil ist nur, das lange Threads theoretisch ewig brauchen bis sie beendet sind
9
Q
HRN = Highest Response Time Ratio Next
Wie funktioniert HRN?
A
- Es gilt, dass längere Threads länger warten sollen und kürzere Threads weniger warten sollen
- Um einen Thread auszuwählen muss man die rr = (Waited time + Service time) / (Service time) berechnen
- Man muss den Thread mit dem höchsten rr auswählen