Disyorkan, 2024

Pilihan Editor

Perbezaan Antara Penjadualan Pencegahan dan Tanpa Preemptif dalam OS

Ia adalah tanggungjawab penjadual CPU untuk memperuntukkan proses ke CPU apabila CPU berada dalam keadaan terbiar. Penjadual CPU memilih proses dari barisan siap dan memperuntukkan proses ke CPU. Penjadualan yang berlaku ketika proses beralih dari keadaan berjalan ke keadaan siap atau dari keadaan menunggu ke keadaan siap dipanggil Penjadualan Preemptive . Di tangan, penjadualan yang berlaku apabila proses menamatkan atau beralih dari berlari ke menunggu keadaan penjadualan CPU jenis ini dipanggil Penjadualan Tanpa Preemptif . Perbezaan asas antara penjadualan terdahulu dan bukan preemptif terletak pada nama mereka sendiri. Itulah penjadwalan Preemptive boleh menjadi preempted; proses boleh dijadualkan. Dalam penjadualan yang tidak mendahului, proses tidak boleh dijadualkan.

Marilah kita membincangkan perbezaan di antara penjadualan Preemptive dan Non-Preemptive secara ringkas dengan bantuan carta perbandingan yang ditunjukkan di bawah.

Carta Perbandingan

Asas untuk PerbandinganPenjadualan PencegahanPenjadualan Tanpa Preemptive
AsasSumber-sumber yang diperuntukkan kepada proses untuk masa yang terhad.Sebaik sahaja sumber dana diperuntukkan kepada proses, proses itu memegang sehingga ia menyelesaikan masa pecah atau beralih ke keadaan menunggu.
GangguProses boleh terganggu di antara.Proses tidak boleh terganggu sehingga ia tamat atau bertukar ke keadaan menunggu.
KelaparanSekiranya proses keutamaan yang tinggi sering muncul dalam barisan sedia, proses keutamaan rendah mungkin menjadi kelaparan.Sekiranya proses dengan masa pecutan yang panjang berjalan dengan CPU, maka proses lain dengan masa pecutan CPU yang kurang mungkin menjadi kelaparan.
OverheadPenjadualan preemptive mempunyai overhed penjadwalan proses.Penjadualan bukan preemptif tidak mempunyai overheds.
FleksibilitiPenjadualan pencegahan adalah fleksibel.Penjadualan bukan preemptive adalah tegar.
KosPenjadualan pencegahan ialah kos yang berkaitan.Penjadualan bukan preemptive bukan bersekutu kos.

Takrif Penjadualan Pencegahan

Penjadualan pencegahan adalah salah satu yang boleh dilakukan dalam keadaan apabila suatu proses beralih dari keadaan berjalan ke keadaan siap atau dari keadaan menunggu ke keadaan siap . Di sini, sumber-sumber (kitaran CPU) diperuntukkan kepada proses untuk masa yang terhad dan kemudiannya diambil, dan proses itu diletakkan semula dalam barisan siap lagi jika masih ada waktu pecah CPU. Proses ini tetap dalam barisan siap sehingga ia mendapat peluang seterusnya untuk dilaksanakan.

Sekiranya proses yang mempunyai keutamaan tinggi tiba dalam barisan sedia, ia tidak perlu menunggu proses semasa untuk melengkapkan masa pecahnya. Sebaliknya, proses semasa terganggu di tengah-tengah pelaksanaan dan diletakkan dalam barisan siap sehingga proses dengan keutamaan tinggi menggunakan siklus CPU. Dengan cara ini, setiap proses dalam barisan siap mendapat sedikit masa untuk menjalankan CPU. Ia menjadikan penjadualan preemptif fleksibel tetapi, meningkatkan overhead menukar proses dari menjalankan negeri ke keadaan sedia dan vise-ayat.

Algoritma yang berfungsi pada penjadualan terdahulu ialah Round Robin. Penjadwalan Pekerjaan Pertama (SJF) dan Penjadualan Keutamaan yang paling singkat mungkin atau tidak mungkin di bawah penjadualan terdahulu.

Marilah kita mengambil contoh Penjadualan Nyahtentuan, lihat gambar di bawah. Kami mempunyai empat proses P0, P1, P2, P3. Dari mana, P2 tiba pada masa 0. Jadi CPU diperuntukkan untuk proses P2 kerana tidak ada proses lain dalam barisan. Sementara itu, P2 sedang melaksanakan, P3 tiba pada masa 1, kini masa yang tinggal untuk proses P2 (5 milisaat) yang lebih besar dari masa yang diperlukan oleh P3 (4 milli-sec). Oleh itu CPU diperuntukkan kepada pemproses P3.

Sementara itu, P3 sedang melaksanakan, proses P1 tiba pada masa 2. Sekarang masa yang tinggal untuk P3 (3 milisaat) kurang daripada masa yang diperlukan oleh proses P1 (4 milisaat) dan P2 (5 milisaat). Jadi P3 dibenarkan untuk meneruskan. Sedangkan P3 adalah proses berterusan P0 tiba pada masa 3, kini masa yang tinggal untuk P3 (2 milidetik) adalah sama dengan masa yang diperlukan oleh P0 (2 milisaat). Jadi P3 berterusan dan selepas P3 menamatkan CPU diperuntukkan kepada P0 kerana ia mempunyai masa pecah lebih kecil daripada yang lain. Selepas P0 menamatkan, CPU diperuntukkan kepada P1 dan kemudian kepada P2.

Takrif Penjadualan Tidak Tercukai

Penjadualan bukan preemptif adalah salah satu yang boleh digunakan dalam keadaan apabila suatu proses menamatkan, atau proses beralih daripada berjalan ke keadaan menunggu . Dalam Penjadualan Tanpa Pengecualian, sekali sumber (CPU) diperuntukkan ke proses, proses memegang CPU sehingga ditamatkan atau mencapai keadaan menunggu.

Tidak seperti penjadualan terdahulu, penjadualan tidak preemptif tidak mengganggu proses yang menjalankan CPU di tengah-tengah pelaksanaan. Sebaliknya, ia menunggu proses untuk melengkapkan masa pecutan CPUnya dan kemudian dapat memperuntukkan CPU ke proses lain.

Dalam penjadualan Tanpa Preemptive, jika proses dengan waktu pecah CPU yang panjang sedang dijalankan maka proses lain akan perlu menunggu lama untuk meningkatkan waktu tunggu proses dalam barisan siap. Walau bagaimanapun, penjadualan bukan preemptive tidak mempunyai overhead untuk menukar proses dari barisan siap kepada CPU tetapi ia menjadikan penjadualannya tegar kerana proses dalam pelaksanaannya tidak mengecewakan untuk proses yang lebih tinggi.

Marilah kita selesaikan contoh penjadualan di atas dalam fesyen tanpa preemptive. Sebagai permulaan, proses P2 tiba pada masa 0, jadi CPU diperuntukkan kepada proses P2 yang mengambil masa 6 milisaat untuk dilaksanakan. Di antara semua proses iaitu P0, P1, P3 tiba di barisan siap. Tetapi semua menunggu sehingga proses P2 melengkapkan masa pecah CPUnya. Kemudian proses yang tiba selepas P2 iaitu P3 kemudiannya diperuntukkan CPU sehingga ia selesai waktu pecah. Begitu juga, kemudian P1 dilaksanakan, dan CPU kemudiannya diberikan untuk memproses P0.

Perbezaan Utama antara Penjadualan Pencegahan dan Tanpa Preemptif

  1. Perbezaan asas antara penjadualan preemptive dan non-preemptive ialah penjadualan terdahulu CPU diperuntukkan kepada proses untuk masa yang terhad . Semasa dalam penjadualan Tanpa Preemptive, CPU diperuntukkan kepada proses sehingga ia tamat atau bertukar ke keadaan menunggu .
  2. Proses pelaksanaan dalam penjadualan preemptive terganggu di tengah-tengah pelaksanaan sedangkan proses pelaksanaan dalam penjadualan bukan preemptive tidak terganggu di tengah pelaksanaan.
  3. Penjadualan Preemptive mempunyai overhead menukar proses dari keadaan bersedia untuk menjalankan keadaan, vise-verse, dan mengekalkan giliran siap. Di sisi lain, penjadualan tidak preemptif tidak mempunyai overhead untuk menukar proses dari keadaan berjalan ke keadaan siap.
  4. Dalam penjadualan terdahulu, jika proses yang mempunyai keutamaan tinggi sering tiba dalam barisan siap maka proses dengan keutamaan yang rendah perlu menunggu lama, dan ia mungkin perlu kelaparan. Di sisi lain, dalam penjadualan bukan preemptif, jika CPU diperuntukkan kepada proses dengan masa pecah yang lebih besar maka proses dengan masa pecah kecil mungkin akan menjadi kelaparan.
  5. Penjadualan preemptif cukup fleksibel kerana proses kritikal dibenarkan untuk mengakses CPU kerana mereka tiba di barisan siap, tidak kira apa prosesnya sedang dijalankan. Penjadualan bukan preemptif adalah tegar walaupun walaupun proses kritikal memasuki barisan siap, proses yang menjalankan CPU tidak terganggu.
  6. Penjadualan Pengutipan adalah bersekutu kos kerana ia harus mengekalkan integriti data yang dikongsi yang tidak berlaku dengan Penjadualan Tanpa Preemptif.

Kesimpulan:

Ia bukanlah penjadualan preemptif lebih baik daripada penjadualan tanpa preemptif atau ayat-ayat. Semua bergantung kepada bagaimana penjadualan meminimumkan masa menunggu purata proses dan memaksimumkan penggunaan CPU.

Top