Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

CPU Scheduling. Pembahasan Konsep DasarKonsep Dasar Kriteria SchedulingKriteria Scheduling Algoritma SchedulingAlgoritma Scheduling.

Presentasi serupa


Presentasi berjudul: "CPU Scheduling. Pembahasan Konsep DasarKonsep Dasar Kriteria SchedulingKriteria Scheduling Algoritma SchedulingAlgoritma Scheduling."— Transcript presentasi:

1 CPU Scheduling

2 Pembahasan Konsep DasarKonsep Dasar Kriteria SchedulingKriteria Scheduling Algoritma SchedulingAlgoritma Scheduling

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

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

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

6 Pola Distribusi CPU Burst Time

7 Keputusan Scheduling Scheduler memilih dari antara proses- proses dalam memori yang ready dan mengalokasi CPU untuk proses yang terpilihScheduler memilih dari antara proses- proses dalam memori yang ready dan mengalokasi CPU untuk proses yang terpilih Terjadinya keputusan scheduler saat :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

8 Non-preemptive Scheduler dalam situasi (1) dan (4) disebut non-preemptiveScheduler 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

9 Status Proses - Scheduler Non-preemptive Preemptive

10 Preemptive Scheduler dalam situasi (2) dan (3) disebut preemptiveScheduler 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

11 Dispatcher Modul yang memberikan kontrol CPU bagi proses yang terpilih untuk mendapat giliran meliputi :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

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

13 CPU Scheduling Algorithms FCFS QueueFCFS Queue SJF QueueSJF Queue Priority QueuePriority Queue Round RobinRound Robin Multi-Level QueueMulti-Level Queue Multi-Level Feedback QueueMulti-Level Feedback Queue

14 Kriteria Scheduling (1) CPU utilization : persentase jumlah waktu CPU sibuk dari total waktuCPU utilization : persentase jumlah waktu CPU sibuk dari total waktu Throughput : jumlah proses yang selesai dieksekusi per satuan waktuThroughput : jumlah proses yang selesai dieksekusi per satuan waktu Turnaround time : selang waktu sejak submit proses hingga terminateTurnaround time : selang waktu sejak submit proses hingga terminate

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

16 Obyektif Pemilihan algoritma untuk optimisasi :Pemilihan algoritma untuk optimisasi : –Memaksimalkan CPU utilization –Memaksimalkan throughput –Meminimumkan turnaround time –Meminimumkan waiting time –Meminimumkan response time –Meminimumkan response time variance

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

18 Contoh FCFS P1 : 24 ms, P2 : 3 ms, P3 : 3 ms.P1 : 24 ms, P2 : 3 ms, P3 : 3 ms. Datang dalam urutan P1, P2, P3Datang dalam urutan P1, P2, P3 –Gantt Chart –Waktu tunggu : P1 = 0 ms, P2 = 24 ms, dan P3 = 27 ms –Average waiting time = ( )/3 = 17 ms Jika urutannya : P2, P3, P1 maka :Jika urutannya : P2, P3, P1 maka : –Gantt Chart –Average waiting time = ( )/3 = 3 P1P1 P2P2 P3P P1P1 P2P2 P3P3 36 0

19 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)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

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

21 Contoh SJF - Non-Preemptive Process Arrival Time Burst Time Process Arrival Time Burst Time P P P P P P P SJF (non-preemptive)SJF (non-preemptive) Average waiting time = ( )/4 = 4Average waiting time = ( )/4 = 4 P1P1 P3P3 P2P P4P4 812

22 Contoh SJF - Preemptive Process Arrival Time Burst Time Process Arrival Time Burst Time P P P P P P P SJF (preemptive)SJF (preemptive) Average waiting time = ( )/4 = 3Average waiting time = ( )/4 = 3 P1P1 P3P3 P2P P4P4 57 P2P2 P1P1 16

23 Masalah SJF : informasi CPU burst time Algoritma memberikan performance yang optimal, tapi bagaimana caranya mendapatkan 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).

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

25 Contoh Priority Scheduling Process Burst Time Priority Process Burst Time Priority P 1 82 P 2 11 P 2 11 P 3 13 P 3 13 Average waiting time = ( )/3 = 3.3Average waiting time = ( )/3 = 3.3 P2P2 P3P P1P1 10

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

27 Masalah Priority Scheduling Indefinite blocking (starvation) pada proses-proses berprioritas rendah terutama jika sistemnya heavilyloadedIndefinite 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

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

29 Round Robin (RR) Masing-masing proses diberikan interval waktu tertentu yang disebut time quantumMasing-masing proses diberikan interval waktu tertentu yang disebut time quantum Mengikuti FCFS & setelah kuantum waktu tertentu proses yang running di-preempt & kembali ke ready queueMengikuti 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 berikutnyaMekanisme kuantum waktu menggunakan timer, jika proses sudah terminate atau melakukan I/O wait sementara timer belum habis, timer di-reset untuk giliran proses berikutnya

30 Contoh : RR Contoh : dengan time quantum = 20 msContoh : dengan time quantum = 20 ms Process Burst Time Process Burst Time P 1 53 P 2 17 P 2 17 P 3 68 P 3 68 P 4 24 P 4 24 Gantt chart :Gantt chart : Khususnya, rata-rata turnaround lebih tinggi daripada SJF, tetapi lebih baik untuk respons.Khususnya, rata-rata turnaround lebih tinggi daripada SJF, tetapi lebih baik untuk respons. P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P

31 Masalah RR : Penentuan Kuantum Waktu Menentukan performance sistem :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)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

32 Time Quantum dan Context Switch Time

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

34 Diagram Contoh MLQ

35 MLQ pada Uniprocessor Kelas-kelas perlu diantrikan jugaKelas-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%)

36 Multi-Level Feedback Queue MLQ overhead rendah tetapi tidak fleksibelMLQ overhead rendah tetapi tidak fleksibel MLFQ memungkinkan perpindahan antara level antrian untuk meng-aproksimasi SJF :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

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

38 Diagram Contoh MLFQ

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

40 END OF MODUL - 6


Download ppt "CPU Scheduling. Pembahasan Konsep DasarKonsep Dasar Kriteria SchedulingKriteria Scheduling Algoritma SchedulingAlgoritma Scheduling."

Presentasi serupa


Iklan oleh Google