Pag-iiskedyul ng Round Robin sa C Programming



Magbibigay sa iyo ang artikulong ito ng isang detalyado at komprehensibong kaalaman tungkol sa kung paano ipatupad ang Round Robin scheduling sa C Programming.

Sa artikulong ito, malalaman natin ang tungkol sa pag-iiskedyul ng algorithm na tinatawag na algorithm ng pag-iiskedyul ng round-robin, ano ang round-robin? Paano magsulat ng isang programa? Atbp Magsimula tayo.

Ano ang Pag-iiskedyul ng Round Robin?

Ang Round Robin scheduling ay isang pag-iiskedyul ng algorithm na ginamit ng system upang iiskedyul ang paggamit ng CPU. Ito ay isang pauna-unahang algorithm. Mayroong isang nakapirming hiwa ng oras na nauugnay sa bawat kahilingan na tinatawag na kabuuan. Ang tagapag-iskedyul ng trabaho ay nai-save ang pag-usad ng trabaho na kasalukuyang naisasagawa at lumilipat sa susunod na trabaho na naroroon sa pila kapag ang isang partikular na proseso ay naisakatuparan para sa isang naibigay na dami ng oras.





Pag-iiskedyul ng Round Robin

Walang proseso na hahawak sa CPU nang mahabang panahon. Ang switching ay tinatawag na isang switch ng konteksto. Marahil ito ay isa sa pinakamahusay na pag-iiskedyul ng mga algorithm. Ang kahusayan ng algorithm na ito ay nakasalalay sa halagang dami.



ROUND ROBIN SCHEDULING ALGORITM

  • Una kaming may pila kung saan ang mga proseso ay nakaayos sa unang pag-uutos ng una.
  • Ang isang halaga ng kabuuan ay inilalaan upang maipatupad ang bawat proseso.
  • Ang unang proseso ay naisakatuparan hanggang sa katapusan ng halagang dami. Pagkatapos nito, nabuo ang isang nakakagambala at nai-save ang estado.
  • Pagkatapos ay lilipat ang CPU sa susunod na proseso at sinusundan ang parehong pamamaraan.
  • Ang parehong mga hakbang ay paulit-ulit hanggang sa matapos ang lahat ng mga proseso.

Isaalang-alang ang Halimbawa ng Code

#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 ('nMasok ang Kabuuang Bilang ng Mga Proseso: t') scanf ('% d', at limitasyon) x = limit para sa (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} kung (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, burst_time [i], total - arrival_time [i], total - arrival_time [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} kung (i == limit - 1) {i = 0} iba pa kung (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 }

OUTPUT:

Paliwanag:

Sa code sa itaas, hinihiling namin sa gumagamit na ipasok ang bilang ng mga proseso at oras ng pagdating at oras ng pagsabog para sa bawat proseso. Pagkatapos ay kinakalkula namin ang oras ng paghihintay at ang pag-ikot ng oras gamit ang round-robin algorithm.

java kung paano lumabas ng programa

Ang pangunahing bahagi dito ay ang pagkalkula ng turn sa oras at oras ng paghihintay. Ang oras sa pagikot ay kinakalkula sa pamamagitan ng pagdaragdag ng kabuuang oras na kinuha at ibabawas ang oras ng pagdating.

Ang oras ng paghihintay ay kinakalkula sa pamamagitan ng pagbabawas ng oras ng pagdating at pagsabog ng oras mula sa kabuuan at idagdag ito t0 ang oras ng paghihintay. Ganito nagaganap ang pag-iiskedyul ng round-robin.



tutorial ng ms sql para sa mga nagsisimula

Mga kalamangan:

  • Mababang overhead para sa paggawa ng desisyon.
  • Hindi tulad ng iba pang mga algorithm, nagbibigay ito ng pantay na priyoridad sa lahat ng mga proseso.
  • Ang kagutuman ay bihirang nangyayari sa prosesong ito.

KAHULANGAN:

  • Ang kahusayan ng system ay nabawasan kung ang halaga ng kabuuan ay mababa dahil sa madalas na paglipat ay nagaganap.
  • Ang sistema ay maaaring maging hindi tumutugon kung ang halaga ng kabuuan ay mataas.

Sa pamamagitan nito, natapos na kami sa artikulong ito.

Inaasahan kong nahanap mo ito na nagbibigay-kaalaman at kapaki-pakinabang, manatiling nakasubaybay para sa higit pang mga tutorial sa mga katulad na paksa. Maaari mo ring suriin ang aming programa sa pagsasanay to makakuha ng malalim na kaalaman sa jQuery kasama ang iba't ibang mga aplikasyon, maaari mo para sa live na pagsasanay sa online na may suporta na 24/7 at habang-buhay na pag-access.Ipatupad ang code sa itaas na may iba't ibang mga string at pagbabago. Ngayon, mayroon kaming mahusay na pag-unawa sa lahat ng mga pangunahing konsepto na nauugnay sa pointer.

May tanong ba sa amin? Nabanggit ang mga ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin.