Programació Round Robin en programació C.



Aquest article us proporcionarà un coneixement detallat i exhaustiu de com implementar la programació de Round Robin a la programació C.

En aquest article, coneixerem l’algorisme de planificació anomenat algoritme de planificació round-robin, què és round-robin? Com escriure un programa? Etc. Comencem.

Què és la programació de Round Robin?

Round Robin Scheduling és un algorisme de planificació utilitzat pel sistema per programar la utilització de la CPU. Es tracta d’un algorisme preventiu. Hi ha un segment de temps fix associat a cada sol·licitud anomenada quàntica. El planificador de treballs desa el progrés del treball que s’executa actualment i passa al següent treball present a la cua quan s’executa un procés concret durant un temps quàntic determinat.





Programació de Robin Round

com utilitzar el navegador db per sqlite

Cap procés mantindrà la CPU durant molt de temps. La commutació s’anomena commutador de context. Probablement és un dels millors algorismes de planificació. L'eficiència d'aquest algorisme depèn del valor quàntic.



ALGORITME DE PROGRAMACIÓ DE LA ROBINA RODONA

  • Primer tenim una cua on els processos s’ordenen per ordre d’arribada.
  • S'assigna un valor quàntic per executar cada procés.
  • El primer procés s’executa fins al final del valor quàntic. Després d'això, es genera una interrupció i es guarda l'estat.
  • La CPU passa al següent procés i se segueix el mateix mètode.
  • Es repeteixen els mateixos passos fins que acaben tots els processos.

Penseu en el codi d'exemple

#include int main () {int i, limit, total = 0, x, comptador = 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 Nombre total de processos: t') scanf ('% d', & limit) x = límit per a (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, temps de ràfega [i], total - hora_arribada [i], temps total_arribada [i] - temps burst [i]) temps d'espera = temps d'espera + total - temps d'arribada [i] - temps de ràpida [i] temps de resposta = temps de resposta + total - temps_arribada [i] comptador = 0} if (i == límit - 1) {i = 0} else if (temps_arribada [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 }

SORTIDA:

EXPLICACIÓ:

Al codi anterior, demanem a l'usuari que introdueixi el nombre de processos, l'hora d'arribada i el temps de ràfega per a cada procés. A continuació, calculem el temps d’espera i el temps d’inversió mitjançant l’algorisme round-robin.

La part principal aquí és calcular el temps de volta i el temps d'espera. El temps d’inversió es calcula sumant el temps total i restant l’hora d’arribada.

El temps d'espera es calcula restant el temps d'arribada i de ràfega del total i sumant-lo t0 el temps d'espera. Així és com es fa la programació round-robin.



AVANTATGES:

  • Baix cost per a la presa de decisions.
  • A diferència d'altres algorismes, dóna la mateixa prioritat a tots els processos.
  • La inanició rarament es produeix en aquest procés.

DESAVANTATGES:

  • L'eficiència del sistema disminueix si el valor quàntic és baix ja que es produeix un canvi freqüent.
  • El sistema pot deixar de respondre si el valor quàntic és alt.

Amb això, arribem al final d’aquest article.

Espero que us hagi estat útil i informatiu. Estigueu atents a més tutorials sobre temes similars. També podeu consultar el nostre programa de formació tPodeu obtenir coneixements en profunditat sobre jQuery juntament amb les seves diverses aplicacions per a formació en línia en directe amb assistència les 24 hores del dia, els 7 dies de la setmana i accés durant tota la vida.Implementeu el codi anterior amb diferents cadenes i modificacions. Ara coneixem bé tots els conceptes clau relacionats amb el punter.

Tens alguna pregunta? Esmenta’ls a la secció de comentaris d’aquest bloc i et respondrem.