CPU Scheduling Pembahasan Konsep Dasar Kriteria Scheduling Algoritma

CPU Scheduling

Pembahasan • • Konsep Dasar Kriteria Scheduling Algoritma Scheduling Contoh perhitungan dari beberapa algoritma untuk menghitung average waiting time dan average turn around time proses

CPU Scheduling • Merupakan basis dari OS yang multiprogramming, sementara multiprogramming untuk meningkatkan produktifitas sistem • Topik pembahasan : – Konsep dasar CPU Scheduling – Algoritma-algoritma CPU Scheduling

Konsep Dasar CPU Scheduling • Dalam multiprogramming – Suatu proses dieksekusi s. d wait untuk I/O, setelah itu CPU diberikan ke proses lain, dst. – Pelajari konsep CPU Bounded process dan I/O bounded process dan state process (5 state) – Membentuk siklus yang terdiri atas • Sequence eksekusi CPU (CPU burst time) • Sequence dalam service I/O (I/O burst time) – Pola distribusi CPU burst time adalah eksponensial atau bahkan hipereksponensial

Contoh CPU - I/O Burst • scanf n, a, b for (i=1; i<=n; i++) x = x + a*b; printf x for (i=1; i<=n; i++) for (j=1; j<=n; j++) x = x + a*b; printf x /* I/O wait */ /* CPU burst */ /* I/O wait */

Pola Distribusi CPU Burst Time

Keputusan Scheduling • Scheduler memilih dari antara proses dalam memori yang ready dan mengalokasi CPU untuk proses yang terpilih • Terjadinya keputusan scheduler saat : – (1) status proses berubah dari run ke wait – (2) status proses berubah dari run ke ready – (3) status proses berubah dari wait ke ready – (4) status proses menjadi terminate

Non-preemptive • Scheduler dalam situasi (1) dan (4) disebut non-preemptive – Sekali CPU ditetapkan untuk suatu proses maka proses tidak akan melepaskannya hingga terminate atau untuk melakukan I/O – Untuk hardware tertentu skema ini merupakan satu-satunya pilihan (misalnya tidak ada timer) – Digunakan oleh MS Windows

Status Proses - Scheduler Preemptive Non-preemptive

Preemptive • Scheduler dalam situasi (2) dan (3) disebut preemptive – CPU dapat dialihkan ke proses lain oleh OS misalnya karena interrupt, timer, dsb. – Perlu penanganan masalah data sharing antara sebelum dan sesudah – Perlu blocking CPU saat struktur data kernel berada pada status yang inkonsisten

Dispatcher • Modul yang memberikan kontrol CPU bagi proses yang terpilih untuk mendapat giliran meliputi : – Context switching – Set operasi sistem ke user-mode – Jump ke lokasi untuk meneruskan proses yang mendapat giliran dan run

Dispatch Latency • Waktu yang diperlukan oleh dispatcher untuk menghentikan proses yang sedang running hingga proses yang di-dispatch berikutnya running

CPU Scheduling Algorithms • FCFS First Come First Served, proses yang datang duluan dilayani duluan • SJF Shortest job First, proses yang terpendek burst timenya dilayani duluan • Priority, penjadwalan proses dengan sistem prioritas • Round Robin, proses dieksekusi oleh CPU berdasarkan kuota • Multi-Level , penjadwalan berbasis hirarki

Kriteria Scheduling (1) • Fairness : adil untuk seluruh proses • CPU utilization : persentase jumlah waktu CPU sibuk dari total waktu • Throughput : jumlah proses yang selesai dieksekusi per satuan waktu • Turnaround time : selang waktu sejak submit proses hingga terminate

Kriteria Scheduling (2) • Waiting time : jumlah waktu suatu proses menunggu dalam ready queue • Response time : panjang waktu sejak submit hingga respons pertama muncul • Predictability respons : variansi (ketersebaran) waktu respons

Obyektif : meningkatkan derajat multiprogramming • Pemilihan algoritma untuk optimisasi : – Memaksimalkan CPU utilization – Memaksimalkan throughput=bnyk proses yg dpat diselesaikan per satuan waktu – Meminimumkan turnaround time=total keseluruhan waktu eksekusi prosesor – Meminimumkan waiting time= total waktu tunggu – Meminimumkan response time=total waktu tanggap pertama oleh prosesor – Meminimumkan response time variance

First Come, First-Served (FCFS) • Proses yang merequest CPU lebih dulu adalah yang dilayani terlebih dahulu • Jika suatu proses running menjadi ready maka ia antri lagi dibelakang • Performance : waktu tunggu rata-rata lama serta akan bervariasi jika burst time amat bervariasi

Contoh FCFS Diketahui : Ditanyakan : – Average waiting time & Average Turn Arround Time dg algoritma FCFS. Jawab : a. Buat dulu Gantt Chart untuk meletakkan proses sesuai algoritma yang diminta b. Revisi tabel dg t awal eksekusi, t akhir eksekusi, t tunggu (waiting time) dan t total (turn arround time) c. Hitung total t tunggu dan turn arround time dibagi jumlah proses yang ada

Perhitungan FCFS • P 1 : 24 ms, P 2 : 3 ms, P 3 : 3 ms. • Datang dalam urutan P 1, P 2, P 3 – Gantt Chart P 1 0 P 2 24 P 3 27 30

Contoh FCFS • P 1 : 24 ms, P 2 : 3 ms, P 3 : 3 ms. • Datang dalam urutan P 1, P 2, P 3 – Gantt Chart P 1 P 2 0 24 P 3 27 30 – Waktu tunggu : P 1 = 0 ms, P 2 = 24 ms, dan P 3 = 27 ms – Average waiting time = (0 + 24 + 27)/3 = 17 ms • Jika urutannya : P 2, P 3, P 1 maka : – Gantt Chart P 2 0 P 3 3 P 1 6 30 – Average waiting time = (6 + 0 + 3)/3 = 3 – Average Turn Around Time 39/3=13

Masalah FCFS : “Convoy Effect” • Kondisi terdapat suatu proses yang memiliki CPU-burst time besar (CPU bound) dan sejumlah proses lain dengan I/O burst time yang besar (I/O bound) – Proses CPU bound sedang hold CPU proses I/O bound menunggu, I/O device idle – Proses I/O bound sedang melakukan I/O, proses CPU bound menunggu, CPU idle

Shortest Job First (SJF) • Tepatnya “shortest CPU burst-time first” • Bila CPU burst time tiap proses diketahui sebelumnya maka proses dengan CPU burst time terkecil yang dilayani terlebih dahulu – Preemptive scheme : proses running P 1 bisa dihentikan di tengah saat muncul proses P 2 yang lebih pendek – Nonpreemptive scheme : proses running akan terus sampai terminate atau I/O wait

Contoh SJF - Non-Preemptive Process Arrival Time P 1 0. 0 P 2 2. 0 P 3 4. 0 P 4 5. 0 • SJF (non-preemptive) P 1 0 3 P 3 7 Burst Time 7 4 1 4 P 2 8 P 4 12 16 • Average waiting time = (0 + 6 + 3 + 7)/4 = 4

Contoh SJF - Non-Preemptive P 1 0 3 P 3 7 P 2 8 P 4 12 16

Contoh SJF – Preemptive, disebut RSJF (Remaining SJF) Process Arrival Time P 1 0. 0 P 2 2. 0 P 3 4. 0 P 4 5. 0 • SJF (preemptive) P 1 0 P 2 2 P 3 4 P 2 5 Burst Time 7 4 1 4 P 4 7 P 1 11 16 • Average waiting time = (9 + 1 + 0 +2)/4 = 3

Contoh SJF – Preemptive, disebut RSJF (Remaining SJF) P 1 0 P 2 2 P 3 4 P 2 5 P 4 7 P 1 11 16

Masalah SJF : informasi CPU burst time • Algoritma memberikan performance yang optimal, tapi bagaimana caranya mendapatkan informasi CPU burst time ? – Untuk long-term schedule dalam batch system, dapat digunakan panjang time limit yang dispesifikasikan user pada saat submit job. – Untuk short-term scheduling tidak mungkin. Tidak ada cara untuk mengetahui secara pasti CPU burst berikutnya, hanya dapat diaproksimasi secara stokastik (prediksi).

Priority Scheduling • Proses dengan prioritas lebih tinggi akan dilayani lebih dulu – Preemptive scheme : proses running P 1 bisa dihentikan di tengah saat muncul proses P 2 yang lebih tinggi prioritasnya – Non-preemptive scheme : proses yang running akan diteruskan sampai terminate atau I/O wait

Contoh Priority Scheduling Process P 1 P 2 P 3 Priority 2 1 3 P 1 P 2 0 Burst Time 8 1 1 1 P 3 9 10 • Average waiting time = (1 + 0 + 9)/3 = 3. 3

Pendefinisian Prioritas • Internal – Bila mungkin, ditentukan berdasarkan indikator terukur atau estimasinya • Time limit, memori requirement, jumlah file open, ratio I/O burst terhadap CPU burst • External – Ditentukan berdasarkan kriteria yang eksternal bagi OS • Tingkat kepentingan proses, charging, super-user (root), dll

Masalah Priority Scheduling • Indefinite blocking (starvation) pada proses-proses berprioritas rendah terutama jika sistemnya heavilyloaded – Rumor : ketika IBM 7093 di MIT di-shutdown tahun 1973, ditemukan adanya proses-proses low priority yang di-submit tahun 1967 dalam status wait

Solusi dari Starvation • Solusi : “aging” (peningkatan prioritas pada proses-proses yang sudah menunggu cukup lama) – Misalnya setiap 15 menit dinaikkan 1 tingkat

Round Robin (RR) • Masing-masing proses diberikan interval waktu tertentu yang disebut time quantum • Mengikuti FCFS & setelah kuantum waktu tertentu proses yang running di-preempt & kembali ke ready queue • Mekanisme kuantum waktu menggunakan timer, jika proses sudah terminate atau melakukan I/O wait sementara timer belum habis, timer di-reset untuk giliran proses berikutnya

Contoh : RR • Contoh : dengan time quantum = 20 ms Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 • Gantt chart : P 1 0 P 2 20 37 P 3 P 4 57 P 1 77 P 3 P 4 P 1 P 3 97 117 121 134 154 162 • Khususnya, rata-rata turnaround lebih tinggi daripada SJF, tetapi lebih baik untuk respons.

P 1 0 P 2 20 37 P 3 P 4 57 P 1 77 P 3 P 4 P 1 P 3 97 117 121 134 154 162

Masalah RR : Penentuan Kuantum Waktu • Menentukan performance sistem : – Jika terlalu besar sistem menjadi FCFS murni – Jika terlalu kecil terjadi “processor sharing” • Pada n proses yang running pada prosesor dengan kecepatan K, bagi setiap proses terasa masing-masing memiliki prosesor sendiri dengan kecepatan K/n (misalnya respons interaksi jadi lambat) – Jika terlalu kecil overhead untuk context switching jadi besar

Time Quantum dan Context Switch Time

Multi-Level Queue (MLQ) • Proses diklasifikasi ke dalam sejumlah kelas & masing-masing kelas memiliki antrian sendiri dengan aturan berbeda – Contoh kelas-kelas dalam beberapa OS • • • Proses sistem Proses interaktif Proses editing interaktif Proses batch Proses student

Diagram Contoh MLQ

MLQ pada Uniprocessor • Kelas-kelas perlu diantrikan juga – Dengan prioritas berbeda secara fixed dan preemptive; proses dari kelas yang lebih rendah harus menunggu proses dari kelas yang lebih tinggi selesai – Dengan menerapkan time sharing dengan kuota waktu yang berbeda (misalnya foreground 80% dan background 20%)

Multi-Level Feedback Queue • MLQ overhead rendah tetapi tidak fleksibel • MLFQ memungkinkan perpindahan antara level antrian untuk meng-aproksimasi SJF : – Proses mula-mula masuk ke level pertama, jika dalam batas waktu proses belum berakhir maka ia di-preempt dan dimasukkan ke antrian level berikutnya yang prioritasnya lebih rendah – Proses yang menunggu terlalu lama bisa naik ke antrian ber-prioritas lebih tinggi

Contoh MLFQ • Contoh MLFQ dengan 3 antrian : Q 0, Q 1, dan Q 2. Kuantum Q 0 = 8 ms, kuantum Q 1 = 16 ms dan Q 2 menggunakan skema FCFS – Awalnya proses P masuk ke Q 0, apabila saat running belum selesai saat timer habis (8 ms) maka P di-preempt dan dipindahkan ke Q 1 – Jika Q 0 sudah kosong, Q 1 baru dilayani; saat P belum selesai juga saat timer habis (16 ms) maka P masuk dalam skema FCFS Q 3

Diagram Contoh MLFQ

Parameter Menentukan MLFQ • • • Jumlah Queue (level) Algoritma scheduling untuk tiap queue Metode penentuan kapan upgrade prioritas proses ke queue yang lebih tinggi • Metode penentuan kapan menurunkan prioritas proses ke queue yang lebih rendah • Metode penentuan queue mana yang dimasuki proses

TUGAS : Diketahui proses-proses sbb : Prosess T datang Burst Time P 1 P 2 P 3 P 4 NIM P 5 CPU 0 3 5 6 9 4 2 X, digit terakhir 6 Y digit no 2 Hitung Average Waiting Time dan Average Turn Arround Time dengan : 1. FCFS 2. SJF 3. RSJF

END OF MODUL - 6
- Slides: 46