Penjadualan Preemptive vs Non-Preemptive: Perbezaan Utama

Isi kandungan:

Anonim

Apakah Penjadualan Preemptive?

Preemptive Penjadualan adalah kaedah penjadualan di mana tugas-tugas kebanyakannya ditugaskan dengan keutamaannya. Kadang-kadang penting untuk menjalankan tugas dengan keutamaan yang lebih tinggi sebelum tugas dengan keutamaan yang lebih rendah, walaupun tugas dengan prioriti yang lebih rendah masih berjalan.

Pada masa itu, tugas dengan keutamaan yang lebih rendah ditahan untuk beberapa waktu dan disambung semula apabila tugas dengan keutamaan yang lebih tinggi menyelesaikan pelaksanaannya.

Dalam tutorial sistem Operasi ini, anda akan belajar:

  • Apakah Penjadualan Preemptive?
  • Apakah Penjadualan Bukan Preemptive?
  • Perbezaan Antara Penjadualan Preemptive dan Non-Preemptive dalam OS
  • Kelebihan Penjadualan Preemptive
  • Kelebihan Penjadualan Bukan Preemptive
  • Kekurangan Penjadualan Preemptive
  • Kelemahan Penjadualan Bukan Pencegahan
  • Contoh Penjadualan Bukan Pencegahan
  • Contoh Penjadualan Awal

Apakah Penjadualan Bukan Preemptive?

Dalam kaedah penjadualan jenis ini, CPU telah dialokasikan untuk proses tertentu. Proses yang membuat CPU sibuk akan melepaskan CPU sama ada dengan menukar konteks atau menghentikan.

Ini adalah satu-satunya kaedah yang boleh digunakan untuk pelbagai platform perkakasan. Ini kerana ia tidak memerlukan perkakasan khusus (misalnya, pemasa) seperti Penjadualan Awal.

Penjadwalan Bukan Preprive berlaku apabila proses memasuki keadaan menunggu secara sukarela atau berakhir.

Perbezaan Antara Penjadualan Preemptive dan Non-Preemptive dalam OS

Berikut, Penjadualan Preemptive dan Non-Preemptive dalam OS

Penjadualan Awal Penjadualan Bukan Preemptive
Pemproses dapat diprediksi untuk melaksanakan proses yang berbeza di tengah-tengah pelaksanaan proses semasa. Setelah pemproses memulakan pelaksanaannya, ia mesti menyelesaikannya sebelum melaksanakan yang lain. Ia tidak dapat dijeda di tengah.
Penggunaan CPU lebih cekap berbanding Penjadualan Bukan Preemptive. Penggunaan CPU kurang efisien berbanding dengan Penjadualan Awal.
Masa menunggu dan tindak balas Penjadualan Awal kurang. Masa menunggu dan tindak balas kaedah Penjadualan bukan preemptive adalah lebih tinggi.
Penjadualan Preemptive diutamakan. Proses keutamaan tertinggi adalah proses yang sedang digunakan. Apabila mana-mana proses memasuki keadaan berjalan, keadaan proses itu tidak akan dihapus dari penjadual sehingga selesai tugasnya.
Penjadualan Awal adalah fleksibel. Penjadualan Tidak Berpatutan adalah ketat.
Contoh: - Waktu Sisa Terpendek Pertama, Round Robin, dll. Contoh: Servis Pertama Datang Pertama, Pekerjaan Terpendek Pertama, Penjadualan Keutamaan, dll.
Algoritma Penjadualan Preemptive dapat diutamakan iaitu proses dapat Dijadwalkan Dalam proses penjadualan bukan preemptive tidak dapat Dijadwalkan
Dalam proses ini, CPU dialokasikan untuk proses untuk jangka waktu tertentu. Dalam proses ini, CPU dialokasikan untuk proses tersebut sehingga berakhir atau beralih ke keadaan menunggu.
Algoritma preemptive mempunyai overhead untuk menukar proses dari keadaan siap ke keadaan berjalan dan sebaliknya. Penjadualan Tanpa Preprive tidak mempunyai overhead untuk menukar proses daripada berjalan ke keadaan siap.

Kelebihan Penjadualan Preemptive

Berikut adalah kebaikan / faedah kaedah Penjadualan Awal:

  • Kaedah penjadualan preemptive lebih mantap, pendekatan sehingga satu proses tidak dapat memonopoli CPU
  • Pilihan tugas berjalan dipertimbangkan semula selepas setiap gangguan.
  • Setiap acara menyebabkan gangguan menjalankan tugas
  • OS memastikan bahawa penggunaan CPU adalah sama dengan semua proses yang dijalankan.
  • Dalam hal ini, penggunaan CPU adalah sama, yaitu, semua proses yang berjalan akan menggunakan CPU secara sama.
  • Kaedah penjadualan ini juga meningkatkan purata masa tindak balas.
  • Penjadualan Preemptive bermanfaat apabila kita menggunakannya untuk persekitaran pelbagai program.

Kelebihan Penjadualan Bukan Preemptive

Berikut adalah kebaikan / faedah kaedah Penjadualan Bukan Preemptive:

  • Menawarkan overhead penjadualan yang rendah
  • Cenderung menawarkan hasil yang tinggi
  • Ia adalah kaedah yang sangat mudah secara konsep
  • Sumber pengiraan yang kurang diperlukan untuk Penjadualan

Kekurangan Penjadualan Preemptive

Berikut, terdapat kekurangan / kekurangan kaedah Penjadualan Awal:

  • Memerlukan sumber pengiraan yang terhad untuk Penjadualan
  • Mengambil masa yang lebih tinggi oleh penjadual untuk menangguhkan tugas yang sedang berjalan, menukar konteks, dan mengirimkan tugas masuk yang baru.
  • Proses yang mempunyai keutamaan rendah perlu menunggu lebih lama jika beberapa proses dengan keutamaan tinggi tiba secara berterusan.

Kelemahan Penjadualan Bukan Pencegahan

Berikut, terdapat kekurangan / kekurangan kaedah Penjadualan Bukan Preprive:

  • Ia boleh menyebabkan kebuluran terutama untuk tugas-tugas masa nyata
  • Bug boleh menyebabkan mesin membeku
  • Ini boleh menjadikan Penjadualan masa nyata dan keutamaan menjadi sukar
  • Masa tindak balas yang lemah untuk proses

Contoh Penjadualan Bukan Pencegahan

Dalam penjadwalan SJF bukan preemptive, setelah kitaran CPU diperuntukkan untuk diproses, proses menahannya hingga mencapai keadaan menunggu atau dihentikan.

Pertimbangkan lima proses berikut yang masing-masing mempunyai waktu pecah dan waktu ketibaannya yang tersendiri.

Baris Proses Masa pecah Masa ketibaan
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Langkah 0) Pada masa = 0, P4 tiba dan memulakan pelaksanaan.

Langkah 1) Pada masa = 1, Proses P3 tiba. Tetapi, P4 masih memerlukan 2 unit pelaksanaan untuk diselesaikan. Ia akan terus dilaksanakan.

Langkah 2) Pada masa = 2, proses P1 tiba dan ditambahkan ke barisan menunggu. P4 akan meneruskan pelaksanaan.

Langkah 3) Pada masa = 3, proses P4 akan selesai pelaksanaannya. Masa pecah P3 dan P1 dibandingkan. Proses P1 dijalankan kerana masa pecahnya kurang berbanding P3.

Langkah 4) Pada masa = 4, proses P5 tiba dan ditambahkan ke barisan menunggu. P1 akan meneruskan pelaksanaan.

Langkah 5) Pada masa = 5, proses P2 tiba dan ditambahkan ke barisan menunggu. P1 akan meneruskan pelaksanaan.

Langkah 6) Pada masa = 9, proses P1 akan menyelesaikan pelaksanaannya. Masa pecah P3, P5, dan P2 dibandingkan. Proses P2 dijalankan kerana masa pecahnya adalah yang paling rendah.

Langkah 7) Pada masa = 10, P2 sedang dijalankan, dan P3 dan P5 berada dalam barisan menunggu.

Langkah 8) Pada masa = 11, proses P2 akan menyelesaikan pelaksanaannya. Masa pecah P3 dan P5 dibandingkan. Proses P5 dijalankan kerana masa pecahnya lebih rendah.

Langkah 9) Pada masa = 15, proses P5 akan menyelesaikan pelaksanaannya.

Langkah 10) Pada masa = 23, proses P3 akan menyelesaikan pelaksanaannya.

Langkah 11) Mari kita mengira purata masa menunggu 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 Penjadualan Awal

Pertimbangkan ini berikut tiga proses dalam Round-robin

Baris Proses Masa pecah
P1 4
P2 3
P3 5

Langkah 1) Pelaksanaannya dimulakan dengan proses P1, yang mempunyai waktu pecah 4. Di sini, setiap proses dijalankan selama 2 saat. P2 dan P3 masih dalam barisan menunggu.

Langkah 2 ) Pada masa = 2, P1 ditambahkan ke akhir Antrian dan P2 mula dijalankan

Langkah 3) Pada masa = 4, P2 lebih awal dan tambahkan pada akhir barisan. P3 mula dilaksanakan.

Langkah 4) Pada masa = 6, P3 lebih awal dan tambahkan pada akhir barisan. P1 mula dilaksanakan.

Langkah 5) Pada masa = 8, P1 mempunyai masa pecah 4. Ia telah selesai pelaksanaan. P2 memulakan pelaksanaan

Langkah 6) P2 mempunyai masa pecah 3. Ia telah dilaksanakan selama 2 selang. Pada masa = 9, P2 menyelesaikan pelaksanaan. Kemudian, P3 memulakan pelaksanaan sehingga selesai.

Langkah 7) Mari kita mengira purata masa menunggu untuk contoh di atas.

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

PERBEZAAN UTAMA

  • Dalam Penjadualan Preemptive, CPU dialokasikan untuk proses untuk jangka waktu tertentu, dan CPU penjadwalan bukan preemptive dialokasikan untuk proses sampai berakhir.
  • Dalam Penjadualan Preemptive, tugas diganti berdasarkan keutamaan sementara Penjadwalan tidak preemptive tidak berlaku pertukaran.
  • Algoritma preemptive mempunyai overhead untuk menukar proses dari keadaan siap ke keadaan berjalan sementara Penjadualan Bukan Preemptive tidak mempunyai overhead pertukaran seperti itu.
  • Penjadualan Preemptive fleksibel sementara Penjadualan Bukan Preemptive adalah ketat.