V tomto tutoriálu se naučíme důležitý koncept v algoritmech plánování procesů CPU. Důležitým názvem konceptu je kdo dřív přijde, ten dřív mele. Toto je základní algoritmus, který se musí naučit každý student, aby porozuměl všem základům CPU Process Scheduling Algorithms.
Kdo dřív přijde, je dřív na řadě, dláždí cestu k pochopení dalších algoritmů. Tento algoritmus může mít mnoho nevýhod. Tyto nevýhody však vytvořily velmi nové a efektivní algoritmy. Je tedy naší odpovědností dozvědět se o algoritmech plánování procesů CPU kdo dřív přijde, je dřív na řadě.
Důležité zkratky
- CPU - - - > Centrální procesorová jednotka
- FCFS - - - > Kdo dřív přijde, je dřív na řadě
- AT - - - > Čas příjezdu
- BT - - - > Burst Time
- WT - - - > Čekací doba
- TAT - - - > Turn Around Time
- CT - - - > Čas dokončení
- FIFO - - - > První dovnitř, první ven
Kdo dřív příjde ten dřív mele
Algoritmus plánování CPU, kdo dřív přijde, je první, zkráceně známý jako FCFS, je prvním algoritmem algoritmu plánování CPU Process Scheduling Algorithm. V algoritmu kdo dřív přijde, ten dřív serví, to, co děláme, je umožnit, aby proces probíhal lineárně.
js splice
To znamená, že kterýkoli proces vstoupí do procesu, který jako první vstoupí do fronty připravenosti, bude proveden jako první. To ukazuje, že algoritmus kdo dřív přijde, ten dřív serví, se řídí principem FIFO (First In First Out).
Algoritmus „kdo dřív přijde, je dřív na řadě“ může být proveden preemptivním a nepreemptivním způsobem. Než se pustíme do příkladů, pochopme, co je to Pre Emptive a Non Pre Emptive Approach v CPU Process Scheduling.
Preemptivní přístup
V tomto případě Pre Emptive Process Scheduling OS přiděluje zdroje procesu na předem určenou dobu. Proces přechází ze stavu běhu do stavu připravenosti nebo ze stavu čekání do stavu připravenosti během alokace zdrojů. K tomuto přepínání dochází, protože CPU může přiřadit přednost jiným procesům a nahradit proces s vyšší prioritou právě aktivní proces.
Nepreemptivní přístup
V tomto případě plánování non Pre Emptive Process Scheduling nemůže být prostředek odebrán z procesu před dokončením procesu. Když běžící proces skončí a přejde do stavu čekání, prostředky se přepnou.
Efekt konvoje, kdo dřív přijde, je dřív na řadě (FCFS)
Convoy Effect je jev, který se vyskytuje v plánovacím algoritmu s názvem First Come First Serve (FCFS). Algoritmus plánování „kdo dřív přijde, ten dřív slouží“ probíhá způsobem, který není preemptivní.
Nepreemptivní způsob znamená, že pokud je proces nebo úloha zahájena prováděním, musí operační systém dokončit svůj proces nebo úlohu. Dokud není proces nebo úloha nulová, nový nebo další proces nebo úloha nezahájí své provádění. Definice Non Preemptive Scheduling z hlediska operačního systému znamená, že centrální procesorová jednotka (CPU) bude zcela vyhrazena až do konce procesu nebo úlohy spuštěné jako první a nový proces nebo úloha se provede až po dokončení staršího procesu, resp. práce.
Může nastat několik případů, které mohou způsobit, že centrální procesorová jednotka (CPU) přidělí příliš mnoho času. Je to proto, že v nepreemptivním přístupu s plánovacím algoritmem „kdo dřív přijde, ten dřív slouží“ jsou procesy nebo úlohy vybírány v sériovém pořadí. V důsledku toho kratší úlohy nebo procesy za většími procesy nebo úlohami trvá příliš dlouho, než se dokončí jejich provedení. V důsledku toho je doba čekání, doba obratu a doba dokončení velmi vysoká.
pole řetězců v jazyce C
Takže, když je první proces velký nebo čas dokončení příliš dlouhý, dojde k tomuto efektu konvoje v algoritmu kdo dřív přijde, ten dřív slouží.
Předpokládejme, že dokončení Longer Job trvá nekonečně dlouho. Poté musí zbývající procesy čekat stejnou nekonečnou dobu. Díky tomuto Convoy Effectu vytvořenému Longer Job se hladovění čekajících procesů velmi rychle zvyšuje. To je největší nevýhoda FCFS CPU Process Scheduling.
Charakteristika FCFS CPU Process Scheduling
Charakteristiky FCFS CPU Process Scheduling jsou:
- Implementace je jednoduchá.
- Při používání nezpůsobuje žádné kauzality
- Přijímá nepreemptivní a preemptivní strategii.
- Spustí každou proceduru v pořadí, v jakém jsou přijaty.
- Čas příjezdu se používá jako výběrové kritérium pro postupy.
Výhody plánování procesů CPU FCFS
Výhody FCFS CPU Process Scheduling jsou:
- K alokaci procesů používá frontu First In First Out.
- Proces plánování CPU FCFS je přímočarý a snadno implementovatelný.
- V situaci preventivního plánování FCFS neexistuje žádná šance, že by proces hladověl.
- Protože se nebere v úvahu priorita procesu, jedná se o spravedlivý algoritmus.
Nevýhody plánování procesů CPU FCFS
Nevýhody FCFS CPU Process Scheduling jsou:
- Plánovací algoritmus FCFS CPU má dlouhou čekací dobu
- FCFS CPU Scheduling upřednostňuje CPU před vstupními nebo výstupními operacemi
- V FCFS existuje možnost výskytu Convoy Effectu
- Protože FCFS je tak přímočarý, často není příliš efektivní. Ruku v ruce s tím jdou i prodloužené čekací doby. Všechny ostatní objednávky zůstanou nečinné, pokud je CPU zaneprázdněno zpracováním jedné časově náročné objednávky.
Problémy s plánovacím algoritmem CPU, kdo dřív přijde, je dřív na řadě
Příklad
S. No Process ID Process Name Arrival Time Burst Time _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1 P 1 A 0 9 2 P 2 B 1 3 3 P 3 C 1 2 4 P 4 D 1 4 5 P 5 E 2 3 6 P 6 F 3 2
Nepreemptivní přístup
Nyní vyřešme tento problém pomocí plánovacího algoritmu nazvaného „kdo dřív přijde, ten dřív mele“ v nepreemptivním přístupu.
Ganttův diagram pro výše uvedený příklad 1 je:
charakter.srovnej java
Turn Around Time = Čas dokončení – Čas příjezdu
Čekací doba = Turn Around Time - Burst Time
Řešení výše uvedené otázky Příklad 1
Ano ne | ID procesu | Čas příjezdu | Burst Time | Čas dokončení | Turn Around Time | Čekací doba | |
---|---|---|---|---|---|---|---|
1 | P 1 | A | 0 | 9 | 9 | 9 | 0 |
2 | P 2 | B | 1 | 3 | 12 | jedenáct | 8 |
3 | P 3 | C | 1 | 2 | 14 | 13 | jedenáct |
4 | P 4 | D | 1 | 4 | 18 | 17 | 13 |
5 | P 5 | A | 2 | 3 | dvacet jedna | 19 | 16 |
6 | P 6 | F | 3 | 2 | 23 | dvacet | 18 |
Průměrná doba dokončení je:
Průměrná CT = ( 9 + 12 + 14 + 18 + 21 + 23 ) / 6
Průměrná CT = 97/6
Průměr CT = 16,16667
Průměrná čekací doba je:
Průměrná WT = ( 0 + 8 + 11 + 13 + 16 + 18 ) /6
Průměrná WT = 66/6
Průměrná WT = 11
Průměrná doba obratu je:
Průměrný TAT = ( 9 + 11 + 13 + 17 + 19 +20 ) / 6
úplná tabulka pravdivosti sčítačky
Průměrný TAT = 89/6
Průměrná TAT = 14,83334
Takto je FCFS řešen v nepřetržitém přístupu.
Nyní pochopíme, jak je lze vyřešit v Pre Emptive Approach
Preemptivní přístup
Nyní vyřešme tento problém pomocí plánovacího algoritmu nazvaného „kdo dřív přijde, ten dřív mele“ v preemptivním přístupu.
V Pre Emptive Approach hledáme nejlepší dostupný proces
Ganttův diagram pro výše uvedený příklad 1 je:
powershell vs bash
Ano ne | ID procesu | Čas příjezdu | Burst Time | Čas dokončení | Turn Around Time | Čekací doba | |
---|---|---|---|---|---|---|---|
1 | P 1 | A | 0 | 9 | 23 | 23 | 14 |
2 | P 2 | B | 1 | 3 | 8 | 7 | 4 |
3 | P 3 | C | 1 | 2 | 3 | 2 | 0 |
4 | P 4 | D | 1 | 4 | patnáct | 14 | 10 |
5 | P 5 | A | 2 | 3 | jedenáct | 9 | 7 |
6 | P 6 | F | 3 | 2 | 5 | 2 | 0 |
další → ← předchozí Aby se zbavil problému plýtvání signálů probuzení, navrhl Dijkstra přístup, který zahrnuje ukládání všech budíků. Dijkstra uvádí, že místo toho, aby probuzení dával přímo spotřebiteli, může výrobce uložit buzení do proměnné. Každý ze spotřebitelů si jej může přečíst, kdykoli to potřebuje. Semafor jsou proměnné, které ukládají všechny buzení, které jsou přenášeny od výrobce ke spotřebiteli. Je to proměnná, jejíž čtení, úprava a aktualizace probíhá automaticky v režimu jádra. Semafor nelze implementovat v uživatelském režimu, protože konflikt může vždy nastat, když se dva nebo více procesů pokouší o přístup k proměnné současně. K implementaci vždy potřebuje podporu operačního systému. Podle náročnosti situace lze Semafor rozdělit do dvou kategorií.
O každém se budeme podrobně bavit. |