Algoritma Penjadwalan Prioritas: CONTOH Preemptive, Non-Preemptive

Daftar Isi:

Anonim

Apa itu Penjadwalan Prioritas?

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

Proses dengan prioritas 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.

Dalam tutorial Sistem Operasi ini, Anda akan mempelajari:

  • Apa itu Penjadwalan Prioritas?
  • Jenis Penjadwalan Prioritas
  • Karakteristik Penjadwalan Prioritas
  • Contoh Penjadwalan Prioritas
  • Keuntungan penjadwalan prioritas
  • Kerugian dari penjadwalan prioritas

Jenis Penjadwalan Prioritas

Penjadwalan prioritas dibagi menjadi dua jenis utama:

Penjadwalan Preemptive

Dalam Penjadwalan Terlebih Dahulu, sebagian besar tugas ditetapkan dengan prioritasnya. Terkadang penting untuk menjalankan tugas dengan prioritas lebih tinggi sebelum tugas dengan prioritas lebih rendah lainnya, meskipun tugas dengan prioritas lebih rendah masih berjalan. Tugas dengan prioritas lebih rendah akan bertahan selama beberapa waktu dan dilanjutkan saat tugas dengan prioritas lebih tinggi menyelesaikan eksekusinya.

Penjadwalan Non-Preemptive

Dalam metode penjadwalan jenis ini, CPU telah dialokasikan untuk proses tertentu. Proses yang membuat CPU sibuk, akan melepaskan CPU baik dengan mengganti 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

  • Algoritme CPU yang menjadwalkan proses berdasarkan prioritas.
  • Ini digunakan dalam sistem operasi untuk melakukan proses batch.
  • Jika dua pekerjaan memiliki prioritas yang sama SIAP, ini bekerja pada DATANG PERTAMA, LAYANAN PERTAMA.
  • Dalam penjadwalan prioritas, sebuah nomor ditetapkan ke setiap proses yang menunjukkan tingkat prioritasnya.
  • Semakin rendah angkanya, semakin tinggi prioritasnya.
  • Dalam jenis algoritme penjadwalan ini, jika proses yang lebih baru tiba, yang memiliki prioritas lebih tinggi daripada proses yang sedang berjalan, maka proses yang sedang berjalan akan diutamakan.

Contoh Penjadwalan Prioritas

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

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 dari P2. Eksekusi dimulai dengan proses P1 yang memiliki waktu burst 4.

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

Langkah 2) Pada waktu 2, tidak ada proses baru yang datang, jadi Anda dapat melanjutkan dengan P1. P2 sedang dalam antrian tunggu.

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

Langkah 4) Pada saat ke 4, P1 telah selesai dieksekusi. P2 memulai eksekusi.

Langkah 5) Pada waktu = 5, tidak ada proses baru yang datang, jadi kami lanjutkan dengan P2.

Langkah 6) Pada waktu = 6, P3 tiba. P3 memiliki prioritas yang lebih tinggi (1) dibandingkan dengan P2 yang memiliki 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

Langkah 7) Pada jam 7, tidak ada proses baru yang datang, jadi kami melanjutkan dengan P3. P2 sedang 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 datang sehingga kita dapat melanjutkan dengan P3.

Langkah 10) Pada interval waktu 10, tidak ada proses baru yang datang, jadi kami melanjutkan dengan P3

Langkah 11) Pada saat = 11, P4 datang 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 menunggu 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. Kami memiliki P2, P4, P5 dalam antrian siap. P2 dan P5 memiliki prioritas yang sama. Waktu kedatangan P2 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

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

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

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

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

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

Waiting Time = waktu mulai - waktu kedatangan + waktu tunggu untuk burst berikutnya

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

Keuntungan penjadwalan prioritas

Berikut, manfaat / kelebihan menggunakan metode penjadwalan prioritas:

  • Metode penjadwalan yang mudah digunakan
  • Proses dijalankan atas dasar 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 / kekurangan dari penjadwalan prioritas

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

Ringkasan:

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