Minggu, 16 Mei 2021

PENJADWALAN PREEMPTIVE DAN NONPREEMPTIVE

Definisi Penjadwalan Preemptive

Penjadwalan preemptive adalah salah satu yang dapat dilakukan dalam keadaan ketika suatu proses beralih dari menjalankan status ke status siap atau dari status menunggu ke status siap . Di sini, sumber daya (siklus CPU) dialokasikan ke proses untuk jumlah waktu terbatas dan kemudian dihapus, dan proses tersebut ditempatkan kembali dalam antrian siap lagi jika masih ada sisa waktu burst CPU. Proses tetap dalam antrian siap sampai mendapat kesempatan berikutnya untuk dieksekusi.

Jika proses dengan prioritas tinggi tiba di antrian siap, ia tidak harus menunggu proses saat ini untuk menyelesaikan waktu burst-nya. Sebagai gantinya, proses saat ini terputus di tengah pelaksanaan dan ditempatkan dalam antrian siap sampai proses dengan prioritas tinggi memanfaatkan siklus CPU. Dengan cara ini, setiap proses dalam antrian siap mendapatkan waktu untuk menjalankan CPU. Itu membuat penjadwalan preemptive fleksibel tetapi, meningkatkan overhead beralih proses dari menjalankan negara ke status siap dan ayat.

 

Definisi Penjadwalan Non-Preemptive

Penjadwalan First Come First Served (FCFS) dapat diambil sebagai contoh penjadwalan nonpreemptive. Proses yang meminta pertama dialokasikan ke CPU terlebih dahulu. Penjadwalan ini mudah dikelola oleh antrian First In First Out (FIFO). Jika ada proses datang dalam urutan sebagai P1, P2 dan P3, maka kesempatan pertama diberikan kepada P1. Setelah selesai, P2 akan mengeksekusi. Ketika P2 selesai, P3 akan dieksekusi.

 

Perbedaan Kunci antara Penjadwalan Preemptif dan Non-Preemptif

  1. Perbedaan mendasar antara penjadwalan preemptive dan non-preemptive adalah bahwa dalam penjadwalan preemptive CPU dialokasikan ke proses untuk waktu yang terbatas . Sementara dalam penjadwalan Non-preemptive, CPU dialokasikan untuk proses sampai ia berakhir atau beralih ke status menunggu .
  2. Proses eksekusi dalam penjadwalan preemptif terputus di tengah eksekusi sedangkan proses eksekusi dalam penjadwalan non-preemptif tidak terputus di tengah eksekusi.
  3. Penjadwalan Preemptive memiliki overhead untuk mengalihkan proses dari status siap ke status sedang, vis-ayat, dan mempertahankan antrian siap. Di sisi lain, penjadwalan non-preemptive tidak memiliki overhead untuk mengalihkan proses dari menjalankan status ke status siap.
  4. Dalam penjadwalan preemptive, jika suatu proses dengan prioritas tinggi sering tiba dalam antrian siap maka proses dengan prioritas rendah harus menunggu lama, dan mungkin harus kelaparan. Di sisi lain, dalam penjadwalan non-preemptive, jika CPU dialokasikan untuk proses dengan waktu burst lebih besar maka proses dengan waktu burst kecil mungkin harus kelaparan.
  5. Penjadwalan preemptive cukup fleksibel karena proses kritis diperbolehkan untuk mengakses CPU ketika mereka tiba di antrian siap, tidak peduli proses apa yang sedang dieksekusi saat ini. Penjadwalan non-preemptive adalah kaku karena bahkan jika proses kritis memasuki antrian siap proses yang menjalankan CPU tidak terganggu.
  6. Penjadwalan Preemptive adalah asosiatif biaya karena harus menjaga integritas data bersama yang tidak demikian halnya dengan Penjadwalan Non-preemptive.


Kesimpulan:

Bukannya penjadwalan preemptive lebih baik daripada penjadwalan non-preemptive atau vise-ayat. Semua tergantung pada bagaimana penjadwalan meminimalkan waktu tunggu rata-rata dari proses dan memaksimalkan pemanfaatan CPU.

 

Tidak ada komentar:

Posting Komentar