Queueing Modelling Evaluasi dan Ilustrasi

menyelesaikan waktu kuantumnya dan akan dipindahkan ke expired array. Jadi, ketika ada dua larik array ditukar, semua task di array aktif yang baru ditentukan prioritasnya yang baru dan disesuaikan juga time slices-nya.

16.7. Ilustrasi: Solaris

Solaris menggunakan penjadwalan berdasarkan prioritas dimana yang mempunyai prioritas yang lebih tinggi dijalankan terlebih dahulu. Informasi tentang penjadwalan kernel thread dapat dilihat dengan ps -elcL . Kernel Solaris adalah fully preemtible, artinya semua thread, termasuk thread yang mendukung aktifitas kernel itu sendiri dapat ditunda untuk menjalankan thread dengan prioritas yang lebih tinggi. Gambar 16.5. Penjadwalan Solaris Solaris mengenal 170 prioritas yang berbeda, 0-169. Terbagi dalam 4 kelas penjadwalan yang berbeda:

1. Real time RT. Thread di kelas RT memiliki prioritas yang tetap dengan waktu kuantum yang

tetap juga. Thread ini memiliki prioritas yang tinggi berkisar antara 100-159. Hal inilah yang membuat proses waktu nyata memiliki response time yang cepat. Proses waktu nyata akan dijalankan sebelum proses-proses dari kelas yang lain dijalankan sehingga dapat menghentikan proses di system class. Pada umumnya, hanya sedikit proses yang merupakan real time class.

2. System SYS. Solaris menggunakan system class untuk menjalankan kernel proses, seperti

penjadwalan dan paging daemon. Threads di kelas ini adalah bound threads, berarti bahwa mereka akan dijalankan sampai mereka di blok atau prosesnya sudah selesai. Prioritas untuk SYS threads berkisar 60-99. Sekali dibangun, prioritas dari sistem proses tidak dapat dirubah. System class dialokasikan untuk kernel use user proses berjalan di kernel mode bukan di system class.

3. Time Sharing TS. Time sharing class merupakan default class untuk proses dan kernel thread

yang bersesuaian. Time slices masing-masing proses dibagi berdasarkan prioritasnya. Dalam hal ini, prioritas berbanding terbalik dengan time slices-nya. Untuk proses yang prioritasnya tinggi mempunyai time-slices yang pendek, dan sebaliknya proses dengan prioritas yang rendah mempunyai time slices yang lebih panjang. Besar prioritasnya berada antara 0-59. Proses yang interaktif berada di prioritas yang tinggi sedangkan proses CPU-bound mempunyai prioritas yang rendah. Aturan penjadwalan seperti ini memberikan response time yang baik untuk proses yang interaktif, dan troughput yang baik untuk proses CPU-bound.

4. Interactive IA. Kelas Interaktif menggunakan aturan yang sama dengan aturan dengan kelas

kelas time sharing, tetapi kelas ini memberikan prioritas yang tinggi untuk aplikasi jendela 114 windowing application sehingga menghasilkan performance yang lebih baik. Seperti TS, range IA berkisar 0-59. Tabel 16.2. Solaris dispatch table for interactive and time sharing threads Priority Time quantum Time quantum expired return from sleep 200 50 5 200 50 10 160 51 15 160 5 51 20 120 10 52 25 120 15 52 30 80 20 53 35 80 25 54 40 40 30 55 45 40 35 56 50 40 40 58 55 40 45 58 59 20 49 59 Keterangan: • Priority: prioritas berdasarkan kelas untuk time sharing dan interactive class. Nomor yang lebih tinggi menunjukkan prioritas yang lebih tinggi. • Time quantum: waktu kuantum untuk setiap prioritas. Dapat diketahui bahwa fungsi waktu kuantum berbanding terbalik dengan prioritasnya. • Time quantum expired: Prioritas terbaru untuk thread yang telah habis time slices-nya tanpa diblok. Dapat dilihat dari tabel bahwa thread yang CPU-bound tetap mempunyai prioritas yang rendah. • Return from sleep: Prioritas thread yang kembali dari sleeping misalnya menunggu dari MK. Seperti yang terlihat dari tabel ketika MK berada di waiting thread, prioritasnya berada antara 50-59, hal ini menyebabkan response time yang baik untuk proses yang interaktif.

5. Fixed Priority FX. Thread di kelas fixed priority memiliki range prioritas 0-59 yang sama

seperti di time-sharing class; tetapi, prioritas mereka tidak akan berubah.

6. Fair Share Scheduler FSS. Thread yang diatur oleh FSS dijadwalkan berdasar pembagian

sumber daya dari CPU yang tersedia dan dialokasikan untuk himpunan proses-proses yang dikenal sebagai project. FS juga berkisar 0-59. FSS and FX baru mulai diimplementasikan di Solaris 9. Seperti yang telah diketahui, setiap kelas penjadwalan mempunyai himpunan dari prioritas-prioritas. Tetapi, penjadwal mengubah class-specific priorities menjadi global priorities kemudian memilih thread dengan prioritas paling tinggi untuk dijalankan. Thread yang dipilih tersebut jalan di CPU sampai thread tersebut 1 di-block, 2 habis time slices-nya, atau 3 dihentikan oleh thread dengan prioritas yang lebih tinggi. Jika ada beberapa thread dengan prioritas yang sama, penjadwal akan menggunakan Round-Robin queue. Seperti yang pernah dijelaskan sebelumnya, Solaris terdahulu menggunakan many-to-many model tetapi solaris 9 berubah menggunakan one-to-one model.

16.8. Rangkuman

Cara mengevaluasi algoritma: • Deterministic Modelling: menggunakan perhitungan matematika berdasarkan workload sistem. Sederhana, namun pemakaiannya terbatas. • Queueing Model: menggunakan perhitungan matematika berdasarkan waktu antrian dan waktu kedatangan proses. • Simulasi: membuat model sistem komputer. Cara ini mahal dan membutuhkan kerja besar dalam