Round Robin Scheduling in C Programming



Tento článek vám poskytne podrobné a komplexní znalosti o tom, jak implementovat Round Robin Scheduling v programování C.

V tomto článku se dozvíme o plánovacím algoritmu nazvaném Round-Robin plánovací algoritmus, co je Round-Robin? Jak napsat program? Atď. Začněme.

Co je Round Robin Scheduling?

Round Robin Scheduling je plánovací algoritmus používaný systémem k plánování využití CPU. Toto je preventivní algoritmus. Ke každému požadavku zvanému kvantum existuje pevný časový úsek. Plánovač úloh uloží průběh úlohy, která se aktuálně provádí, a přesune se na další úlohu přítomnou ve frontě, když je konkrétní proces proveden pro dané časové kvantum.





Round Robin Scheduling

co je tostring v Javě

Žádný proces neudrží CPU po dlouhou dobu. Přepínání se nazývá kontextový přepínač. Je to pravděpodobně jeden z nejlepších plánovacích algoritmů. Účinnost tohoto algoritmu závisí na kvantové hodnotě.



KOLO ROBINOVÉ PLÁNOVÁNÍ ALGORITMU

  • Nejprve máme frontu, kde jsou procesy uspořádány v pořadí, kdo dřív přijde, doručí se.
  • K provedení každého procesu je přidělena kvantová hodnota.
  • První proces se provádí až do konce kvantové hodnoty. Poté se vygeneruje přerušení a stav se uloží.
  • CPU poté přejde na další proces a použije se stejná metoda.
  • Stejné kroky se opakují, dokud neskončí všechny procesy.

Zvažte příklad kódu

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, příjezdu_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nEnter Celkový počet procesů: t') scanf ('% d', & limit) x = limit pro (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], celkem - čas příchodu [i], celkem - čas příchodu [i] - burst_time [i]) wait_time = počkat_čas + celkem - příjezd_čas [i] - čas burst = doba obratu + celkem - čas příjezdu [i] počitadlo = 0} pokud (i == limit - 1) {i = 0} jinak pokud (čas příjezdu [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ÝSTUP:

VYSVĚTLENÍ:

Ve výše uvedeném kódu požádáme uživatele, aby pro každý proces zadal počet procesů a čas příjezdu a čas roztržení. Poté vypočítáme čekací dobu a čas obratu pomocí algoritmu kruhového obměny.

Hlavní částí je výpočet doby obratu a čekací doby. Čas obratu se vypočítá sečtením celkového času a odečtením času příjezdu.

sort () c ++

Čekací doba se vypočítá odečtením doby příjezdu a doby roztržení od celkové hodnoty a jejím přičtením k době čekání. Takto probíhá plánování každý s každým.



VÝHODY:

  • Nízká režie pro rozhodování.
  • Na rozdíl od jiných algoritmů dává stejnou prioritu všem procesům.
  • V tomto procesu zřídka dochází k hladovění.

NEVÝHODY:

  • Účinnost systému se sníží, pokud je kvantová hodnota nízká, protože dochází k častému přepínání.
  • Systém může přestat reagovat, pokud je kvantová hodnota vysoká.

Tím se dostáváme na konec tohoto článku.

Doufám, že vám to připadalo poučné a užitečné, zůstaňte naladěni na další návody k podobným tématům. Můžete se také podívat na náš vzdělávací program to získejte podrobné znalosti o jQuery spolu s jeho různými aplikacemi, můžete pro živé online školení s 24/7 podporou a celoživotním přístupem.Implementujte výše uvedený kód s různými řetězci a úpravami. Nyní dobře rozumíme všem klíčovým konceptům souvisejícím s ukazatelem.

těsné spojení vs. volné spojení

Máte na nás dotaz? Uveďte je v sekci komentářů tohoto blogu a my se vám ozveme.