Penjadwalan Preemptive vs Non-Preemptive: Perbedaan Utama

Daftar Isi:

Anonim

Apa itu Penjadwalan Terlebih Dahulu?

Penjadwalan Terlebih Dahulu adalah metode penjadwalan di mana 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.

Pada saat itu, tugas dengan prioritas yang lebih rendah akan ditahan selama beberapa waktu dan dilanjutkan saat tugas dengan prioritas yang lebih tinggi menyelesaikan eksekusinya.

Dalam tutorial Sistem Operasi ini, Anda akan mempelajari:

  • Apa itu Penjadwalan Terlebih Dahulu?
  • Apa itu Penjadwalan Non-Preemptive?
  • Perbedaan Antara Penjadwalan Preemptive dan Non-Preemptive di OS
  • Keuntungan Penjadwalan Terlebih Dahulu
  • Keuntungan Penjadwalan Non-preemptive
  • Kekurangan Penjadwalan Terlebih Dahulu
  • Kekurangan Penjadwalan Non-Preemptive
  • Contoh Penjadwalan Non-Preemptive
  • Contoh Penjadwalan Pre-emptive

Apa itu 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 sebelumnya.

Penjadwalan Non-Preemptive terjadi ketika suatu proses secara sukarela memasuki status menunggu atau berhenti.

Perbedaan Antara Penjadwalan Preemptive dan Non-Preemptive di OS

Berikut, Penjadwalan Preemptive dan Non-Preemptive di OS

Penjadwalan Preemptive Penjadwalan Non-preemptive
Prosesor dapat digunakan untuk menjalankan proses yang berbeda di tengah eksekusi proses apa pun saat ini. Setelah prosesor memulai eksekusinya, ia harus menyelesaikannya sebelum menjalankan yang lain. Tidak bisa dijeda di tengah.
Pemakaian CPU lebih efisien dibandingkan dengan Penjadwalan Non-Preemptive. Pemakaian CPU kurang efisien dibandingkan dengan Penjadwalan preemptive.
Waktu tunggu dan waktu respons penjadwalan preemptive lebih sedikit. Waktu tunggu dan waktu respons metode Penjadwalan non-preemptive lebih tinggi.
Penjadwalan Terlebih Dahulu diprioritaskan. Proses prioritas tertinggi adalah proses yang saat ini digunakan. Saat proses apa pun memasuki status berjalan, status proses tersebut tidak pernah dihapus dari penjadwal hingga menyelesaikan tugasnya.
Penjadwalan Preemptive fleksibel. Penjadwalan Non-preemptive kaku.
Contoh: - Sisa Waktu Tersingkat Pertama, Round Robin, dll. Contoh: First Come First Serve, Pekerjaan Terpendek Pertama, Penjadwalan Prioritas, dll.
Algoritma Penjadwalan Terlebih Dahulu dapat didahului sehingga proses dapat Dijadwalkan Dalam proses penjadwalan non-preemptive tidak dapat Dijadwalkan
Dalam proses ini, CPU dialokasikan ke proses untuk jangka waktu tertentu. Dalam proses ini, CPU dialokasikan untuk proses tersebut hingga berhenti atau beralih ke status menunggu.
Algoritme preemptive memiliki overhead untuk mengalihkan proses dari status siap ke status berjalan dan sebaliknya. Penjadwalan Non-preemptive tidak memiliki overhead untuk mengalihkan proses dari berjalan ke status siap.

Keuntungan Penjadwalan Terlebih Dahulu

Berikut kelebihan / keuntungan metode Preemptive Scheduling:

  • Metode penjadwalan preemptive lebih kuat, pendekatan sehingga satu proses tidak dapat memonopoli CPU
  • Pilihan menjalankan tugas dipertimbangkan kembali setelah setiap interupsi.
  • Setiap peristiwa menyebabkan gangguan tugas yang sedang berjalan
  • OS memastikan bahwa penggunaan CPU sama dengan semua proses yang berjalan.
  • Dalam hal ini, penggunaan CPU adalah sama, yaitu semua proses yang berjalan akan menggunakan CPU secara merata.
  • Metode penjadwalan ini juga mengimprovisasi waktu respons rata-rata.
  • Penjadwalan Terlebih Dahulu bermanfaat saat kami menggunakannya untuk lingkungan multi-pemrograman.

Keuntungan Penjadwalan Non-preemptive

Berikut, kelebihan / keuntungan metode Penjadwalan Non-preemptive:

  • Menawarkan overhead penjadwalan yang rendah
  • Cenderung menawarkan throughput yang tinggi
  • Ini adalah metode yang sangat sederhana secara konseptual
  • Lebih sedikit kebutuhan sumber daya komputasi untuk Penjadwalan

Kekurangan Penjadwalan Terlebih Dahulu

Berikut adalah kekurangan / kekurangan dari metode Preemptive Scheduling:

  • Perlu sumber daya komputasi terbatas untuk Penjadwalan
  • Butuh waktu lebih lama oleh penjadwal untuk menangguhkan tugas yang sedang berjalan, mengganti konteks, dan mengirimkan tugas baru yang masuk.
  • Proses yang memiliki prioritas rendah perlu menunggu lebih lama jika beberapa proses dengan prioritas tinggi datang terus menerus.

Kekurangan Penjadwalan Non-Preemptive

Berikut adalah kekurangan / kekurangan dari metode Penjadwalan Non Preemptive:

  • Ini dapat menyebabkan kelaparan terutama untuk tugas-tugas waktu nyata tersebut
  • Bug dapat menyebabkan mesin macet
  • Hal ini dapat membuat Penjadwalan prioritas dan real-time menjadi sulit
  • Waktu respons yang buruk untuk proses

Contoh Penjadwalan Non-Preemptive

Dalam penjadwalan SJF non-preemptive, setelah siklus CPU dialokasikan untuk diproses, proses akan menahannya hingga mencapai status menunggu atau dihentikan.

Pertimbangkan lima proses berikut yang masing-masing memiliki waktu burst dan waktu kedatangan yang unik.

Proses Antrian Waktu meledak Jam kedatangan
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Langkah 0) Pada waktu = 0, P4 tiba dan memulai eksekusi.

Langkah 1) Pada waktu = 1, Proses P3 tiba. Namun, P4 masih membutuhkan 2 unit eksekusi untuk diselesaikan. Ini akan melanjutkan eksekusi.

Langkah 2) Pada waktu = 2, proses P1 tiba dan ditambahkan ke antrian tunggu. P4 akan melanjutkan eksekusi.

Langkah 3) Pada waktu = 3, proses P4 akan menyelesaikan eksekusinya. Waktu burst P3 dan P1 dibandingkan. Proses P1 dijalankan karena waktu burstnya lebih sedikit dibandingkan dengan P3.

Langkah 4) Pada waktu = 4, proses P5 tiba dan ditambahkan ke antrian tunggu. P1 akan melanjutkan eksekusi.

Langkah 5) Pada waktu = 5, proses P2 tiba dan ditambahkan ke antrian tunggu. P1 akan melanjutkan eksekusi.

Langkah 6) Pada waktu = 9, proses P1 akan menyelesaikan eksekusinya. Waktu burst P3, P5, dan P2 dibandingkan. Proses P2 dijalankan karena waktu burstnya paling rendah.

Langkah 7) Pada waktu = 10, P2 sedang dieksekusi, dan P3 dan P5 berada dalam antrian tunggu.

Langkah 8) Pada time = 11, proses P2 akan menyelesaikan eksekusinya. Waktu burst P3 dan P5 dibandingkan. Proses P5 dijalankan karena waktu burstnya lebih rendah.

Langkah 9) Pada waktu = 15, proses P5 akan menyelesaikan eksekusinya.

Langkah 10) Pada waktu = 23, proses P3 akan menyelesaikan eksekusinya.

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

Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Contoh Penjadwalan Pre-emptive

Pertimbangkan tiga proses berikut ini di Round-robin

Proses Antrian Waktu meledak
P1 4
P2 3
P3 5

Langkah 1) Eksekusi dimulai dengan proses P1, yang memiliki waktu burst 4. Di sini, setiap proses dijalankan selama 2 detik. P2 dan P3 masih dalam antrian tunggu.

Langkah 2 ) Pada waktu = 2, P1 ditambahkan ke akhir Antrian dan P2 mulai dijalankan

Langkah 3) Pada waktu = 4, P2 didahului dan ditambahkan di akhir antrian. P3 mulai mengeksekusi.

Langkah 4) Pada waktu = 6, P3 didahului dan ditambahkan di akhir antrian. P1 mulai mengeksekusi.

Langkah 5) Pada waktu = 8, P1 memiliki waktu burst 4. Ini telah menyelesaikan eksekusi. P2 memulai eksekusi

Langkah 6) P2 memiliki waktu burst 3. Ini telah dijalankan selama 2 interval. Pada time = 9, P2 menyelesaikan eksekusi. Kemudian, P3 memulai eksekusi hingga selesai.

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

Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7

PERBEDAAN UTAMA

  • Dalam Penjadwalan Preemptive, CPU dialokasikan ke proses untuk jangka waktu tertentu, dan CPU penjadwalan non-preemptive dialokasikan ke proses hingga proses berakhir.
  • Dalam Penjadwalan Preemptive, tugas dialihkan berdasarkan prioritas sementara Penjadwalan non-preemptive tidak ada pengalihan yang terjadi.
  • Algoritme preemptive memiliki overhead untuk mengalihkan proses dari status siap ke status berjalan sementara Penjadwalan Non-preemptive tidak memiliki overhead pengalihan seperti itu.
  • Penjadwalan Preemptive fleksibel sementara Penjadwalan Non-preemptive kaku.