Penjadwalan
Proses
Penjadwalan
berkaitan dengan permasalahan memutuskan proses mana yang akan dilaksanakan
dalam suatu sistem. Proses yang belum mendapat jatah dari alokasi CPU akan
mengantri di ready queue. Algoritma penjadwalan berfungsi untuk menentukan
proses mana yang ada di ready queue yang akan dieksekusi oleh CPU.
Berikut ini adalah kriteria untuk mengukur dan
meng-optimalisasi kinerja penjadwalan:
1. Adil
(fairness)
Adalah
proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang
sama sehingga tidak ada proses yang tidak kebagian layanan pemrosesan.
2. Efisiensi
(eficiency)
Efisiensi
atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk
pemroses.
3. Waktu
Tanggap (response time)
Merupakan
waktu yang diperlukan dari saat perintah dimasukkan sampai hasil pertama muncul
di layar.
4. Turn
Around Time
Waktu
yang dihabiskan dari saat program mulai masuk ke sistem sampai proses
diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan didalam
sistem.
5. Throughput
Adalah
jumlah kerja yang dapat diselesaikan dalam satu unit waktu.
Berikut ini adalah jenis-jenis algoritma
penjadwalan:
·
FCFS (First Come First Serve)
·
SJF (Shortest Job First)
·
Priority Scheduling
·
Round Robin
Pada sistem multiprogramming, selalu
akan terjadi beberapa proses berjalan
dalam
suatu waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena
hanya
ada satu proses yang berjalan pada saat tertentu.
Oleh
karena itu pada sistem multiprogramming memerlukan proses penjadwalan yang
berfungsi untuk mengatur dan menjadwalkan semua resource komputer sebelum
digunakan.
Terdapat
dua strategi penjadwalan yaitu :
1. Penjadwalan
Preemptive
Memiliki
ciri khas:
ü Pada
saat CPU sedang digunakan oleh proses, CPU dapat diambil oleh proses lain.
ü Dalam
strategi penjadwalan ini harus selalu dilakukan perbaikan data.
2. Penjadwalan
Non Preemptive
Memiliki
ciri khas:
ü Jika
proses sedang menggunakan CPU maka proses tersebut akan membawa CPU sampai
proses tersebut melepaskannya (berhenti dalam keadaan wait).
v Algoritma
Priority Scheduling
Priority
Scheduling merupakan algoritma penjadwalan yang mendahulukan
proses yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya
masing-masing.
Prioritas suatu proses dapat dtentukan
melalui beberapa karakteristik antara lain:
1. Waktu
2. Memori
yang dibutuhkan
3. Banyaknya
file yang terbuka
4. Perbandingan
antara rata-rata I/O Burst dengan rata-rata CPU Burst
Priority
Scheduling juga dapat dijalankan secara
preemptive maupun non-preemptive. Pada preemptive, jika ada suatu proses yang
baru datang memiliki prioritas yang lebih tinggi daripada proses yang
dijalankan, maka proses yang sedang berjalan tersebut dihentikan, lalu CPU
dialihkan untuk proses yang baru datang tersebut. Misalnya jika ada proses P1
yang datang pada saat P0 sedang berjalan maka akan dilihat prioritas P1, jika
prioritas P1>P0 maka P0 akan dihentikan dulu kemudian CPU akan dialokasikan
untuk menjalankan proses P1.
Kelemahan
dari priority scheduling adalah dapat terjadinya indefinite blocking
(starvation), yaitu suatu proses dengan prioritas yang rendah memiliki
kemungkinan untuk tidak dieksekusi jika terdapat proses lain yang memiliki
tingkat prioritas yang lebih tinggi darinya.
Solusi
dari permasalahan ini adalah aging, yaitu meningkatkan prioritas dari setiap
proses yang menunggu dalam queue secara bertahap.
Tidak ada komentar:
Posting Komentar