Penjadwalan Preemptive dan Nonpreemitive

 

1) Penjadwalan Preemptive

Pada saat proses sedang menggunakan CPU, CPU dapat diambil alih oleh proses lain.

Dalam hal ini harus selalu dilakukan perbaikan data. Proses ini adalah kebalikan dari proses Non-preemptive tadi yakni saat proses ini bekerja, maka proses dapat disela oleh proses lain sehingga prose ini akan kembali di proses setelah CPU menyelesaikan proses yang menyela tadi

 

Algoritma-algoritma Penjadwalan Preemptive

·         RR (Round-Robin)

·         MFQ (Multiple Feedback Queues)

·         SRF (Shortest Remaining First)

·         PS (Priority Scheduling) GS (Guaranteed Scheduling)

 

Contoh penjadwalan preemptive

Penjadwalan Round Robin adalah contoh penjadwalan preemptive. Setiap proses mendapatkan sejumlah kecil waktu CPU. Biasanya 10 hingga 100 milidetik. Unit data kecil ini juga dikenal sebagai kuantum waktu. Setelah waktu ini berlalu, proses didahului dan ditambahkan ke akhir antrian siap. Asumsikan bahwa ada 4 proses sebagai P1, P2, P3 dan P4. Waktu burst CPU dalam milidetik adalah sebagai berikut. Waktu kuantum adalah 20.

Proses P1 dijalankan hingga 20. Masih ada 33ms lagi. Kemudian P2 dijalankan. Karena kuantum waktu adalah 20 dan waktu yang dibutuhkan P2 adalah 17ms, P2 akan mengeksekusi untuk 17ms. Jadi, proses P2 selesai. Kemudian kesempatan diberikan kepada P3. Ini akan dieksekusi selama 20 ms. Sisanya 48ms. Kemudian P4 akan dieksekusi selama 20 ms. Ini memiliki 4ms untuk menyelesaikan proses total. Sekali lagi, P1 akan dieksekusi selama 20 ms. Ia memiliki 13ms lagi untuk menyelesaikan menyelesaikan proses. Perubahan diberikan ke P3. Ini akan dieksekusi selama 20 ms, dan ia memiliki 28 ms untuk diselesaikan sepenuhnya. P4 dijalankan. Ini hanya memiliki 4 ms. Oleh karena itu, P4 menyelesaikan eksekusi. P2 dan P4 sudah selesai. Proses yang tersisa adalah P1 dan P3. Kesempatan diberikan kepada P3. Selesai 13ms, jadi selesai. Sekarang satu-satunya proses yang tersisa adalah P3. Ini memiliki 28ms untuk diselesaikan. Jadi P3 akan berjalan selama 20 ms. Sisanya 8ms. Semua proses lainnya telah selesai dieksekusi. Oleh karena itu, sekali lagi sisa 8ms dari P3 akan dieksekusi. Demikian juga, setiap proses mendapat kesempatan untuk dieksekusi.


2) Penjadwalan Non Preemptive

Jika proses sedang menggunakan CPU, proses tersebut akan membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait). Dapat dikatakan bahwa Non-Preemptive ini merupakan proses yang hanya dapat melakukan proses sekali run saja kemudian diselesaikan sampai akhir proses tersebut tanpa ada proses yang menyela proses ini.

 

Algoritma-algoritma penjadwalan yang menerapkan strategi nonpreemptive diantarnya:

·         FIFO (First in, First Out) atau FCFS (First Come, First Serve)

·         SJF (Short Job First)

·         HRN (Highest Ration Next)

 

Contoh penjadwalan nonpreemptive

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. Asumsikan bahwa ada 3 proses sebagai P1, P2 dan P3 dengan waktu burst CPU dalam milidetik sebagai berikut.

Menurut hal di atas, P1 akan dieksekusi. Setelah selesai, proses P2 dieksekusi selama 3ms. Sekarang proses yang tersisa adalah P3. Maka itu akan mengeksekusi. Waktu tunggu untuk P1 adalah nol. Proses P2 harus menunggu 24 ms, dan proses P3 harus menunggu 27 ms. Jika proses tiba dalam urutan P2, P3 dan P1 maka P2 akan selesai terlebih dahulu. P3 berikutnya akan selesai, dan akhirnya, P1 akan selesai.

 

Perbedaan Antara penjadwalan Preemptive dan Nonpreemptive

 

Preemptive

Nonpreemptive

Gangguan proses

Dalam penjadwalan preemptive, proses dapat terganggu.

Dalam penjadwalan nonpreemptive, proses Tidak dapat terganggu.

Pemanfaatan CPU

Dalam penjadwalan preemptive, pemanfaatan CPU lebih tinggi daripada penjadwalan nonpreemptive.

Dalam penjadwalan nonpreemptive, utilisasi CPU minimal dibandingkan dengan penjadwalan preemptive.

Fleksibilitas

Penjadwalan preemptive fleksibel.

Penjadwalan nonpreemptive tidak fleksibel.

 

 

Ringkasan - Preemptive vs Nonpreemptive

Ada beberapa proses yang berjalan di komputer. Ketika setiap proses dijalankan, CPU dialokasikan untuk proses tertentu. Kadang-kadang, perlu untuk menghentikan pelaksanaan proses saat ini dan untuk memberikan prioritas pada proses lain. Mekanisme penjadwalan proses dapat bersifat preemptive atau nonpreemptive. Penjadwalan preemptive adalah mekanisme penjadwalan proses di mana proses dapat terganggu oleh proses lain di tengah pelaksanaannya. Penjadwalan nonpreemptive adalah mekanisme penjadwalan proses meskipun yang satu proses memulai eksekusi hanya setelah proses sebelumnya berakhir. Ini adalah perbedaan antara Penjadwalan Preemptive dan Nonpreemptive di OS.

 

Link youtube :

https://youtu.be/KzBri8cYXjE


Sumber :

Perbedaan Antara Penjadwalan Preemptive dan Nonpreemptive di OS (Teknologi) | Perbedaan antara objek dan istilah yang serupa. (sawakinome.com)

Perbedaan Preemptive dan Non-Preemptive pada Strategi Penjadwalan - Belajar Sistem Operasi (google.com)

Algoritma Penjadwalan CPU Preemptive Beserta Contoh - Modul Makalah

Algoritma Penjadwalan Non Preemptive Beserta Contoh - Modul Makalah



Komentar

Postingan populer dari blog ini

PLATFORM AS A SERVICE (PAAS)

Random Access Memory