Programare Round Robin în programarea C.



Acest articol vă va oferi o cunoaștere detaliată și cuprinzătoare despre cum să implementați programarea Round Robin în programarea C.

În acest articol, vom afla despre algoritmul de planificare numit algoritm de planificare round-robin, ce este round-robin? Cum se scrie un program? Etc. Să începem.

Ce este programarea Round Robin?

Round Robin Scheduling este un algoritm de planificare folosit de sistem pentru a programa utilizarea procesorului. Acesta este un algoritm preventiv. Există o felie de timp fix asociată cu fiecare cerere numită cuantică. Planificatorul de lucrări salvează progresul lucrării care se execută în prezent și trece la următorul job prezent în coadă atunci când un anumit proces este executat pentru un anumit cuantum de timp.





Programare Round Robin

rotund dublu la int java

Niciun proces nu va reține CPU pentru o lungă perioadă de timp. Comutarea se numește comutator de context. Este probabil unul dintre cei mai buni algoritmi de planificare. Eficiența acestui algoritm depinde de valoarea cuantică.



ALGORITMUL DE PROGRAMARE A ROBINILOR ROUND

  • Mai întâi avem o coadă în care procesele sunt aranjate în ordinea primul venit primul servit.
  • O valoare cuantică este alocată pentru a executa fiecare proces.
  • Primul proces este executat până la sfârșitul valorii cuantice. După aceasta, se generează o întrerupere și starea este salvată.
  • Procesorul trece apoi la următorul proces și este urmată aceeași metodă.
  • Aceiași pași se repetă până la finalizarea tuturor proceselor.

Luați în considerare exemplul de cod

#include int main () {int i, limit, total = 0, x, contor = 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 ('nIntroduceți numărul total de procese: t') scanf ('% d', & limit) x = limită pentru (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 - sosire [i], total - sosire [i] - burst_time [i]) wait_time = wait_time + total - arrival_time [i] - burst_time [i] turnaround_time = turnaround_time + total - arrival_time [i] counter = 0} if (i == limit - 1) {i = 0} else if (arrival_time [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 }

IEȘIRE:

EXPLICAŢIE:

În codul de mai sus, cerem utilizatorului să introducă numărul de procese, ora de sosire și timpul de explozie pentru fiecare proces. Calculăm apoi timpul de așteptare și timpul de întoarcere folosind algoritmul round-robin.

Partea principală aici este calcularea timpului de întoarcere și a timpului de așteptare. Timpul de întoarcere este calculat prin adăugarea timpului total și scăderea timpului de sosire.

Timpul de așteptare se calculează scăzând timpul de sosire și timpul de spargere din total și adăugându-l t0 timpul de așteptare. Acesta este modul în care are loc programarea round-robin.



AVANTAJE:

  • Cheltuieli generale reduse pentru luarea deciziilor.
  • Spre deosebire de alți algoritmi, acordă prioritate egală tuturor proceselor.
  • Foamea apare rar în acest proces.

DEZAVANTAJE:

  • Eficiența sistemului este scăzută dacă valoarea cuantică este scăzută pe măsură ce are loc o comutare frecventă.
  • Sistemul poate deveni lipsit de răspuns dacă valoarea cuantică este ridicată.

Cu aceasta, ajungem la sfârșitul acestui articol.

Sper că ați găsit acest lucru informativ și util, rămâneți la curent pentru mai multe tutoriale despre subiecte similare. De asemenea, puteți consulta programul nostru de formare to Obțineți cunoștințe aprofundate despre jQuery împreună cu diferitele sale aplicații, puteți pentru instruire online live cu suport 24/7 și acces pe toată durata viețiiImplementați codul de mai sus cu diferite șiruri și modificări. Acum, avem o bună înțelegere a tuturor conceptelor cheie legate de indicator.

Ai o întrebare pentru noi? Menționați-le în secțiunea de comentarii a acestui blog și vă vom răspunde.