Bab 16. Evaluasi dan Ilustrasi
16.1. Pendahuluan
Seperti yang sudah dijelaskan di bab sebelumnya, terdapat banyak algoritma penjadwalan CPU. Pertanyaan yang muncul selanjutnya adalah bagaimana memilih algoritma penjadwal untuk suatu
sistem. Untuk memilihnya, pertama kita harus mengetahui kriteria algoritma penjadwal yang baik. Kriteria ini bisa mencakup hal berikut:
• Memaksimalkan penggunaan CPU dengan batasan response time maksimum adalah satu detik. • Memaksimalkan throughput sehingga rata-rata turnaround time berbanding lurus dengan total
waktu eksekusi. Dengan mempertimbangkan kriteria itu, kita bisa mengevaluasi algoritma penjadwalan dengan
berbagai metode-metode yang akan dijelaskan dalam bab ini.
16.2. Deterministic Modelling
Salah satu metode evaluasi adalah evaluasi analitik, yaitu menggunakan algoritma yang sudah ada dan workload dari sistem untuk menghasilkan suatu formula yang menggambarkan performance
suatu algoritma. Salah satu tipe evaluasi analitik ini adalah deterministic modelling. Model ini menggunakan workload yang sudah diketahui dan melihat performance algoritma dalam
menjalankan workload tersebut. Untuk dapat memahami deterministic modelling ini, kita gunakan sebuah contoh. Misalkan lima proses datang pada waktu yang bersamaan dengan urutan sebagai
berikut:
Tabel 16.1. Contoh
Proses Burst Time
P1 10
P2 29
P3 3
P4 7
P5 12
Dengan deterministic modelling kita membandingkan performance algoritma dalam mengekseskusi proses-proses di atas. Eksekusi proses dengan algoritma First Come First Serve FCFS, Shortest
Job First SJF, dan Round Robin RR digambarkan pada Gambar 16.1, “Perbandingan dengan Deterministic Modelling”.
Dari average waiting time-nya, dapat dilihat bahwa untuk kasus ini algoritma SJF memberikan hasil yang paling baik, yaitu average waiting time-nya paling kecil.
Deterministic modelling ini memungkinkan kita membandingkan performance algoritma dengan cepat dan sederhana karena kita bisa melihat perbandingannya langsung dari angka yang dihasilkan.
Namun, model ini hanya berlaku untuk kasus tertentu dimana kita bisa mengetahui angka pasti dari workload yang akan dijadikan input dalam perhitungan. Model ini bisa digunakan untuk memilih
algoritma terbaik dimana kita menjalankan program yang sama berulang-ulang dan kebutuhan untuk menjalankan program dapat diukur.
109
Gambar 16.1. Perbandingan dengan Deterministic Modelling
16.3. Queueing Modelling
Pada kenyataanya, program atau proses yang dijalankan pada suatu sistem bervariasi dari hari ke hari. Untuk itu, kita tidak bisa menggunakan deterministic modelling untuk membandingkan
performance algoritma dengan menentukan kebutuhan proses atau waktu eksekusinya. Yang bisa ditentukan adalah distribusi CPU dan IO burst. Distribusi ini bisa diukur, lalu kemudian
diperkirakan atau diestimasikan, sehingga bisa didapatkan formula yang menjelaskan probabilitas CPU burst. Kita juga bisa menentukan distribusi waktu kedatangan proses dalam sistem. Dua
distribusi tersebut memungkinkan kita menghitung throughputrata-rata, penggunaan CPU, waiting time, dan lain-lain.
Salah satu pemanfaatan metode di atas dengan menggunakan queueing-network analysis dimana kita menganggap sistem komputer sebagai jaringan server-server. Setiap server memiliki antrian
proses-proses. CPU adalah server yang memiliki ready queue, yaitu antrian proses-proses yang menunggu untuk diekseskusi dan sistem MK adalah server yang memiliki device queue, yaitu
antrian MK device yang menunggu untuk dilayani.
Misalnya diketahui n sebagai panjang antrian rata-rata banyaknya proses yang berada dalam antrian, W sebagai waktu tungggu rata-rata yang dialami proses dalam antrian, dan
sebagai kecepatan rata-rata kedatangan proses baru ke antrian banyaknya proses baru yang datang per
detik. Pada sistem yang berada dalam steady state, jumlah proses yang meninggalkan antrian pasti sama dengan yang proses yang datang. Dengan demikian, kita bisa gunakan persamaan yang
dikenal dengan Formula Little berikut ini:
n= x W
n: panjang antrian W: waktu tunggu rata-rata dalam antrian
110
: kecepatan rata-rata kedatangan proses baru Formula Little ini valid untuk semua algoritma penjadwalan dan distribusi kedatangan proses.
Sebagai contoh, jika kita mengetahui rata-rata 7 proses datang setiap detik, dan normalnya ada 14 proses dalam antrian, maka kita bisa menghitung waktu tunggu rata-rata proses dalam antrian W
sebagai berikut: = 7 prosesdetik n= 14 proses maka W= n
= 147= 2 detik per proses. Queueing analysis ini bisa digunakan untuk membandingkan algoritma penjadwalan, tapi memiliki
beberapa keterbatasan. Jenis algoritma distribusi yang bisa ditangani model ini terbatas dan pada algoritma atau distribusi yang kompleks, akan sulit untuk menggunakan model ini. Karena
perhitungannya akan sangat rumit dan tidak realistis. Selain itu, kita juga perlu menggunakan asumsi yang mungkin saja tidak akurat. Model ini seringkali hanya memberi perkiraan dan
keakuratan hasil perhitungannya dipertanyakan.
16.4. Simulasi
Untuk mendapatkan hasil yang lebih akurat dari evaluasi algoritma penjadwalan, bisa digunakan simulasi. Simulasi ini dibuat dengan memprogram sebuah model dari sistem komputer.
Simulatornya memiliki variabel yang merepresentasikan clock. Jika nilai dari variabel ini bertambah, simulator mengubah status dari sistem untuk menggambarkan aktivitas proses, device,
dan penjadwal. Selama simulatornya berjalan, data-data statistik mengenai performance algoritma dikumpulkan dan dicetak.
Untuk menjalakan simulator ini diperlukan data yang merepresentasikan aktivitas sistem seperti proses, CPU burst, dan lain-lain. Biasanya data ini dibuat dengan random-number generator dengan
memanfaatkan distribusi probabilitas seperti distribusi Poisson, eksponensial, dan lain-lain. Tapi menjalankan simulasi dengan data yang dihasilkan dari distribusi ini bisa saja tidak akurat, karena
dari distribusi hanya diketahui frekuensi atau berapa kali suatu kejadian muncul. Distribusi ini tidak memperhatikan urutan kejadiannya. Untuk mengatasi masalah itu, digunakan trace tapes .
Cara membuat trace tapes adalah dengan mengamati dan merekam aktivitas sistem yang sesungguhnya. Dengan ini, kita bisa menjalankan simulator dengan urutan data dari events yang
sebenarnya. Cara ini cukup efektif dan bisa memberikan hasil yang akurat.
Berikut ini adalah ilustrasi evaluasi algoritma penjadwalan dengan simulasi:
Gambar 16.2. Evaluasi Algoritma Penjadwalan dengan Simulasi
Urutan eksekusi proses direkam dengan trace tapes, kemudian simulator menjalankan simulasi penjadwalan proses-proses tersebut dengan berbagai macam algoritma penjadwalan. Simulasi ini
kemudian menghasilkan catatan mengenai performance dari setiap algoritma penjadwalan tersebut. Dengan membandingkan catatan performance itu, pengguna bisa mencari algoritma penjadwalan
111