1. Deskripsi Penjadwalan Proses
Penjadwalan merupakan kumpulan
kebijaksaanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan
kerja yang dilakukan sistem komputer.
Penjadwalan bertugas memutuskan hal-hal berikut:
-
Proses yang harus berjalan
-
Kapan dan selama berapa lama proses berjalan
Sasaran utama penjadwalan proses adalah optimasi kinerja
sistem computer menurut kriteria tertentu.
Kriteria untuk mengukur dan optimasi kinerja penjadwalan:
A. Adil (Fairness)
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.
Sasaran penjadwalan seharusnya menjamin setiap proses
mendapat pelayanan dari pemroses secara adil.
B. Efisiensi
Efisiensi atau utilisasi pemroses
yang dihitung dengan perbandingan (rasio) waktu sibuk pemroses dengan total
waktu operasi system computer secara keseluruhan.
Sasaran penjadwalan adalah menjaga
agar pemroses tetap dalam keadaan sibuk sehingga efisiensi system computer
mencapai nilai maksimum. Keadaan sibuk berarti pemroses tidak menganggur.
Layanan pemroses termasuk waktu yang dihabiskan untuk mengeksekusi program
pemakai dan layanan system operasi secara efektif, bukan melakukan penjadwalan
itu sendiri.
C. Waktu Tanggap (Response Time)
Waktu tanggap berbeda untuk:
-
System interaktif
-
System waktu nyata
Waktu tanggap pada
system interaktif
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 untuk
system 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.
D. 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:
o
Turn Arround time = waktu eksekusi + waktu
menunggu
Sasaran penjadwalan adalah menimbulkan turn arround time
E. 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.
2. Strategi Penjadwalan
Terdapat dua stategi penjadwalan, yaitu:
A. 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:
1.
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
-
Dalam kriteria efisiensi, penjadwalan FIFO
sangat efisien dalam penggunaan proses.
-
Algoritmanya cukup sederhana
Kelemahan FIFO
-
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.
-
Penjadwalan sangat tidak memuaskan karena proses
menunggu lama, aktu tanggapnya sangat jelek. Tidak cocok untuk sistem
interaktif.
-
Turn around time tidak bagus.
-
Throughtput tidak bagus.
-
Tidak dapat digunakan untuk sistem waktu nyata
(real-time applications).
2.
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.
Contoh SJF:
Terdapat empat proses A,B,C,D dengan waktu jalan selama 8,7,6,5
kwanta
Cara I Proses-proses dijadwalkan berurutan sebagai A, B, C,
D
Cara II Proses-proses yang dijadwalkan secara SJF yaitu
berurutan D, C, B, A
Kedua cara menghasilkan turn
arround time yang ditunjukkan pada gambar diatas. Cara I turn arround time
rata-rata adalah 17,5 kwanta sedangakan dengan cara II (SJF) adalah 15 kwanta.
B. 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 :
1.
Pada
sistem realtime, kehilangan interupsi (yaitu interupsi tidak segera dilayani)
dapat berakibat fatal.
2.
Pada
system-sistem interaktif timesharing, penjadwalan preemptive agar dapat
menjamin waktu tanggap yang memadai.
3.
Penjadwalan secara preemptive baik tetapi harus
dibayar mahal.
Algoritma yang menerapkan strategi preemptive diantaranya
adalah:
1.
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:
-
Waktu tanggap tidak memadai untuk sistem
interatif waktu maya atau hard-real-time applications
Kelebihan RR:
-
Adil bila dipandang dari persamaan pelayanan
oleh pemroses.
-
Cenderung efisien pada sistem interaktif.
-
Waktu tanggap memuaskan untuk sistem interaktif
-
Turn around time cukup baik.
-
Throughtput cukup baik.
2.
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 :
-
Mudah diimplementasikan.
-
Mempunyai overhead relatif kecil.
Kelemahan PS Statis :
- 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 :
-
Implementasi
mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar.
Overhead in diimbangi dengan peningkatan daya tanggap sistem.
Kelebihan PS Dinamis :
-
Tanggap terhadap perubahan lingkungan yang
mungkin menghendaki
-
Memiliki penyesuaian terhadap prioritas.
3.
MFQ (Multiple Feddback Queues)
Penjadwalan ini merupakan :
- Penjadwalan preempyive (by-time)
- Penjadwalan berprioritas dinamis
Penjadwalan ini untuk mencegah
banyaknya swapping dengan proses proses yang sangat banyak menggunakan
pemrosesan (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu
(jumlah kwanta) lebih banyak dalam satu waktu.
Penjadwalan ini menghendaki
kelas-kelas prioritas bagi proses proses yang ada. Kelas tertinggi, berjalan
selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas
berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan yang berlaku adalah
sebagai berikut :
- Jalankan proses pada kelas tertinggi
- Jika proses menggunakan seluruh kwanta yang
dialokasikan maka diturunkan kelas prioritasnya.
- Proses yang masuk untuk pertama kali ke system langsung
diberi kelas tertinggi.
Mekanisme ini dapat mencegah proses
yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses
interaktif yang singkat harus menunggu lama.
Penggunaan system dengan banyak
proses lambat, memerlukan waktu dan juga terdapat banyak proses singkat.
Sumber:
https://dian75.wordpress.com/2010/08/04/penjadwalan-proses/
Tidak ada komentar:
Posting Komentar