Algoritma Penjadwalan Prioritas: CONTOH Preemptive, Non-Preemptive

Apa itu Penjadwalan Prioritas?

Penjadwalan Prioritas adalah metode penjadwalan proses yang didasarkan pada prioritas. Dalam algoritma ini, penjadwal memilih tugas yang akan dikerjakan sesuai prioritas.

Proses dengan prioritas yang lebih tinggi harus dilakukan terlebih dahulu, sedangkan pekerjaan dengan prioritas yang sama dilakukan secara round-robin atau FCFS. Prioritas tergantung pada kebutuhan memori, persyaratan waktu, dll.

Jenis Penjadwalan Prioritas

Penjadwalan prioritas dibagi menjadi dua jenis utama:

Penjadwalan Preemptive

Dalam Penjadwalan Preemptive, sebagian besar tugas ditetapkan berdasarkan prioritasnya. Terkadang penting untuk menjalankan tugas dengan prioritas lebih tinggi sebelum tugas lain yang berprioritas lebih rendah, meskipun tugas dengan prioritas lebih rendah masih berjalan. Tugas dengan prioritas lebih rendah bertahan selama beberapa waktu dan dilanjutkan ketika tugas dengan prioritas lebih tinggi selesai dijalankan.

Penjadwalan Non-Preemptive

Dalam metode penjadwalan jenis ini, CPU telah dialokasikan untuk proses tertentu. Proses yang membuat CPU sibuk, akan melepaskan CPU baik dengan mengalihkan konteks atau mengakhiri. Ini adalah satu-satunya metode yang dapat digunakan untuk berbagai platform perangkat keras. Itu karena tidak memerlukan perangkat keras khusus (misalnya pengatur waktu) seperti penjadwalan preemptive.

Karakteristik Penjadwalan Prioritas

  • Algoritma CPU yang menjadwalkan proses berdasarkan prioritas.
  • Itu digunakan di Operating sistem untuk melakukan proses batch.
  • Jika dua pekerjaan yang mempunyai prioritas yang sama adalah READY, maka pekerjaan tersebut akan bekerja pada a PERTAMA DATANG PERTAMA DILAYANI dasar.
  • Dalam penjadwalan prioritas, nomor diberikan pada setiap proses yang menunjukkan tingkat prioritasnya.
  • Semakin rendah angkanya, semakin tinggi prioritasnya.
  • Dalam algoritma penjadwalan jenis ini, jika ada proses yang lebih baru, yang memiliki prioritas lebih tinggi daripada proses yang sedang berjalan, maka proses yang sedang berjalan akan didahului.

Contoh Penjadwalan Prioritas

Pertimbangkan lima proses berikut: P1 hingga P5. Setiap proses memiliki prioritas, waktu burst, dan waktu kedatangan yang unik.

Proses Prioritas Waktu meledak Jam kedatangan
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Langkah 0) Pada waktu=0, Proses P1 dan P2 tiba. P1 mempunyai prioritas lebih tinggi dibandingkan P2. Eksekusi dimulai dengan proses P1 yang memiliki waktu burst 4.

Penjadwalan Prioritas

Langkah 1) Pada waktu=1, tidak ada proses baru yang datang. Eksekusi dilanjutkan dengan P1.

Penjadwalan Prioritas

Langkah 2) Pada waktu ke 2, tidak ada proses baru yang masuk, sehingga Anda dapat melanjutkan ke P1. P2 sedang dalam antrian tunggu.

Penjadwalan Prioritas

Langkah 3) Pada waktu ke 3, tidak ada proses baru yang masuk sehingga Anda dapat melanjutkan ke P1. Proses P2 masih dalam antrian tunggu.

Penjadwalan Prioritas

Langkah 4) Pada waktu ke 4, P1 telah selesai pelaksanaannya. P2 memulai eksekusi.

Penjadwalan Prioritas

Langkah 5) Pada waktu= 5, tidak ada proses baru yang datang, maka kita lanjutkan ke P2.

Penjadwalan Prioritas

Langkah 6) Pada waktu=6, P3 tiba. P3 mempunyai prioritas lebih tinggi (1) dibandingkan P2 yang mempunyai prioritas (2). P2 didahului, dan P3 memulai eksekusinya.

Proses Prioritas Waktu meledak Jam kedatangan
P1 1 4 0
P2 2 1 dari 3 tertunda 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Penjadwalan Prioritas

Langkah 7) Pada waktu 7, tidak ada proses baru yang datang, jadi kita lanjutkan ke P3. P2 sedang dalam antrian tunggu.

Penjadwalan Prioritas

Langkah 8) Pada waktu= 8, tidak ada proses baru yang masuk, sehingga kita dapat melanjutkan ke P3.

Penjadwalan Prioritas

Langkah 9) Pada waktu= 9, tidak ada proses baru yang datang sehingga kita dapat melanjutkan ke P3.

Penjadwalan Prioritas

Langkah 10) Pada interval waktu 10, tidak ada proses baru yang datang, maka kita lanjutkan ke P3

Penjadwalan Prioritas

Langkah 11) Pada waktu=11, P4 tiba dengan prioritas 4. P3 mempunyai prioritas lebih tinggi, sehingga melanjutkan eksekusinya.

Proses Prioritas Waktu meledak Jam kedatangan
P1 1 4 0
P2 2 1 dari 3 tertunda 0
P3 1 2 dari 7 tertunda 6
P4 3 4 11
P5 2 2 12

Penjadwalan Prioritas

Langkah 12) Pada waktu=12, P5 tiba. P3 mempunyai prioritas lebih tinggi, sehingga melanjutkan eksekusi.

Penjadwalan Prioritas

Langkah 13) Pada waktu=13, P3 menyelesaikan eksekusi. Kita punya P2,P4,P5 dalam antrian siap. P2 dan P5 mempunyai prioritas yang sama. Waktu kedatangan P2 adalah sebelum P5. Jadi P2 memulai eksekusi.

Proses Prioritas Waktu meledak Jam kedatangan
P1 1 4 0
P2 2 1 dari 3 tertunda 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Penjadwalan Prioritas

Langkah 14) Pada waktu =14, proses P2 telah selesai dieksekusi. P4 dan P5 dalam keadaan menunggu. P5 memiliki prioritas tertinggi dan memulai eksekusi.

Penjadwalan Prioritas

Langkah 15) Pada waktu =15, P5 melanjutkan eksekusi.

Penjadwalan Prioritas

Langkah 16) Pada waktu = 16, P5 selesai pelaksanaannya. P4 adalah satu-satunya proses yang tersisa. Ini memulai eksekusi.

Penjadwalan Prioritas

Langkah 17) Pada waktu =20, P5 telah menyelesaikan eksekusi dan tidak ada proses yang tersisa.

Penjadwalan Prioritas

Langkah 18) Mari kita hitung waktu tunggu rata-rata untuk contoh di atas.

Waktu Tunggu = waktu mulai – waktu tiba + waktu tunggu untuk ledakan berikutnya

P1 = o - o = o
P2 =4 - o + 7 =11	
P3= 6-6=0
P4= 16-11=5
Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6

Keuntungan dari penjadwalan prioritas

Berikut manfaat/kelebihan menggunakan metode penjadwalan prioritas:

  • Metode penjadwalan yang mudah digunakan
  • Proses dieksekusi berdasarkan prioritas sehingga prioritas tinggi tidak perlu menunggu lama sehingga menghemat waktu
  • Metode ini memberikan mekanisme yang baik dimana kepentingan relatif dari setiap proses dapat didefinisikan secara tepat.
  • Cocok untuk aplikasi dengan kebutuhan waktu dan sumber daya yang berfluktuasi.

Kerugian dari penjadwalan prioritas

Berikut adalah kekurangan/kekurangan penjadwalan prioritas

  • Jika sistem akhirnya crash, semua proses dengan prioritas rendah akan hilang.
  • Jika proses dengan prioritas tinggi memakan banyak waktu CPU, maka proses dengan prioritas lebih rendah mungkin akan kelaparan dan akan ditunda untuk waktu yang tidak ditentukan.
  • Algoritme penjadwalan ini mungkin membiarkan beberapa proses berprioritas rendah menunggu tanpa batas waktu.
  • Suatu proses akan diblokir ketika sudah siap dijalankan tetapi harus menunggu CPU karena ada proses lain yang sedang berjalan.
  • Jika proses baru dengan prioritas lebih tinggi terus masuk dalam antrian siap, maka proses yang berada dalam status menunggu mungkin perlu menunggu dalam jangka waktu yang lama.

Kesimpulan

  • Penjadwalan prioritas adalah metode penjadwalan proses yang didasarkan pada prioritas. Dalam algoritma ini, penjadwal memilih tugas yang akan dikerjakan sesuai prioritas.
  • Dalam Penjadwalan Prioritas Prioritas, sebagian besar tugas ditetapkan sesuai prioritasnya.
  • Dalam metode penjadwalan Prioritas Non-preemptive, CPU telah dialokasikan ke proses tertentu.
  • Proses dieksekusi berdasarkan prioritas sehingga prioritas tinggi tidak perlu menunggu lama sehingga menghemat waktu
  • Jika proses dengan prioritas tinggi memakan banyak waktu CPU, maka proses dengan prioritas lebih rendah mungkin akan kelaparan dan akan ditunda untuk waktu yang tidak ditentukan.