Penjadwalan Round Robin dalam Pemrograman C.



Artikel ini akan memberi Anda pengetahuan terperinci dan komprehensif tentang bagaimana menerapkan Penjadwalan Round Robin dalam Pemrograman C.

Pada artikel ini, kita akan belajar tentang algoritma penjadwalan yang disebut algoritma penjadwalan round-robin, apa itu algoritma penjadwalan round-robin? Bagaimana cara menulis program? Dll Mari kita mulai.

Apa itu Penjadwalan Round Robin?

Penjadwalan Round Robin adalah algoritma penjadwalan yang digunakan oleh sistem untuk menjadwalkan pemanfaatan CPU. Ini adalah algoritma preemptive. Ada potongan waktu tetap yang terkait dengan setiap permintaan yang disebut kuantum. Penjadwal pekerjaan menyimpan kemajuan pekerjaan yang sedang dieksekusi saat ini dan pindah ke pekerjaan berikutnya yang ada dalam antrian ketika proses tertentu dijalankan untuk kuantum waktu tertentu.





Penjadwalan Round Robin

apa itu ide java

Tidak ada proses yang akan menahan CPU untuk waktu yang lama. Peralihan ini disebut sakelar konteks. Ini mungkin salah satu algoritma penjadwalan terbaik. Efisiensi algoritma ini bergantung pada nilai kuantum.



algoritma dan struktur data di java

ALGORITMA PENJADWALAN ROBIN PUTARAN

  • Kami pertama kali memiliki antrian di mana proses diatur dalam urutan pertama datang pertama dilayani.
  • Nilai kuantum dialokasikan untuk menjalankan setiap proses.
  • Proses pertama dijalankan hingga akhir nilai kuantum. Setelah ini, interupsi dibuat dan status disimpan.
  • CPU kemudian pindah ke proses berikutnya dan metode yang sama diikuti.
  • Langkah yang sama diulangi sampai semua proses selesai.

Pertimbangkan Kode Contoh

#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 ('nEnter Total Jumlah Proses: t') scanf ('% d', & batas) x = batas untuk (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, 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} if (i == limit - 1) {i = 0} else if (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 }

KELUARAN:

PENJELASAN:

Pada kode di atas, kami meminta pengguna untuk memasukkan jumlah proses dan waktu kedatangan serta waktu burst untuk setiap proses. Kami kemudian menghitung waktu tunggu dan waktu putaran menggunakan algoritma round-robin.

Bagian utama di sini adalah menghitung waktu putar balik dan waktu tunggu. Waktu berputar dihitung dengan menambahkan total waktu yang dibutuhkan dan mengurangi waktu kedatangan.

Waktu tunggu dihitung dengan mengurangkan waktu kedatangan dan waktu burst dari total dan menambahkannya ke waktu tunggu. Beginilah cara penjadwalan round-robin.



KEUNTUNGAN:

  • Overhead rendah untuk pengambilan keputusan.
  • Tidak seperti algoritma lain, ini memberikan prioritas yang sama untuk semua proses.
  • Kelaparan jarang terjadi dalam proses ini.

KEUNTUNGAN:

  • Efisiensi sistem menurun jika nilai kuantum rendah karena sering terjadi peralihan.
  • Sistem mungkin menjadi tidak responsif jika nilai kuantum tinggi.

Dengan ini, kita sampai pada akhir artikel ini.

Saya harap Anda menemukan ini informatif dan bermanfaat, nantikan lebih banyak tutorial tentang topik serupa. Anda juga dapat melihat program pelatihan kami to dapatkan pengetahuan mendalam tentang jQuery bersama dengan berbagai aplikasinya, Anda bisa untuk pelatihan online langsung dengan dukungan 24/7 dan akses seumur hidup.Implementasikan kode di atas dengan string dan modifikasi yang berbeda. Sekarang, kami memiliki pemahaman yang baik tentang semua konsep utama yang terkait dengan penunjuk.

perbedaan antara memperpanjang dan menerapkan

Ada pertanyaan untuk kami? Sebutkan mereka di bagian komentar blog ini dan kami akan menghubungi Anda kembali.