Multicore Penjadwalan Prosesor Jamak

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