FCFS plánovací algoritmus: Co je, příklad programu
⚡ Chytré shrnutí
Plánování „kdo dřív přijde, ten dřív mele“ spouští procesy v přesném pořadí, v jakém se dostanou do fronty připravených procesů, a to pomocí jednoduchého nepreemptivního přístupu FIFO, díky kterému je to nejjednodušší algoritmus plánování CPU, který lze v operačním systému implementovat.

Co je metoda kdo dřív přijde, je dřív na řadě?
Kdo dřív přijde, ten dřív mele (FCFS) je plánovací algoritmus operačního systému, který automaticky spouští požadavky a procesy ve frontě v pořadí jejich příchodu. Je to nejjednodušší a nejjednodušší algoritmus pro plánování CPU. V tomto typu algoritmu proces, který si vyžádá CPU jako první, získá alokaci CPU jako první. Toto je spravováno pomocí fronty FIFO. Úplná forma FCFS je „kdo dřív přijde, ten dřív mele“.
Jakmile proces vstoupí do fronty připravených procesů, jeho PCB (procesní řídicí blok) je propojen s koncem fronty. Takže když se CPU uvolní, je přiřazen procesu na začátku fronty.
Charakteristiky metody FCFS
Hlavní charakteristiky metody „kdo dřív přijde, ten dřív mele“ jsou uvedeny níže:
- Je nepreemptivní plánovací algoritmus, takže proces udržuje CPU aktivní, dokud nedokončí svůj čas burst.
- Úkoly jsou vždy prováděny podle zásady „kdo dřív přijde, je dřív na řadě“.
- Snadno se implementuje a používá.
- Tato metoda má nízký výkon a obecná čekací doba je poměrně vysoká.
Příklad plánování FCFS
Reálným příkladem metody FCFS je nákup vstupenky do kina u pokladny. V tomto plánovacím algoritmu je osoba obsloužena podle pořadí ve frontě. Osoba, která dorazí do fronty jako první, si koupí vstupenku jako první a poté další. Toto pokračuje, dokud si vstupenku nezakoupí poslední osoba ve frontě. Při použití tohoto algoritmu funguje proces CPU podobným způsobem.
Jak FCFS funguje? Výpočet průměrné čekací doby
Abychom pochopili, jak algoritmus plánuje procesy, uvádíme příklad pěti procesů, které přicházejí v různých časech. Každý proces má jiný čas shluku.
| Proces | Čas prasknutí | Čas příjezdu |
| P1 | 6 | 2 |
| P2 | 2 | 5 |
| P3 | 8 | 1 |
| P4 | 3 | 0 |
| P5 | 4 | 4 |
Pomocí plánovacího algoritmu FCFS jsou tyto procesy řešeny následovně.
Krok 1) Proces začíná s P4, který má čas příchodu 0.
Krok 2) V čase=1 přichází P3. P4 stále probíhá. P3 je tedy držen ve frontě.
Krok 3) V čase = 2 dorazí P1 a je zařazen do fronty.
Krok 4) V čase = 3 proces P4 dokončí své provádění.
Krok 5) V čase=4 zahájí provádění P3, který je první ve frontě.
Krok 6) V čase = 5 dorazí P2 a je zařazen do fronty.
Krok 7) V čase = 11 dokončí P3 své provádění.
Krok 8) V čase = 11 zahájí P1 provádění. Má dobu shlukování 6, takže provádění dokončí v časovém intervalu 17.
Krok 9) V čase = 17 zahájí P5 provádění. Má dobu shlukování 4, takže provádění dokončí v čase = 21.
Krok 10) V čase = 21 zahájí P2 provádění. Má dobu shlukování 2, takže provádění dokončí v časovém intervalu 23.
Krok 11) Nyní si vypočítáme průměrnou čekací dobu pro výše uvedený příklad.
Waiting time = Start time - Arrival time
P4 = 0 – 0 = 0
P3 = 3 – 1 = 2
P1 = 11 – 2 = 9
P5 = 17 – 4 = 13
P2 = 21 – 5 = 16
Průměrná čekací doba = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8
Výhody FCFS
Zde jsou výhody a výhody použití plánovacího algoritmu FCFS:
- Je to nejjednodušší forma CPU plánovací algoritmus.
- Je snadné ho programovat.
- Řídí se jednoduchým pořadím „kdo dřív přijde, ten dřív mele“.
Nevýhody FCFS
Zde jsou nevýhody a nevýhody použití plánovacího algoritmu FCFS:
- Jedná se o nepreemptivní algoritmus plánování CPU, takže jakmile je proces přidělen CPU, nikdy jej neuvolní, dokud nedokončí své provádění.
- Průměrná čekací doba je vysoká.
- Krátké procesy na konci fronty musí čekat na dokončení dlouhého procesu na začátku.
- Není to ideální technika pro systémy sdílení času.
- Kvůli své jednoduchosti není FCFS příliš efektivní.












