Penjadwalan Proses
1. Deskripsi Penjadwalan
Penjadwalan proses adalah
kumpulan kebijaksanaan dan mekanisme pada sistem operasi, yang berkenaan dengan
urutan kerja yang dilakukan oleh sistem komputer. Penjadwalan bertugas
memutuskan proses mana yang harus berjalan, kapan dan seberapa lama proses itu
berjalan. Sasaran utama penjadwalan proses adalah optimasi kinerja menurut kriteria-kriteria
yang diajukan.
Bagian dari sistem operasi yang
berfungsi mengatur proses mana yang running pada setiap saat disebut Scheduler (Penjadwal). Algoritma yang
digunakan scheduler disebut Scheduling
Algorithm (algoritma penjadwalan).
2. Kriteria Penjadwalan
Kriteria ini perlu diperhatikan
dalam penjadwalan proses, karena dapat digunakan untuk mengukur dan optimasi
kinerja penjadwalan, dan untuk mendapatkan algoritma penjadwalan yang baik.
Kriteria-kriteria yang perlu
diperhatikan, adalah adil(fairness), efisiensi(eficiency), waktu
tanggap(response time), waktu eksekusi(turn arround time), dan throughput.
1.
Adil (Fairness)
a.
Setiap proses mendapat giliran yang sama dan
adil.
b.
Proses diperlakukan samam adalah proses yang
mendapat jatah waktu pemroses yang sama, dan tidak ada proses yang tidak
kebagian layanan pemroses sehingga mengalami Starvation.
c.
Sasaran penjadwalan adalah menjamin tiap proses
mendapat bagian dari pemroses yang adil.
2.
Efisiensi (Eficiency)
a.
Penggunaan waktu CPU/Pemroses (CPU Time)
seoptimal mungkin.
b.
Efisiensi pemroses dihitung dengan berapa
perbandingan (rasio) waktu sibuk pemroses.
c.
Sasaran penjadwalan adalah menjaga pemroses agar
tetap dalam keadaan sibuk, sehingga efisiensi maksimum.
3.
Waktu Tanggap (Response Time)
a.
Waktu tanggap adalah waktu yang digunakan untuk
pemakai secara interaktif.
b.
Waktu yang dihabiskan dari saat karakter
terakhir dari perintah dimasukkan program atau transaksi sampai hasil pertama
muncul di layar (terminal).
c.
Sasaran penjadwalan adalah meminimalkan waktu
tanggap.
4.
Waktu Eksekusi Total (Turn Arround Time)
a.
Fungsi Turn Arround Time adalah meminimalkan
waktu tunggu dari mulai proses datang sampai proses tersebut selesai running.
b.
Turn Arround Time adalah waktu yang dihabiskan
dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan
sistem. Rumusnya adalah Turn Arround Time = waktu eksekusi + waktu tunggu.
c.
Sasaran penjadwalan adalah meminimalkan Turn
Arround Time.
5.
Thorughput
a.
Throughput adalah jumlah kerja/job yang dapat
diselesaikan dalam waktu satu unit waktu.
b.
Cara untuk mengekspresikan throughput, adalah
dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit waktu. Lebih
tinggi angka throughput, lebih banyak kerja yang dilakukan sistem.
c.
Sasaran penjadwalan adalah memaksimalkan jumlah
job yang diproses per satu unit/internal waktu.
3. Tipe Penjadwalan
Ada tiga tipe penjadwalan yang
dapat berada secara bersama-sama pada sistem operasi yang kompleks, yaitu:
Penjadwalan jangka pendek(short-term scheduler), Penjadwalan jangka
menengah(medium-term scheduler), dan Penjadwalan jangka panjang(long-term
scheduler).
1.
Penjadwalan Jangka Pendek
Penjadwalan ini bertugas menjadwalkan alokasi pemroses di antara
proses-proses ready yang terdapat di memori utama. Penjadwal ini dijalankan
setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus
dijalankan.
2.
Penjadwalan Jangka Menengah
Penjadwal ini bertugas menangani proses-proses swapping. Swapping adalah
aktivitas pemindahan proses-proses yang tertunda dari memori utaman ke memori
sekunder. Penjadwal ini mengendalikan transisi dari suspended to ready (dari
keadaan suspend ke ready) proses-proses swapping.
3.
Penjadwalan Jangka Panjang
Penjadwal
ini bekerja terhadap antrian Batch, dan memilih barch berikutnya yang harus
dieksekusi. Sasaran utama penjadwal jangka panjang adalah memberi keseimbangan
job-job agar tetap sibuk.
4. Strategi Penjadwalan
Terdapat dua strategi
penjadwalan, yaitu Penjadwalan Non-Preempative (Run-to Completion), dan
Penjadwalan Preemptive.
1.
Penjadwalan Non-Preempative(Run-to Completion)
Penjadwalan dimana proses diberi
jatah waktu pemroses, maka pemroses tidak dapat diambil oleh proses lain sampai
proses itu selesai.
2.
Penjadwalan Preemptive.
Penjadwalan
dimana proses diberi jatah waktu pemroses, maka pemroses dapat diambil alih
proses lain, sehingga proses disela-sela sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu.
5. Algoritma Penjadwalan
1.
Strategi Non-Preemptive
a.
FIFO (First In First Out) atau FCFS (First Come
First Serve)
b.
SJF (Shortest Job First)
2.
HRN (Highest Ratio Next)
3.
MFQ (Multiple Feedback Queues)
4.
Strategi Preemptive:
a.
RR (Round-Robin)
b.
SRF (Shortest Remaining First)
c.
PS (Priority Schedulling)
d.
GS (Guaranted Schedulling)
A.
FIFO (First In First Out) atau FCFS (First Come
First Serve)
Penjadwalan dimana proses-proses diberi jatah waktu pemroses berdasarkan
waktu kedatangannya. Begitu proses menjadi jatahan waktu pemroses, proses
dijalankan sampai selesai. Algoritma ini sangat sederhana, adil dan tidak
berguna untuk sistem interaktif, karena tidak memberi waktu tanggap yang bagus.
B.
SJF (Shortes Job First)
Penjadwalan ini disebut penjadwalan dengan waktu terpendek yang duluan.
Penjadwalan ini mengasumsikan waktu jalan proses (sampai selesai) diketahui
sebelumnya. Mekanismenya adalah menjadwalkan lebih dahulu proses dengan waktu
jalan terpendek sampai selesai. Penjadwalan ini mempunyai efisien tinggi dan
Turn Arround Time Rendah.
C.
PS (Priority Schedulling)
Ide penjadwalan ini adalah tiap proses diberi prioritas, dan proses
berprioritas tertinggi running (mendapat jatah waktu pemroses). Dengan
mekanisme ini, proses-proses dapat bersaing untuk mendapatkan jatah waktu
pemroses.
D.
R-R (Round-Robin)
Penjadwalan ini adalah penjadwalan murni preemptive. Mekanismenya adalah
semua proses dianggap penting dan diberi sejumlah waktu pemroses yang disebut
kwanta (quantum) atau time slice dimana proses itu berjalan.
Ketentuan Algoritma Round-Robin adalah:
-
Jika kwanta habis dan belum selesai, maka
pemroses dialihkan ke proses lain.
-
Jika kwanta belum habis, tapi proses telah
selesai maka pemroses dialihkan ke proses lain.
E.
SRF (Shortes Remaining First)
Penjadwalan ini disebut juga penjadwalan dengan sisa waktu terpendek duluan, dan merupakan perlengkapan dan pengembangan algoritma SJF. Algoritma SJF adalah penjadwalan Non-Preemptive, sedangkan algoritma SRF adalah Preemptive yang berguna untuk time sharing. Pada SRF proses dengan sisa waktu jalan yang diestimasikan terendah dijalankan, termasuk proses yang baru tiba. Proses yang sedang running dapat diambil alih proses baru dengan sisa waktu jalan yang diestimasikan lebih rendah.
Penjadwalan ini disebut juga penjadwalan dengan sisa waktu terpendek duluan, dan merupakan perlengkapan dan pengembangan algoritma SJF. Algoritma SJF adalah penjadwalan Non-Preemptive, sedangkan algoritma SRF adalah Preemptive yang berguna untuk time sharing. Pada SRF proses dengan sisa waktu jalan yang diestimasikan terendah dijalankan, termasuk proses yang baru tiba. Proses yang sedang running dapat diambil alih proses baru dengan sisa waktu jalan yang diestimasikan lebih rendah.
6. Implementasi Algoritma Penjadwalan
Klasifikasi algoritma penjadwalan
selain berdasarkan strategi preemptive/non-preemptive, juga berdasarkan adanya
prioritas di proses-proses, yaitu:
1.
Algoritma penjadwalan tanpa berprioritas
2.
Algoritma penjadwalan berprioritas, yang terdiri
dari: algoritma penjadwalan berprioritas statik dan algoritma penjadwalan
berprioritas dinamik.
0 Comments