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.
Sumber :
Algoritma
Penjadwalan CPU Preemptive Beserta Contoh - Modul Makalah
Algoritma
Penjadwalan Non Preemptive Beserta Contoh - Modul Makalah
Komentar
Posting Komentar