Penjadualan Round Robin dalam Pengaturcaraan C



Artikel ini akan memberi anda pengetahuan terperinci dan komprehensif tentang bagaimana melaksanakan Penjadualan Round Robin dalam Pengaturcaraan C.

Dalam artikel ini, kita akan belajar mengenai algoritma penjadualan yang disebut algoritma penjadualan bulat-robin, apa itu round-robin? Bagaimana menulis program? Mari kita mulakan.

Apakah Penjadualan Round Robin?

Round Robin Penjadwalan adalah algoritma penjadualan yang digunakan oleh sistem untuk menjadualkan penggunaan CPU. Ini adalah algoritma preemptive. Terdapat potongan masa tetap yang berkaitan dengan setiap permintaan yang disebut kuantum. Penjadual kerja menyimpan kemajuan pekerjaan yang sedang dilaksanakan dan bergerak ke pekerjaan berikutnya yang hadir dalam barisan ketika proses tertentu dijalankan untuk kuantum waktu tertentu.





Penjadualan Robin Bulat

panjang array dalam javascript

Tidak ada proses yang akan menahan CPU untuk masa yang lama. Peralihan itu disebut peralihan konteks. Ini mungkin salah satu algoritma penjadualan terbaik. Kecekapan algoritma ini bergantung pada nilai kuantum.



sediakan gerhana untuk java

ALGORITMA JADUAL ROBIN ROUND

  • Kami pertama kali mempunyai barisan di mana prosesnya disusun mengikut urutan pertama.
  • Nilai kuantum diperuntukkan untuk melaksanakan setiap proses.
  • Proses pertama dijalankan hingga akhir nilai kuantum. Selepas ini, gangguan dihasilkan dan keadaan disimpan.
  • CPU kemudian beralih ke proses seterusnya dan kaedah yang sama diikuti.
  • Langkah yang sama diulang sehingga semua proses selesai.

Pertimbangkan Kod Contoh

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int waiting_time = 0, turn_ound_time = 0, waiting_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nMasukkan Jumlah Jumlah Proses: t') scanf ('% d', & had) x = had untuk (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} jika (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, burst_time [i], total - waiting_time [i], total - waiting_time [i] - burst_time [i]) wait_time = waiting_time + total - kedatangan_time [i] - burst_time [i] putaran_waktu = turnaround_time + total - waiting_time [i] counter = 0} if (i == had - 1) {i = 0} lain jika (kedatangan_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 }

PENGELUARAN:

PENJELASAN:

Dalam kod di atas, kami meminta pengguna memasukkan jumlah proses dan waktu ketibaan dan waktu pecah untuk setiap proses. Kami kemudian mengira masa menunggu dan masa putaran menggunakan algoritma round-robin.

Bahagian utama di sini adalah mengira masa pusingan dan masa menunggu. Waktu pusingan dikira dengan menambahkan jumlah masa yang diambil dan mengurangkan masa ketibaan.

Masa menunggu dikira dengan mengurangkan masa ketibaan dan masa pecah dari jumlah dan menambahkannya ke waktu menunggu. Ini adalah bagaimana penjadualan round-robin berlaku.



KELEBIHAN:

  • Overhead rendah untuk membuat keputusan.
  • Tidak seperti algoritma lain, ia memberikan keutamaan yang sama untuk semua proses.
  • Kelaparan jarang berlaku dalam proses ini.

KELEBIHAN:

  • Kecekapan sistem akan berkurang jika nilai kuantum rendah kerana peralihan kerap berlaku.
  • Sistem mungkin menjadi tidak responsif sekiranya nilai kuantum tinggi.

Dengan ini, kita akan mengakhiri artikel ini.

Saya harap anda dapati maklumat ini bermanfaat dan bermanfaat, nantikan lebih banyak tutorial mengenai topik serupa. Anda juga boleh melihat program latihan kami to dapatkan pengetahuan mendalam mengenai jQuery bersama dengan pelbagai aplikasinya, anda boleh untuk latihan dalam talian secara langsung dengan sokongan 24/7 dan akses seumur hidup.Terapkan kod di atas dengan rentetan dan pengubahsuaian yang berbeza. Sekarang, kita mempunyai pemahaman yang baik tentang semua konsep utama yang berkaitan dengan penunjuk.

cara membuat singleton kelas

Ada soalan untuk kami? Sebutkannya di bahagian komen blog ini dan kami akan menghubungi anda.