Round Robin zakazivanje u C programiranju



Ovaj će vam članak pružiti detaljno i sveobuhvatno znanje o tome kako implementirati Round Robin zakazivanje u programiranje C.

U ovom ćemo članku naučiti o algoritmu raspoređivanja koji se naziva algoritam zakazivanja s okruglim robinom, što je okrugli robin? Kako napisati program? Itd. Krenimo.

Što je Round Robin zakazivanje?

Round Robin Scheduling algoritam je raspoređivanja koji sustav koristi za planiranje upotrebe CPU-a. Ovo je preventivni algoritam. Postoji fiksni vremenski presjek povezan sa svakim zahtjevom koji se naziva kvant. Planer poslova sprema napredak posla koji se trenutno izvršava i prebacuje se na sljedeći posao prisutan u redu kada se određeni proces izvršava za zadani vremenski kvantum.





Round Robin zakazivanje

Nijedan proces neće dugo zadržati CPU. Prebacivanje se naziva kontekstnim prekidačem. To je vjerojatno jedan od najboljih algoritama za raspoređivanje. Učinkovitost ovog algoritma ovisi o kvantnoj vrijednosti.



KRUGI ALBOR RASPOREDA ROBINA

  • Prvo imamo red u kojem su procesi poredani po redoslijedu tko prvi dođe.
  • Za izvršavanje svakog procesa dodjeljuje se kvantna vrijednost.
  • Prvi se postupak izvodi do kraja kvantne vrijednosti. Nakon toga generira se prekid i stanje se sprema.
  • CPU zatim prelazi na sljedeći postupak i slijedi se ista metoda.
  • Isti se koraci ponavljaju dok svi procesi ne završe.

Razmotrite Primjer koda

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, time_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nUpiši ukupan broj procesa: t') scanf ('% d', & limit) x = ograničenje za (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, vrijeme_prazanja [i], ukupno - vrijeme_prilaska [i], ukupno - vrijeme_prilaska [i] - vrijeme_prazanja [i]) vrijeme čekanja = vrijeme_čekanja + ukupno - vrijeme_dolaska [i] - vrijeme_praska [i] = vrijeme okreta + ukupno - vrijeme dolaska [i] brojač = 0} if (i == limit - 1) {i = 0} else if (vrijeme dolaska [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }

IZLAZ:

OBRAZLOŽENJE:

U gornjem kodu tražimo od korisnika da unese broj procesa i vrijeme dolaska i vrijeme uzastopnog rada za svaki postupak. Zatim izračunavamo vrijeme čekanja i vrijeme okretanja koristeći algoritam okruglog robina.

Ovdje je glavni dio izračunavanje vremena okretanja i vremena čekanja. Vrijeme okretanja izračunava se zbrajanjem ukupnog vremena i oduzimanjem vremena dolaska.

Vrijeme čekanja izračunava se tako da se od ukupnog oduzme vrijeme dolaska i vrijeme rafala te se doda t0 vremenu čekanja. Tako se odvija raspored krugova.



PREDNOSTI:

  • Niski troškovi za donošenje odluka.
  • Za razliku od ostalih algoritama, daje jednak prioritet svim procesima.
  • U ovom se procesu rijetko događa gladovanje.

NEDOSTACI:

  • Učinkovitost sustava smanjuje se ako je kvantna vrijednost niska jer se događa često prebacivanje.
  • Sustav može prestati reagirati ako je kvantna vrijednost visoka.

Ovime smo došli do kraja ovog članka.

Nadam se da vam je ovo bilo informativno i korisno, pratite još tutorijala o sličnim temama. Možete pogledati i naš program obuke to možete dobiti detaljno znanje o jQueryju, zajedno s raznim aplikacijama za mrežni trening uživo s podrškom 24/7 i doživotnim pristupom.Provedite gornji kod s različitim nizovima i izmjenama. Sada dobro razumijemo sve ključne koncepte povezane s pokazivačem.

Imate pitanje za nas? Spomenite ih u odjeljku za komentare na ovom blogu pa ćemo vam se javiti.

razlika između final konačno i finalizirati