Round Robin Scheduling in C Programming



Denna artikel ger dig en detaljerad och omfattande kunskap om hur du implementerar Round Robin Scheduling i C-programmering.

I den här artikeln lär vi oss om schemaläggningsalgoritmen som kallas round-robin schemaläggningsalgoritm, vad är round-robin? Hur skriver jag ett program? Etc. Låt oss börja.

Vad är Round Robin Scheduling?

Round Robin Scheduling är en schemaläggningsalgoritm som används av systemet för att schemalägga CPU-användning. Detta är en förebyggande algoritm. Det finns en fast tidsskiva associerad med varje begäran som kallas kvantum. Jobbschemaläggaren sparar förloppet för jobbet som exekveras för närvarande och flyttar till nästa jobb som finns i kön när en viss process körs under en given tidskvantum.





Runt Robin Schemaläggning

Ingen process kommer att hålla CPU under lång tid. Växlingen kallas en kontextomkopplare. Det är förmodligen en av de bästa schemaläggningsalgoritmerna. Effektiviteten för denna algoritm beror på kvantvärdet.



RUND ROBIN SCHEMA ALGORITM

  • Vi har först en kö där processerna ordnas i först till kvarn-ordning.
  • Ett kvantvärde tilldelas för att utföra varje process.
  • Den första processen utförs till slutet av kvantvärdet. Efter detta genereras ett avbrott och tillståndet sparas.
  • Processorn går sedan till nästa process och samma metod följs.
  • Samma steg upprepas tills alla processer är över.

Tänk på exempelkoden

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, arrival_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nEnter Totalt antal processer: t') scanf ('% d', & limit) x = limit för (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], total - ankomsttid [i], total - ankomsttid [i] - burst_time [i]) wait_time = wait_time + total - ankomsttid [i] - burst_time [i] turnaround_time = turnaround_time + total - ankomsttid [i] räknare = 0} om (i == gräns - 1) {i = 0} annat om (ankomsttid [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 }

PRODUKTION:

FÖRKLARING:

I koden ovan ber vi användaren att ange antalet processer och ankomsttid och bursttid för varje process. Vi beräknar sedan väntetiden och vändtiden med round-robin-algoritmen.

Huvuddelen här är att beräkna vändtid och väntetid. Vändtid beräknas genom att lägga till den totala tiden som tas och subtrahera ankomsttiden.

Väntetiden beräknas genom att subtrahera ankomsttiden och burst-tiden från totalen och lägga till den till väntetiden. Det här är hur schemaläggningen av rundan sker.



FÖRDELAR:

  • Låg kostnad för beslutsfattande.
  • Till skillnad från andra algoritmer prioriterar det alla processer lika mycket.
  • Svält förekommer sällan i denna process.

NEDELAR:

  • Systemets effektivitet minskar om kvantvärdet är lågt eftersom frekvent omkoppling sker.
  • Systemet kan inte svara om kvantvärdet är högt.

Med detta kommer vi till ett slut på den här artikeln.

Jag hoppas att du tyckte att det var informativt och hjälpsamt. Håll dig uppdaterad för fler handledning om liknande ämnen. Du kan också kolla in vårt träningsprogram to få fördjupad kunskap om jQuery tillsammans med dess olika applikationer, du kan för live onlineträning med support dygnet runt och livstidsåtkomst.Implementera ovanstående kod med olika strängar och modifieringar. Nu har vi en god förståelse för alla nyckelbegrepp relaterade till pekaren.

c ++ scope-operatör

Har du en fråga till oss? Nämn dem i kommentarsektionen på den här bloggen så återkommer vi till dig.