Round Robin Scheduling in C Programming



Tento článok vám poskytne podrobné a komplexné vedomosti o tom, ako implementovať Round Robin Scheduling v programovaní C.

V tomto článku sa dozvieme o algoritme plánovania s názvom Round-Robin Algoritmus plánovania, čo je Round-Robin? Ako napísať program? Atď. Začnime.

Čo je Round Robin Scheduling?

Round Robin Scheduling je plánovací algoritmus používaný systémom na plánovanie využitia CPU. Toto je preventívny algoritmus. S každou požiadavkou zvanou kvantum je spojený pevný časový úsek. Plánovač úloh uloží postup úlohy, ktorá sa práve vykonáva, a presunie sa na ďalšiu úlohu prítomnú vo fronte, keď sa konkrétny proces vykoná za dané časové kvantum.





Round Robin Scheduling

tablo ako vytvoriť množinu

Žiadny proces neudrží CPU dlhú dobu. Prepínanie sa nazýva kontextový prepínač. Je to pravdepodobne jeden z najlepších plánovacích algoritmov. Účinnosť tohto algoritmu závisí od kvantovej hodnoty.



PLÁNOVANIE ROGINOVÝCH PLÁNOV ALGORITmus

  • Najprv máme rad, kde sú procesy usporiadané podľa poradia doručenia.
  • Na vykonanie každého procesu je pridelená kvantová hodnota.
  • Prvý proces sa vykonáva až do konca kvantovej hodnoty. Potom sa vygeneruje prerušenie a stav sa uloží.
  • CPU potom prejde na ďalší proces a použije sa rovnaká metóda.
  • Rovnaké kroky sa opakujú, kým sa všetky procesy neskončia.

Zvážte príklad kódu

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, delivery_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nEnter Celkový počet procesov: t') scanf ('% d', & limit) x = limit pre (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, burst_time [i], celkom - čas príchodu [i], celkom - čas príchodu [i] - burst_time [i]) wait_time = wait_time + celkom - příjezdu_time [i] - burst_time [i] doba obratu = doba obratu + celkový čas - čas príchodu [i] počítadlo = 0} ak (i ​​== limit - 1) {i = 0} inak ak (čas príchodu [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 }

VÝKON:

VYSVETLENIE:

Vo vyššie uvedenom kóde požiadame používateľa, aby pre každý proces zadal počet procesov a čas príchodu a čas roztrhnutia. Potom vypočítame čas čakania a čas obratu pomocou algoritmu každý s každým.

Hlavná časť je tu výpočet času obratu a času čakania. Čas obratu sa počíta pridaním celkového času a odpočítaním času príchodu.

sort () c ++

Čakacia doba sa počíta odčítaním času príchodu a času roztrhnutia od celkového súčtu a jeho pripočítaním k času čakania. Takto prebieha plánovanie každý s každým.



VÝHODY:

  • Nízka réžia pre rozhodovanie.
  • Na rozdiel od iných algoritmov dáva všetkým procesom rovnakú prioritu.
  • V tomto procese sa zriedka vyskytuje hlad.

NEVÝHODY:

  • Účinnosť systému sa zníži, ak je kvantová hodnota nízka pri častom prepínaní.
  • Systém môže prestať reagovať, ak je kvantová hodnota vysoká.

Týmto sa dostávame na koniec tohto článku.

Dúfam, že vás tento informačný a užitočný považoval za užitočný. Sledujte ďalšie výukové programy s podobnými témami. Môžete sa tiež pozrieť na náš vzdelávací program to získať podrobné znalosti o jQuery spolu s jeho rôznymi aplikáciami, môžete pre živé online školenie s nepretržitou podporou a doživotným prístupom.Vyššie uvedený kód implementujte s rôznymi reťazcami a úpravami. Teraz dobre rozumieme všetkým kľúčovým pojmom súvisiacim s ukazovateľom.

tesné spojenie vs voľné spojenie

Máte na nás otázku? Uveďte ich v sekcii komentárov tohto blogu a my sa vám ozveme.