Jenis Algoritma Penjadwalan CPU

CPU scheduling bergantung pada penempatan proses-proses yang ada pada daftar antrian yang sudah siap (ready queue) yang akan dilokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU, yaitu :
1. First Come First Served (FCFS)
2. Shortest Job First Scheduler (SJF)
3. Priority scheduling
4. Round Robin

Terdapat dua skema :
1. Non preemptive, apabila CPU diberikan pada proses, maka proses tersebut tidak bisa ditunda hingga CPU burst selesai.
2. Preemptive yaitu apabila proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang pada saat proses tersebut sedang dieksekusi, maka proses baru datang dengan panjang cpu burst lebih pendek ini didahulukan. Skema ini disebut dengan Shortest-Remaining-Time-First (SRTF).

First Come First Served (FCFS)
Pada skema penjadwalan first come first serve ini, proses yang meminta jatah waktu CPU pertama kali akan dialokasikan ke CPU pertama kali dan akan dilayani pertama kali pula. Algoritma FCFS termasuk non-preemptive. Disebut sebagai non preemptive karen , pada saat CPU dialokasikan pada suatu proses, maka proses tersebut tetap akan terus memakai CPU hingga habis sampai proses tersebut melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O. Fcfs merupakan penjadwalan tidak berprioritas.

Contoh : lihat video tutorial FCFS

Shortest Job First Scheduler (SJF) Non Preemptive
SJF non preemptive mirip dengan FCFS, akan tetapi jika AT-nya sama, maka dipilih proses yang BT-nya lebih pendek untukdiproses dulu, atau dengan kata lain, penjadwalan itu lebih dulu menjalankan proses dengan waktu jalan terpendek sampai selesai. Pada saat proses selesai, proses dengan waktu jalan terpendek berikutnya akan dijadwalkan, dan akan berterusan seperti itu.

Contoh : lihat video tutorial SJF Non Preemtive

SJF-Preemptive
Jika suatu proses sedang dikerjakan kemudian ada proses lain yang datang dimana BT-nya lebih kecil dari sisa waktu proses yang sedang dijalankan itu, maka proses lain ini akan dikerjakan dulu,sementara sisa proses tadi dikembalikan ke ready queue (RQ).

Contoh :lihat video SJF Preemtive

Priorities Preemptive
Berikut adalah contoh penjadwalan prioritas preemptive. Berdasarkan prioritas size yang lebih besar. Terdapat empat buah proses yang memiliki waktu kedatangan dan burst time yang berbeda dalam setiap proses. Antrian akan didahulukan jika ukuran / size yang masuk dalam daftar antrian lebih besar. Jika dalam antrian terdapat size/ukuran yang sama, maka proses yang lebih dahulu mengantri akan dieksekusi terlebih dahulu.

Contoh : lihat video priorities preemtive

Priorities Non Preemptive
Penjadwalan priority dengan skema non preemptive,berdasarkan dengan kapasistas size yang lebih besar. Terdapat empat buah proses yang memiliki arrival time dan burst time yang berbeda masing–masing proses. Dengan kapasitas size yang telah ditentukan.

Berikut ini adalah contoh video implementasi dengan menggunakan algoritma tersebut.

RR-FCFS
Round Robin First Come First Serve merupakan metode algoritma penjadwalan yang pertama sampai pada ready queue akan dilayani pertama kali, dan jika quantum untuk proses tersebut dihabiskan lebih dahulu, maka proses tersebut harus keluar dan masuk kembali ke antrian ready queue kalau masih ada sisa (listmasuk belakang).

RR-SJF Non Preemptive
Round robin shortest job first non preemptive merupakan penjadwalan dengan pemberian jatah waktu sebesar Q kepada setiap proses, tetapi pada saat AT sama, yang dipilih berikutnya untuk proses adalah yang BT-nya kecil.

RR- SJF Preemptive
Defenisi dari RR-SJF Preemtive merupakan pemberian jatah waktu sebesar Q (quantum) pada setiap proses dengan persyaratan bahwa: jika Pa sedang running, datang Pb dengan BT yang lebih kecil. Pa langsung berhenti dan masuk ke RQ, Pj dijalankan sampai selesai atau sampai quantumnya habis dan kalau saat Pj running, datang lagi Pk dengan BT yang lebih kecil, Pj langsung berhenti dan masuk ke ready queue. Pk dijalankan sampai selesai atau sampai quantumnya habis dan demikian seterusnya.

Leave a Reply

Your email address will not be published. Required fields are marked *