Algoritma Penjadwalan Prioritas: Preemptif, Non-Preemptif
⚡ Ringkasan Cerdas
Penjadwalan Prioritas adalah metode penjadwalan CPU yang memilih proses berdasarkan prioritas, menjalankan tugas dengan prioritas lebih tinggi terlebih dahulu. Metode ini dapat bersifat preemptif atau non-preemptif, dan proses dengan prioritas yang sama ditangani berdasarkan prinsip first-come, first-served (yang pertama datang, yang pertama dilayani) atau round-robin.

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 terbagi 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 dialokasikan untuk proses tertentu. Proses yang membuat CPU sibuk akan melepaskan CPU baik dengan beralih konteks atau mengakhiri prosesnya. Ini adalah satu-satunya metode yang dapat digunakan untuk berbagai platform perangkat keras. Hal ini karena metode ini tidak memerlukan perangkat keras khusus (misalnya, timer) seperti penjadwalan preemptif.
Karakteristik Penjadwalan Prioritas
- Algoritma CPU yang menjadwalkan proses berdasarkan prioritas.
- Ini digunakan dalam 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 baru yang datang dengan prioritas lebih tinggi daripada proses yang sedang berjalan, maka proses yang sedang berjalan akan dihentikan sementara (preempted).
Contoh Penjadwalan Prioritas
Perhatikan lima proses berikut, P1 hingga P5. Setiap proses memiliki prioritas, waktu eksekusi, 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 memiliki prioritas lebih tinggi daripada P2. Eksekusi dimulai dengan proses P1, yang memiliki waktu burst 4.
Langkah 1) Pada waktu = 1, tidak ada proses baru yang tiba. Eksekusi berlanjut dengan P1.
Langkah 2) Pada waktu ke 2, tidak ada proses baru yang masuk, sehingga Anda dapat melanjutkan ke P1. P2 sedang dalam antrian tunggu.
Langkah 3) Pada waktu 3, tidak ada proses baru yang datang, jadi Anda dapat melanjutkan dengan P1. Proses P2 masih berada dalam antrian tunggu.
Langkah 4) Pada waktu ke 4, P1 telah selesai pelaksanaannya. P2 memulai eksekusi.
Langkah 5) Pada waktu = 5, tidak ada proses baru yang datang, jadi kita lanjutkan dengan P2.
Langkah 6) Pada waktu = 6, P3 tiba. P3 memiliki prioritas lebih tinggi (1) dibandingkan dengan P2 yang memiliki prioritas (2). P2 dihentikan sementara, dan P3 mulai dieksekusi.
| 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 |
Langkah 7) Pada waktu 7, tidak ada proses baru yang datang, jadi kita lanjutkan dengan P3. P2 berada dalam antrian tunggu.
Langkah 8) Pada waktu = 8, tidak ada proses baru yang datang, jadi kita dapat melanjutkan dengan P3.
Langkah 9) Pada waktu = 9, tidak ada proses baru yang muncul, jadi kita dapat melanjutkan dengan P3.
Langkah 10) Pada interval waktu 10, tidak ada proses baru yang muncul, jadi kita lanjutkan dengan P3.
Langkah 11) Pada waktu = 11, P4 tiba dengan prioritas 4. P3 memiliki 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 |
Langkah 12) Pada waktu = 12, P5 tiba. P3 memiliki prioritas lebih tinggi, sehingga melanjutkan eksekusi.
Langkah 13) Pada waktu = 13, P3 menyelesaikan eksekusi. Kita memiliki P2, P4, P5 dalam antrian siap. P2 dan P5 memiliki prioritas yang sama. Waktu kedatangan P2 lebih awal daripada P5, sehingga P2 mulai dieksekusi.
| 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 |
Langkah 14) Pada waktu = 14, proses P2 telah menyelesaikan eksekusinya. P4 dan P5 berada dalam keadaan menunggu. P5 memiliki prioritas tertinggi dan memulai eksekusi.
Langkah 15) Pada waktu = 15, P5 melanjutkan eksekusi.
Langkah 16) Pada waktu = 16, P5 telah selesai dieksekusi. P4 adalah satu-satunya proses yang tersisa. Proses ini mulai dieksekusi.
Langkah 17) Pada waktu = 20, P4 telah menyelesaikan eksekusi dan tidak ada proses yang tersisa.
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 = 0 - 0 = 0 P2 = 4 - 0 + 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 adalah manfaat/keuntungan menggunakan metode penjadwalan prioritas:
- Metode penjadwalan yang mudah digunakan.
- Proses dieksekusi berdasarkan prioritas, sehingga prioritas tinggi tidak perlu menunggu lama, yang menghemat waktu.
- Metode ini menyediakan mekanisme yang baik di mana 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/kelemahan 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.


















