Ümmarguse Robini ajastamine C-programmeerimises

See artikkel annab teile üksikasjalikud ja kõikehõlmavad teadmised Round Robini ajakava rakendamise kohta C-programmeerimises.

Selles artiklis õpime sõiduplaani algoritmi, mida nimetatakse ring-robini ajastamise algoritmiks, mis on ring-robin? Kuidas programmi kirjutada? Jne. Alustame.



Mis on ümmarguse robiini ajastamine?

Round Robin Scheduling on sõiduplaani algoritm, mida süsteem kasutab protsessori kasutamise ajastamiseks. See on ennetav algoritm. Iga taotlusega on seotud fikseeritud ajalõik, mida nimetatakse kvandiks. Tööajaplaneerija salvestab praegu täidetava töö edenemise ja liigub järgmise järjekorras oleva töö juurde, kui konkreetne protsess täidetakse antud ajakvandi jaoks.

Ümmarguse Robini ajakava

Ükski protsess ei hoia protsessorit pikka aega. Lülitamist nimetatakse kontekstilülitiks. See on ilmselt üks parimatest ajastamisalgoritmidest. Selle algoritmi efektiivsus sõltub kvantväärtusest.



ÜMBRILINE ALGORITMI AJAKAVA

  • Kõigepealt on meil järjekord, kus protsessid on järjestatud järjekorras kes ees, see mees.
  • Iga protsessi teostamiseks määratakse kvantväärtus.
  • Esimene protsess viiakse läbi kvantväärtuse lõpuni. Pärast seda genereeritakse katkestus ja olek salvestatakse.
  • Seejärel liigub protsessor järgmise protsessi juurde ja järgitakse sama meetodit.
  • Samu samme korratakse seni, kuni kõik protsessid on läbi.

Mõelge näite koodile

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, saabumise_aeg [10], sarivõte_aeg [10], temp [10] ujuki keskmine_ ooteaeg, keskmine printf ('nSisestage protsesside koguarv: t') scanf ('% d', & limit) x = piir (i = 0 i0) {temp [i] = temp [i] - aja_kvant kokku = kokku + aja_kvant} kui (temp [i] == 0 && loendur == 1) {x-- printf ('nProtsess [% d] tt% dtt % dttt% d ', i + 1, sarivõte_aeg [i], kokku - saabumisaeg [i], kokku - saabumisaeg [i] - purskeaeg [i]) ooteaeg = ooteaeg + kogu - saabumisaeg [i] - purskeaeg [i] pöörde aeg = pöörangu aeg + kogu - saabumise_aeg [i] loendur = 0} kui (i == piir - 1) {i = 0} muu kui (saabumisaeg [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ÄLJUND:

SELETUS:

Ülaltoodud koodis palume kasutajal sisestada iga protsessi jaoks protsesside arv, saabumisaeg ja purskeaeg. Seejärel arvutame ring-algoritmi abil ooteaja ja pöörde aja.

kraadiõppe tunnistus vs meistrid

Peamine osa on siin pöörde aja ja ooteaja arvutamine. Pöördeaja arvutamiseks liidetakse kogu kasutatud aeg ja lahutatakse saabumisaeg.

Ooteaeg arvutatakse lahutades saabumisaeg ja purskeaeg koguarvust ning lisades sellele ooteaja t0. Nii toimub ring-sõidu planeerimine.



valatakse jaavas topelt-int

Eelised:

  • Madal üldkulud otsuste tegemiseks.
  • Erinevalt teistest algoritmidest annab see kõigile protsessidele võrdse prioriteedi.
  • Nälgimine toimub selles protsessis harva.

Puudused:

  • Süsteemi efektiivsus väheneb, kui kvantväärtus on madal, kuna toimub sagedane ümberlülitamine.
  • Kui kvantväärtus on kõrge, võib süsteem reageerida.

Sellega jõuame selle artikli lõpuni.

Loodan, et leidsite selle informatiivse ja abivalmis. Olge kursis rohkemate sarnaste teemade õpetustega. Võite tutvuda ka meie koolitusprogrammiga to saate põhjalikke teadmisi jQuery ja selle erinevate rakenduste kohta reaalajas veebikoolituse jaoks, millel on 24-tunnine tugi ja juurdepääs kogu elule.Rakendage ülaltoodud kood erinevate stringide ja muudatustega. Nüüd saame hästi aru kõigist kursoriga seotud põhimõistetest.

Kas teil on meile küsimus? Mainige neid selle blogi kommentaaride jaotises ja võtame teiega ühendust.