Penjadwalan Proses
Penjadwalan proses adalah kumpulan
kebijaksaanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan
kerja yang dilakukan sistem komputer. Penjadwalan bertugas untuk memutuskan Proses yang harus berjalan, Kapan
dan selama berapa lama proses berjalan.
Sasaran utama penjadwalan proses adalah optimasi
kinerja sistem computer menurut kriteria tertentu.
Kriteria penjadwalan proses :
·
Adil (Fairness)
·
Efisiensi
·
Waktu tanggap
·
Waktu tanggap
dalam system interatif
·
Waktu tanggap
dalam waktu nyata
Adil
Adil adalah
proses-proses diperlakukan sama yaitu mendapat jatah waktu layanan pemroses
yang sama dan tidak ada proses yang tidak kebagian layanan pemroses sehingga
mengalami startvation. Starvation adalah kondisi bahwa
proses tidak pernah berjalan karena tidak dijadwalkan untuk berjalan
Efisiensi
Efisiensi atau
utilisasi pemroses yang dihitung dengan perbandingan (rasio) waktu sibuk
pemroses dengan total waktu operasi system computer secara keseluruhan
Waktu
tanggap
Waktu tanggap di
bagi menjadi dua :
1. System interaktif
2. System waktu nyata
Waktu tanggap
dalam system interatif
Waktu tanggap dalam system
interaktif didefinisikan sebagai waktu yang dihabiskan dari saat karakter
terakhir dari perintah oleh program atau transaksi sampai hasil pertama muncul
di perangkat masukan keluaran seperti layar (terminal).
Waktu tanggap untuk system
interaktif biasa disebut terminal response time.
Waktu tanggap
dalam waktu nyata
Pada system waktu nyata (real-time), waktu tanggap didefinisikan sebagai waktu
dari saat kemunculan suatu kejadian (internal atau eksternal) sampai instruksi
pertama rutin layanan terhadap kejadian dieksekusi.
Waktu untuk system nyata biasa
disebut event response time. Sasaran penjadwalan adalah
meminimalkan waktu tanggap sehingga menghasilkan system yang reponsif.
·
Turn Arround Time
Turn Arround time adalah waktu yang dihabiskan dari
saat proses atau job mulai masuk ke system
sampai proses itu diselesaikan system. Waktu yang dimaksud adalah waktu yang
dihabiskan proses berada di system, diekspresikan sebagai penjumlahan waktu
eksekusi (waktu pelayanan proses/job) dan waktu menunggu dari proses itu,
yaitu:
Turn Arround time = waktu eksekusi + waktu menunggu
Sasaran penjadwalan adalah
menimbulkan turn arround time
·
Throughput
Throughput adalah jumlah kerja yang dapat
diselesaikan selama satu selang/unit waktu. Cara untuk mengekspresikan troughput adalah dengan jumlah proses/job pemakai
yang dapat dieksekusi dalam satu unit/interval waktu tertentu.
Sasaran penjadwalan adalah
memaksimalkan jumlah job/proses yang dilayani per satu interval waktu. Lebih
tinggi angka troughput maka lebih banyak
kerja yang dilakukan system.
Strategi
Penjadwalan
Terdapat dua stategi penjadwalan,
yaitu:
1.
Penjadwalan Nonpreemptive
Begitu proses diberi jatah layanan
pemroses maka pemroses tidak dapat diambil alih oleh proses lain sampai proses
itu selesai. Nonpreemptive juga disebut run-to-completion karena proses yang
telah dijadwalkan akan dijalankan sampai selesainya atau proses tersebut
meminta layanan masukan/keluaran.
Contoh algoritma-algoritma yang
menerapkan strategi nonpreemptive di antaranya:
FIFO
(First-in, First-out) atau FCFS (First-come, First-serve)
Penjadwalan FIFO ini merupakan
penjadwalan tidak berprioritas, dan penjadwalan dengan ketentuan-ketentuan
paling sederhana, yaitu:
·
Proses-proses
diberi jatah waktu pemroses diurutkan berdasarkan waktu kedatangan
proses-proses itu ke system.
·
Pada saat
proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penjadwalan ini dikatakan adil dalam
arti resmi (dalam semantic/arti antrian, yaitu proses yang pertama datang, akan
dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang
perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak
penting dapat membuat proses-proses penting menunggu.
FIFO jarang digunakan secara mandiri
tapi dikombinasikan dengan skema lain, misalnya: Keputusan berdasarkan
prioritas proses, sedangkan untuk proses-proses berprioritas sama diputuskan
berdasarkan FIFO.
Kelebihan FIFO :
1. Dalam kriteria efisiensi,
penjadwalan FIFO sangat efisien dalam penggunaan proses.
2. Algoritmanya cukup sederhana
Kelemahan FIFO :
1. Dalam kriteria adil, penjadwalan
FIFO adil dalam arti resmi (dalam semantic/arti antrian) yaitu proses yang
pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena
proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu.
Proses-proses tidak penting dapat membuat proses-proses penting menunggu.
2. Penjadwalan sangat tidak memuaskan
karena proses menunggu lama, aktu tanggapnya sangat jelek. Tidak cocok untuk
sistem interaktif.
3. Turn around time tidak bagus.
4. Throughtput tidak bagus.
5. Tidak dapat digunakan untuk sistem
waktu nyata (real-time applications).
SJF
(Shortest Job First)
Penjadwalan SJF ini merupakan
penjadwalan yang dapat dikatakan sebagai berprioritas. Di SJF, prioritas
diasosiasikan dengan masing-masing proses dan pemroses dialokasikan ke
proses dengan prioritas tertinggi. Proses-proses dengan prioritas yang sama
akan dijadwalkan secara FIFO.
Penjadwalan ini mengasumsikan waktu
jalan proses (sampai selesai) atau waktu lamanya proses diketahui sebelumnya.
Mekanisme penjadwalan SJF adalah lebih dulu menjadwalkan proses dengan waktu
jalan terpendek sampai selesai. Setelah proses itu selesai, maka proses dengan
waktu jalan terpendek berikutnya akan dijadwalkan, demikian seterusnya.
Keunggulan penjadwalan SJF ini
adalah mempunyai efisien tinggi dan turn around time rendah. Selain itu, SJF
selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk
proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu
perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah,
begitu seterusnya.
2.
Penjadwalan Preemptive
Saat proses diberi jatah waktu oleh
pemroses, maka pemroses dapat diambil alih proses lain yang mempunyai prioritas
lebih tinggi berdasarkan criteria system itu. Pada penjadwalan preemptive,
proses dapat disela oleh proses lain sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu. Proses yang disela
berubah menjadi state ready.
Penjadwalan preemptive berguna pada
sistem yaitu proses-proses yang perlu mendapat perhatian/tanggapan pemroses
secara cepat, misalnya :
a. Pada sistem realtime, kehilangan
interupsi (yaitu interupsi tidak segera dilayani) dapat berakibat fatal.
b. Pada system-sistem interaktif
timesharing, penjadwalan preemptive agar dapat menjamin waktu tanggap
yang memadai.
c. Penjadwalan secara
preemptive baik tetapi harus dibayar mahal.
Algoritma yang menerapkan strategi
nonpreemptive diantaranya adalah:
a)
Penjadwalan Round Robin (RR)
Round Robin (RR) merupakan :
·
Penjadwalan
yang paling tua, sederhana, adil,banyak digunakan algoritmanya dan mudah
diimplementasikan.
·
Penjadwalan
ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama
waktu berjalannya proses (preempt by time).
·
Penjadwalan
tanpa prioritas.
·
Berasumsi
bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas
tertentu.
Semua proses dianggap penting
sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau
time slice dimana proses itu berjalan. Jika proses masih running sampai akhir
quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain.
Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.
Algoritma yang digunakan :
1)
Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan
pemroses dialihkan ke proses lain.
2)
Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi
I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3)
Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan
pemroses dialihkan ke proses lain.
Diimplementasikan dengan :
·
Mengelola
senarai proses ready (runnable) sesuai urutan kedatangan.
·
Ambil proses
yang berada di ujung depan antrian menjadi running.
·
Bila kwanta
belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses
ready.
·
Jika kwanta
habis dan proses belum selesai, maka tempatkan proses running ke ekor antrian
proses ready dan ambil proses di ujung depan antrian proses ready.
Masalah yang timbul adalah
menentukan besar kwanta, yaitu :
·
Kwanta
terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
·
Kwanta
terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga menurunkan
efisiensi proses.
Switching dari satu proses ke proses
lain membutuhkan kepastian waktu yang digunakan untuk administrasi, menyimpan,
memanggil nilai-nilai register, pemetaan memori, memperbaiki tabel proses dan
senarai dan sebagainya. Mungkin proses switch ini atau konteks switch
membutuhkan waktu 5 msec disamping waktu pemroses yang dibutuhkan untuk
menjalankan proses tertentu.
Dengan permasalahan tersebut
tentunya harus ditetapkan kwanta waktu yang optimal berdasarkan kebutuhan sistem
dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung
beban sistem. Apabila nilai quantum terlalu singkat akan menyebabkan terlalu
banyak switch antar proses dan efisiensi CPU akan buruk, sebaliknya bila nilai
quantum terlalu lama akan menyebabkan respon CPU akan lambat sehingga proses
yang singkat akan menunggu lama. Sebuah quantum sebesar 100 msec merupakan
nilai yang dapat diterima.
Penjadwalan ini baik untuk sistem
interactive-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian
eksternal. Contoh : text editor, kebanyakan waktu program adalah untuk menunggu
keyboard, sehingga dapat dijalankan proses-proses lain.
Kelemahan RR:
1. Waktu tanggap tidak memadai untuk
sistem interatif waktu maya atau hard-real-time applications
Kelebihan RR:
1. Adil bila dipandang dari persamaan
pelayanan oleh pemroses.
2. Cenderung efisien pada sistem
interaktif.
3. Waktu tanggap memuaskan untuk sistem
interaktif
4. Turn around time cukup baik.
5. Throughtput cukup baik.
b)
Priority Schedulling (PS)
PS Adalah tiap proses diberi
prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih
dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas
tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi
yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana
proses dari jendral berprioritas 100, proses dari kolonel 90, mayor
berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya.
Contoh penjadwalan berprioritas :
Proses-proses yang sangat banyak
operasi masukan/keluaran dan menghabiskan kebanyakan waktu proses untuk
menunggu selesainya operasi masukan/keluaran. Proses demikian disebut I/O bound process.
Proses-proses ini dapat diberi prioritas sangat tinggi sehingga begitu proses
memerlukan pemroses segera diberikan dan proses akan segera memulai permintaan
masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi
masukan/keluaran. Dengan demikian pemroses dapat segera dialihkan, dapat
dipergunakan proses-proses lain tanpa mengganggu proses I/O bound.
Proses-proses I/O berjalan paralel bersama proses-proses lain yang
benar-benar memerlukan pemroses.
Dalam algoritma berprioritas dinamis
dituntun oleh keputusan untuk memenuhi
kebijaksanaan tertentu yang menjadi
tujuan system komputer. Algoritma sederhana layanan yang bagus adalah menge-set
proses dengan prioritas berdasarkan rumus nilai 1/f, dimana f adalah ration
kwanta terakhir yang digunakan
proses.
Pemberian prioritas diberikan secara
:
1) Static (Static Priority)
Static priorities berarti prioritas
tidak berubah.
Kelebihan PS Statis :
1. Mudah diimplementasikan.
2. Mempunyai overhead relatif kecil.
Kelemahan PS Statis :
1. Tidak tanggap terhadap perubahan
lingkungan yang mungkin menghendaki penyesuaian prioritas.
2) Dinamis (dynamic priorities)
Merupakan mekanisme untuk menanggapi
perubahan lingkungan system beroperasi. Prioritas awal yang diberikan ke proses
mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat
sesuai lingkungan.
Kelemahan PS Dinamis :
1. Implementasi mekanisme prioritas
dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead in
diimbangi dengan peningkatan daya tanggap sistem.
Kelebihan PS Dinamis :
1. Tanggap terhadap perubahan
lingkungan yang mungkin menghendaki
2. Memiliki penyesuaian terhadap
prioritas
Komentar
Posting Komentar