Kamis, 13 Oktober 2011


Penjadwalan Proses


Apa itu penjadwalan proses ??? Kenapa komputer butuh penjadwalan ?? Sederhana saja, kita manusia seringkali membuat penjadwalan – penjadwalan dalam aktifitas hidup kita. Ada jadwal kuliah, jadwal mengajar, jadwal nonton film, jadwal manggung, jadwal bersih-bersih rumah, jadwal kencan, dll. Kenapa kita membuat jadwal ?? Tentunya agar setiap kegiatan yang kita rencanakan menjadi efektif dan efisien. Tidak begitu berbeda dengan komputer, dalam melakukan tugasnya, komputer memerlukan penjadwalan untuk mengeksekusi setiap proses yang dibebankan. Tujuannya untuk memeperoleh kinerja yang optimal,efektif, dan efisien.
Secara sederhana, cara kerja komputer dalam mengeksekusi sebuah program ditampilkan pada gambar berikut.
i/o_cpu_burst
Penjadwalan bertugas memutuskan :
a. Proses yang harus berjalan
b. Kapan dan selama berapa lama proses itu berjalan
Kriteria untuk mengukur dan optimasi kinerje penjadwalan :
a. Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu
pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses
sehingga mengalami kekurangan waktu.
b. Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu
sibuk pemroses.
c. Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
c.1 Sistem interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari
perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar.
Waktu tanggap ini disebut terminal response time.
c.2 Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai
instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event
response time.
d. Turn around time
Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem
sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang
dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi
(waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu
eksekusi + waktu menunggu.
e. Throughput
Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk
mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat
dieksekusi dalam satu unit/interval waktu.
Terdapat dua strategi penjadwalan, yaitu :
1. Penjadwalan nonpreemptive (run to completion)
Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil
alih oleh proses lain sampai proses itu selesai.
2. Penjadwalan preemptive
Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih
proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu. Berguna pada
sistem dimana proses-proses yang mendapat perhatian/tanggapan pemroses
secara cepat, misalnya :
a. Pada sistem realtime, kehilangan interupsi (tidak layani segera) dapat
berakibat fatal.
b. Pada sistem interaktif, agar dapat menjamin waktu tanggap yang memadai.
Penjadwalan secara preemptive baik tetapi harus dibayar mahal. Peralihan
proses memerlukan overhead (banyak tabel yang dikelola). Supaya efektif,
banyak proses harus berada di memori utama sehingga proses-proses
tersebut dapat segera running begitu diperlukan. Menyimpan banyak proses
tak running benar-benar di memori utama merupakan suatu overhead
tersendiri.
Algoritma-algoritma Penjadwalan
Berikut jenis-jenis algoritma berdasarkan penjadwalan :
1. Nonpreemptive, menggunakan konsep :
a. FIFO (First In First Out) atau FCFS (First Come First Serve)
b. SJF (Shortest Job First)
c. HRN (Highest Ratio Next)
d. MFQ (Multiple Feedback Queues)
2. Preemptive, menggunakan konsep :
a. RR (Round Robin)
b. SRF (Shortest Remaining First)
c. PS (Priority Schedulling)
d. GS (Guaranteed Schedulling)
Penjadwalan PreEmptive
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.
Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan
diletakkan diakhir daftar (list), seperti nampak dalam gambar berikut ini :
rr
Diagram Round Robin
Shortest Remaining First (SRF)
Merupakan :
þ Penjadwalan berprioritas.dinamis.
þ Adalah preemptive untuk timesharing
þ Melengkapi SJF
Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan,
termasuk proses-proses yang baru tiba.
- Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.
- Pada SRF, proses yang sedang berjalan (running) dapat diambil alih proses
baru dengan sisa waktu jalan yang diestimasi lebih rendah.
Kelemahan :
- Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu
layanan yang telah dihabiskan job dan kadang-kadang harus menangani
peralihan.
- Tibanya proses-proses kecil akan segera dijalankan.
- Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama
dibanding pada SJF.
SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead.
Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead
peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih baik dibanding
SRF.
Algoritma Nonpreemptive
First In First Out (FIFO)
Merupakan :
- Penjadwalan tidak berprioritas.
FIFO adalah penjadwalan paling sederhana, yaitu :
- Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
- Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai
selesai.
FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain,
misalnya : Keputusan berdasarkan prioritas proses. Untuk proses-pross berprioritas
sama diputuskan berdasarkan FIFO.
Penjadwalan ini :
a. Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
b. Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi
waktu tanggap yang baik.
c. Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).
B. Shortest Job First (SJF)
Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui
sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan
terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan
turn around time rendah dan penjadwalannya tak berprioritas.
Contoh :
Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing
adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn
around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan
untuk D adalah 20. Untuk menghitung rata-rata turn around time seluruh proses
adalah dengan menggunakan rumus :
( 4a + 3b + 2c + 1d ) / 4
Dengan menggunakan rumus, maka dapat dihitung turn around time-nya sebagai
berikut (belum memperhatikan shortest job first) :
= ( 4a + 3b + 2c + 1d ) / 4
= ( 4×8 + 3×4 + 2×4 + 1×4 ) / 4
= ( 32 + 12 + 8 + 4 ) / 4
= 56 / 4
= 14 menit
Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20, sehingga rata-rata turn around timenya adalah
sebagai berikut :
= ( 4a + 3b + 2c + 1d ) / 4
= ( 4×4 + 3×4 + 2×4 + 1×8 ) / 4
= ( 16 + 12 + 8 + 8 ) / 4
= 44 / 4
= 11 menit
Dengan demikian, penggunaan SJF (Shortest Job First) lebih efisien.

Tidak ada komentar:

Posting Komentar