Apvalaus Robino planavimas C programavimo srityje

Šis straipsnis suteiks jums išsamių ir išsamių žinių apie tai, kaip įgyvendinti „Round Robin“ planavimą C programavimo srityje.

Šiame straipsnyje mes sužinosime apie planavimo algoritmą, vadinamą „round-robin“ planavimo algoritmu, kas yra „round-robin“? Kaip rašyti programą? Ir pan. Pradėkime.

Kas yra „Robin“ planavimas?

„Round Robin Scheduling“ yra planavimo algoritmas, kurį sistema naudoja planuodama procesoriaus naudojimą. Tai yra prevencinis algoritmas. Su kiekviena užklausa, vadinama kvantu, yra fiksuoto laiko dalis. Darbo planavimo priemonė išsaugo šiuo metu vykdomos užduoties eigą ir pereina prie kitos eilėje esančios užduoties, kai tam tikras laiko kvotas vykdomas konkretus procesas.



Apskrito Robino planavimas

paaiškinti skirtumą tarp kintamų ir nekintamų objektų.

Joks procesas ilgai nelaikys procesoriaus. Perjungimas vadinamas konteksto jungikliu. Tai tikriausiai yra vienas iš geriausių planavimo algoritmų. Šio algoritmo efektyvumas priklauso nuo kvantinės vertės.

susietų sąrašų programa c

ALGORITMO APYVARTINIS ROBINO SUplanavimas

  • Pirmiausia mes turime eilę, kurioje procesai yra išdėstyti eilės tvarka.
  • Kiekvienam procesui vykdyti skiriama kvantinė vertė.
  • Pirmasis procesas vykdomas iki kvantinės vertės pabaigos. Po to generuojamas pertraukimas ir būsena išsaugoma.
  • Tada procesorius pereina prie kito proceso ir naudojamas tas pats metodas.
  • Tie patys veiksmai kartojami tol, kol baigsis visi procesai.

Apsvarstykite kodo pavyzdį

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, érkezijos_ laikas [10], serijos laikas [10], temp [10] plūduriuojantis vidutinis laukimo laikas, vidutinis apyvartos laikas printf ('nĮveskite bendrą procesų skaičių: t') scanf ('% d', & limit) x = riba (i = 0 i0) {temp [i] = temp [i] - laikas_kvant. Iš viso = iš viso + laiko_kvant.} Jei (temp [i] == 0 && skaitiklis == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, serijos laikas [i], iš viso - atvykimo laikas [i], bendras - atvykimo laikas [i] - serijos laikas [i]) laukimo laikas = laukimo laikas + bendras - atvykimo laikas [i] - serijos laikas [i] pasukimo laikas = apsisukimo laikas + bendras - atvykimo laikas [i] skaitiklis = 0} if (i == riba - 1) {i = 0} kitas, jei (atvykimo laikas [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 }

IŠĖJIMAS:

Paaiškinimas:

Pirmiau pateiktame kode prašome vartotojo įvesti kiekvieno proceso skaičių, atvykimo laiką ir serijos laiką. Tada apskaičiuojame laukimo laiką ir apsisukimo laiką, naudodamiesi algoritmu.

Čia pagrindinė dalis yra apsisukimo laiko ir laukimo laiko apskaičiavimas. Apsisukimo laikas apskaičiuojamas sudedant bendrą laiką ir atėmus atvykimo laiką.

Laukimo laikas apskaičiuojamas atėmus atvykimo laiką ir sprogo laiką iš viso ir pridedant laukimo laiką t0. Taip vyksta pirmojo plano planavimas.

PRIVALUMAI:

  • Mažos pridėtinės išlaidos priimant sprendimus.
  • Skirtingai nuo kitų algoritmų, jis teikia vienodą prioritetą visiems procesams.
  • Badas šiame procese pasitaiko retai.

Trūkumai:

  • Sistemos efektyvumas sumažėja, jei kvantinė vertė yra maža, nes dažnai perjungiama.
  • Sistema gali nereaguoti, jei kvantinė vertė yra didelė.

Tuo mes baigėme šį straipsnį.

Tikiuosi, kad jums pasirodė šis informatyvus ir naudingas. Sekite naujienas daugiau panašių temų pamokų. Taip pat galite peržiūrėti mūsų mokymo programą to galite gauti išsamių žinių apie „jQuery“ kartu su įvairiomis jo programomis tiesioginėms internetinėms treniruotėms, palaikančioms visą parą visą parą ir visą gyvenimą.Įdiekite aukščiau pateiktą kodą naudodami skirtingas eilutes ir modifikacijas. Dabar mes gerai suprantame visas pagrindines su žymikliu susijusias sąvokas.

modelio rodinio valdiklio pavyzdys java

Turite mums klausimą? Paminėkite juos šio tinklaraščio komentarų skiltyje ir mes su jumis susisieksime.