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.

  • 🎯 Definisi: Proses dijadwalkan berdasarkan prioritas, dengan tugas berprioritas lebih tinggi dieksekusi sebelum tugas berprioritas lebih rendah.
  • 🔢 Nomor Prioritas: Angka yang lebih rendah biasanya berarti prioritas yang lebih tinggi.
  • ⏸️ Pencegahan: Kedatangan dengan prioritas lebih tinggi dapat mengganggu proses dengan prioritas lebih rendah yang sedang berjalan.
  • ▶ ️ Non-Preemptif: Proses yang sedang berjalan akan terus menggunakan CPU hingga proses tersebut berakhir atau berganti konteks.
  • Keuntungan: Proses-proses penting berjalan dengan cepat, menyesuaikan tingkat kepentingan relatif dengan waktu CPU.
  • ⚠️ Kekurangan: Proses dengan prioritas rendah mungkin akan terhenti dan menunggu tanpa batas waktu.

Algoritma Penjadwalan Prioritas

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.

Penjadwalan Prioritas

Langkah 1) Pada waktu = 1, tidak ada proses baru yang tiba. Eksekusi berlanjut 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 3, tidak ada proses baru yang datang, jadi Anda dapat melanjutkan dengan P1. Proses P2 masih berada 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, jadi kita lanjutkan dengan P2.

Penjadwalan Prioritas

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

Penjadwalan Prioritas

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

Penjadwalan Prioritas

Langkah 8) Pada waktu = 8, tidak ada proses baru yang datang, jadi kita dapat melanjutkan dengan P3.

Penjadwalan Prioritas

Langkah 9) Pada waktu = 9, tidak ada proses baru yang muncul, jadi kita dapat melanjutkan dengan P3.

Penjadwalan Prioritas

Langkah 10) Pada interval waktu 10, tidak ada proses baru yang muncul, jadi kita lanjutkan dengan P3.

Penjadwalan Prioritas

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

Penjadwalan Prioritas

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

Penjadwalan Prioritas

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

Penjadwalan Prioritas

Langkah 14) Pada waktu = 14, proses P2 telah menyelesaikan eksekusinya. P4 dan P5 berada 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 telah selesai dieksekusi. P4 adalah satu-satunya proses yang tersisa. Proses ini mulai dieksekusi.

Penjadwalan Prioritas

Langkah 17) Pada waktu = 20, P4 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 = 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.

Pertanyaan Umum Demo Slot

Kelaparan terjadi ketika proses berprioritas rendah menunggu tanpa batas waktu karena proses berprioritas lebih tinggi terus berdatangan. Penuaan (aging) mengatasinya dengan secara bertahap meningkatkan prioritas proses yang telah menunggu lama, sehingga setiap proses pada akhirnya akan berjalan.

Pada sebagian besar sistem operasi, angka prioritas yang lebih rendah berarti prioritas yang lebih tinggi. Misalnya, proses dengan prioritas 1 berjalan sebelum proses dengan prioritas 3. Namun, beberapa sistem membalikkan hal ini, jadi selalu periksa konvensi yang digunakan.

Prioritas dapat ditetapkan secara internal menggunakan faktor-faktor seperti kebutuhan memori, persyaratan waktu, dan lonjakan CPU, atau secara eksternal oleh pengguna atau administrator berdasarkan kepentingan, biaya, atau tenggat waktu. Prioritas dapat bersifat statis (tetap) atau dinamis (berubah saat runtime).

AI dapat menetapkan dan menyesuaikan prioritas proses secara dinamis dengan mempelajari pola beban kerja dan tenggat waktu. Hal ini membantu pekerjaan penting selesai tepat waktu sekaligus mengurangi risiko kekurangan sumber daya, meningkatkan throughput dan responsivitas secara keseluruhan dalam sistem yang kompleks dan terus berubah.

Ya. AI dapat memantau waktu tunggu dan secara otomatis meningkatkan prioritas proses yang menunggu lama, bertindak seperti penuaan cerdas. Dengan memprediksi kemacetan, AI menyeimbangkan keadilan dan kinerja dengan lebih baik daripada aturan tetap, sehingga pekerjaan berprioritas rendah tidak tertunda selamanya.

Ringkaslah postingan ini dengan: