Pendahuluan
Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan adalah fungsi dasar dari sistem operasi. Semua resources pada komputer dijadwalkan sebelum digunakan. Penjadwalan bertugas untuk memutuskan proses yang harus berjalan serta kapan dan selama berapa lama proses itu berjalan.
Penjadwalan CPU adalah pemilihan proses dari ready queue untuk dapat dieksekusi. Proses yang belum mendapatkan jatah alokasi dari CPU akan mengantri di ready queue. Oleh sebab itu algoritma penjadwalan diperlukan untuk
mengatur giliran proses-proses tersebut. Beberapa algoritma penjadwalan seperti: FCFS (First Come First Serve), SJF (Shortest Job First), Priority, dan Round Robin.
Shortest Job First ( SJF )
Kali ini akan dibahas mengenai algoritma penjadwalan Shortest Job First (SJF). SJF merupakan proses penjadwalan yang ada di ready queue dan akan dieksekusi berdasarkan burst time terkecil. Hal ini mengakibatkanwaiting time yang pendek untuk setiap proses. Karena hal tersebut, maka waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah algoritma yang optimal.SJF memiliki 2 sifat :
- non-preemptive (tidak dapat diinterupt), pemilihan proses adalah proses dalam antrian yang memiliki waktu eksekusi tercepat. CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil.
- preemptive (dapat diinterupsi), proses yang dipilih adalah proses yang memiliki waktu sisa eksekusi terkecil. Teknik ini juga dikenal dengan nama Shortest Remaining Time First.
Contoh Jika ada proses P1 yang datang pada saat P0 sedang berjalan lalu akan dilihat CPU burst P1 apabila :
- Preemptive, Jika CPU burst P1 lebih kecil dari sisa waktu yang dibutuhkan oleh P0 maka CPU ganti dialokasikan untuk P1.
- Non-Preemptive, Akan tetap menyelesaikan P0 sampai habis CPU burst-nya.
Preemptive Shortest Job First ( PSJF )
Preemptive Shortest Job First (PSJF) disebut juga sebagai Shortest Remaining Time First. PSJF merupakan penjadwalan dengan prioritas dan dengan preempsi. Prioritas didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses makin tinggi prioritasnya. Selanjutnya dengan ketentuan ini, ketika tiba, proses terpendek di bagian belakang antrian tidak saja berpindah ke bagian depan antrian, melainkan juga melalui preempsi, mengeluarkan proses yang pada saat itu berada di dalam proses (jika ada).Pada PSJF, jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di ready queue tersebut. Beberapa istilah yang akan sering muncul :
- Process : Urutan proses yang akan dilakukan
- Arrival Time : Waktu kedatangan dari proses yang akan dilakukan
- Average Turn Around Time : Rata-rata waktu total yg dibutuhkan sebuah proses dari datang sampai selesai dieksekusi oleh CPU
- Burst Time: Waktu yg dibutuhkan untuk mengeksekusi sebuah proses
- Average Waiting Time: Rata-rata waktu yang dihabiskan proses selama berada pada status ready ( menunggu eksekusi CPU )
Misalnya ada 2 buah proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms dan burst time 10 ms, P2 dengan arrival time pada 2.0 ms dan burst time 2 ms.
waiting time PSJF nya :
P1 = 0 + ( 4 ms – 2 ms ) = 2 ms
P2 = 0
Average waiting time : (2 ms + 0 ms ) / 2 = 2 ms
Average turn around : (12 ms + 0 ) / 2 = 12 ms
Tabel Solusi