logo

Prvi dođe prvi posluži zakazivanje CPU procesa u operativnim sustavima

U ovom tutorijalu naučit ćemo važan koncept algoritama za raspoređivanje CPU procesa. Važan naziv koncepta je First Come First Serve. Ovo je osnovni algoritam koji svaki učenik mora naučiti kako bi razumio sve osnove CPU algoritama za raspoređivanje procesa.

First Come First Serve utire put razumijevanju drugih algoritama. Ovaj algoritam može imati mnoge nedostatke. Ali ti su nedostaci stvorili vrlo nove i učinkovite algoritme. Dakle, naša je odgovornost naučiti o algoritmima za planiranje CPU procesa koji prvi dolaze prvi služe.

Važne kratice

  1. CPU - - - > Središnja procesorska jedinica
  2. FCFS - - - > First Come First Serve
  3. AT - - - > Vrijeme dolaska
  4. BT - - - > Burst Time
  5. WT - - - > Vrijeme čekanja
  6. TAT - - - > Vrijeme preokreta
  7. CT - - - > Vrijeme završetka
  8. FIFO - - - > Prvi ušao prvi izašao

First Come First Serve

First Come First Serve CPU Scheduling Algorithm kratko poznat kao FCFS prvi je algoritam CPU Process Scheduling Algorithm. U algoritmu First Come First Serve ono što činimo je omogućiti procesu da se izvršava na linearan način.

To znači da koji god proces uđe proces koji prvi uđe u red čekanja spreman prvi se izvršava. Ovo pokazuje da algoritam 'prvi došao prvi poslužen' slijedi načelo 'prvi ušao prvi izašao' (FIFO).

Algoritam First Come First Serve može se izvršiti na Pre Emptive i Non Pre Emptive način. Prije nego što pređemo na primjere, shvatit ćemo što je pristup unaprijed i bez unaprijed u planiranju CPU procesa.

Pristup unaprijed

U ovom primjeru prethodnog planiranja procesa, OS dodjeljuje resurse procesu za unaprijed određeno vremensko razdoblje. Proces prelazi iz stanja rada u stanje spremnosti ili iz stanja čekanja u stanje spremnosti tijekom dodjele resursa. Ovo prebacivanje događa se jer CPU može drugim procesima dodijeliti prvenstvo i zamijeniti trenutno aktivni proces procesom višeg prioriteta.

Neprethodni pristup

U ovom slučaju Non-Emptive Process Scheduling, resurs se ne može povući iz procesa prije nego što se proces završi. Kada proces koji se izvodi završi i prijeđe u stanje čekanja, resursi se prebacuju.

Učinak konvoja u igri tko prvi dođe, prvi posluži (FCFS)

Učinak konvoja je fenomen koji se javlja u algoritmu raspoređivanja pod nazivom First Come First Serve (FCFS). Algoritam rasporeda 'prvi dođe prvi posluži' pojavljuje se na način koji nije preemptivan.

Nepreventivni način znači da ako se proces ili posao započne izvršavati, tada operativni sustav mora dovršiti svoj proces ili posao. Sve dok proces ili posao ne bude nula, novi ili sljedeći proces ili posao ne započinje svoje izvršenje. Definicija Non-Preemptive Scheduling u smislu operativnog sustava znači da će središnja procesorska jedinica (CPU) biti potpuno posvećena do kraja procesa ili posla koji je prvi započeo, a novi proces ili posao se izvršava tek nakon završetka starijeg procesa ili posao.

Može postojati nekoliko slučajeva koji mogu uzrokovati da središnja procesorska jedinica (CPU) odvoji previše vremena. To je zato što se u algoritmu raspoređivanja koji prvi dolazi, prvi služi pristupu bez preuzimanja, procesi ili poslovi biraju serijski. Zbog toga je kraćim poslovima ili procesima koji stoje iza većih procesa ili poslova potrebno previše vremena za dovršetak izvršenja. Zbog toga je vrijeme čekanja, vrijeme obrade i vrijeme završetka vrlo visoko.

FCFS algoritmi zakazivanja u OS-u (operativni sustav)

Dakle, ovdje kako je prvi proces velik ili je vrijeme dovršetka previsoko, tada dolazi do ovog efekta konvoja u algoritmu First Come First Serve.

Pretpostavimo da Duljem poslu treba beskonačno vrijeme da se dovrši. Zatim, preostali procesi moraju čekati isto beskonačno vrijeme. Zbog ovog efekta konvoja stvorenog dužim poslom, izgladnjivanje procesa čekanja raste vrlo brzo. Ovo je najveći nedostatak FCFS CPU Process Scheduling.

Karakteristike raspoređivanja procesa FCFS CPU

Karakteristike FCFS CPU Process Scheduling su:

  1. Implementacija je jednostavna.
  2. Ne uzrokuje uzročne posljedice tijekom korištenja
  3. Usvaja ne-preventivnu i preventivnu strategiju.
  4. Pokreće svaku proceduru redoslijedom kojim su primljene.
  5. Vrijeme dolaska koristi se kao kriterij odabira za postupke.

Prednosti FCFS CPU Process Scheduling

Prednosti FCFS CPU Process Scheduling su:

  1. Kako bi se alocirali procesi, koristi se red čekanja First In First Out.
  2. FCFS CPU Scheduling Process je jasan i jednostavan za implementaciju.
  3. U FCFS situaciji s preventivnim planiranjem, nema šanse da proces zastane.
  4. Budući da se ne uzima u obzir prioritet procesa, to je pravičan algoritam.

Nedostaci FCFS CPU Process Scheduling

Nedostaci FCFS CPU Process Scheduling su:

  • Algoritam za raspoređivanje procesora FCFS ima dugo vrijeme čekanja
  • FCFS CPU Scheduling daje prednost CPU-u nad ulaznim ili izlaznim operacijama
  • U FCFS-u postoji mogućnost pojave efekta konvoja
  • Budući da je FCFS tako jasan, često nije baš učinkovit. Uz to idu i produljena razdoblja čekanja. Sve ostale narudžbe ostaju u stanju mirovanja ako je CPU zauzet obradom jedne narudžbe koja oduzima puno vremena.

Problemi u CPU algoritmu za raspored 'prvi dođe prvi posluži'.

Primjer

 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 

Neprethodni pristup

Sada riješimo ovaj problem uz pomoć algoritma za raspoređivanje nazvanog First Come First Serve u pristupu bez prevencije.

Gantogram za gornji primjer 1 je:

FCFS algoritmi zakazivanja u OS-u (operativni sustav)

Vrijeme okretanja = Vrijeme završetka - Vrijeme dolaska

Vrijeme čekanja = vrijeme preokreta - vrijeme pucanja

Rješenje gornjeg pitanja Primjer 1

Da ne ID procesa Vrijeme dolaska Vrijeme pucanja Vrijeme završetka Vrijeme obrade Vrijeme čekanja
1 P 1 A 0 9 9 9 0
2 P 2 B 1 3 12 jedanaest 8
3 P 3 C 1 2 14 13 jedanaest
4 P 4 D 1 4 18 17 13
5 P 5 I 2 3 dvadeset i jedan 19 16
6 P 6 F 3 2 23 dvadeset 18

Prosječno vrijeme završetka je:

Prosječni CT = ( 9 + 12 + 14 + 18 + 21 + 23 ) / 6

Prosječni CT = 97 / 6

Prosječni CT = 16,16667

Prosječno vrijeme čekanja je:

Prosječna WT = (0 + 8 + 11 + 13 + 16 + 18) /6

Prosječna WT = 66 / 6

Prosječna WT = 11

Prosječno vrijeme obrade je:

Prosječni TAT = ( 9 + 11 + 13 + 17 + 19 +20 ) / 6

Prosječni TAT = 89 / 6

Prosječni TAT = 14,83334

Ovako je FCFS riješen u pristupu bez prevencije.

Hajde sada da shvatimo kako se oni mogu riješiti u Pre-Emptivnom pristupu

Pristup unaprijed

Sada riješimo ovaj problem uz pomoć algoritma za raspoređivanje pod nazivom First Come First Serve u pristupu unaprijed.

U Pre Emptive Approach tražimo najbolji dostupni proces

Gantogram za gornji primjer 1 je:

FCFS algoritmi zakazivanja u OS-u (operativni sustav)
Da ne ID procesa Vrijeme dolaska Vrijeme pucanja Vrijeme završetka Vrijeme obrade Vrijeme čekanja
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 petnaest 14 10
5 P 5 I 2 3 jedanaest 9 7
6 P 6 F 3 2 5 2 0
sljedeći → ← prethodna

Kako bi se riješio problema rasipanja signala za buđenje, Dijkstra je predložio pristup koji uključuje pohranjivanje svih poziva za buđenje. Dijkstra navodi da, umjesto da pozive za buđenje daje izravno potrošaču, proizvođač može pohraniti poziv za buđenje u varijablu. Bilo koji od potrošača može ga pročitati kad god to zatreba.

Semafor je varijabla koja pohranjuje cjelokupne pozive za buđenje koji se prenose od proizvođača do potrošača. To je varijabla na kojoj se čitanje, izmjena i ažuriranje događa automatski u kernel modu.

pretvoriti string datum

Semafor se ne može implementirati u korisničkom načinu jer se stanje utrke uvijek može pojaviti kada dva ili više procesa pokušavaju istovremeno pristupiti varijabli. Uvijek je potrebna podrška operativnog sustava za implementaciju.

Prema zahtjevima situacije, Semaphore se može podijeliti u dvije kategorije.

  1. Semafor za brojanje
  2. Binarni semafor ili muteks

Detaljno ćemo razgovarati o svakom.