Download - CPU Scheduling Fix

Transcript
Page 1: CPU Scheduling Fix

Penjadwalan CPUKonsep dasarKriteria penjadwalanAlgoritma penjadwalanPenjadwalan Real-TimePenjadwalan ThreadPenjadwalan Java Thread

Page 2: CPU Scheduling Fix

Konsep DasarMemaksimalkan kinerja CPU

melalui multiprogramming

CPU–I/O Burst Cycle – Eksekusi proses terdiri dari siklus instruksi CPU dan I/O request/wait.

Page 3: CPU Scheduling Fix

Siklus CPU–I/O Burst

Urutan CPU-I/O BurstHistogram Waktu CPU-I/O Burst

Page 4: CPU Scheduling Fix

Penjadwalan CPUAlgoritma scheduling:

◦ Memilih dari proses-proses yang berada di memori (ready to execute) dan memberikan jatah CPU ke salah satu proses tersebut.

Page 5: CPU Scheduling Fix

Cont... Kapan keputusan untuk algoritma dilakukan??? Saat suatu proses:

1. Proses running berubah dari keadaan running ke waiting2. Running proses berakhir3. Waiting proses menjadi ready 4. Proses yang sedang berjalan berubah dari running ke ready

Ready Running

Waiting

13

24

NonPreemptive

Preemptive

Page 6: CPU Scheduling Fix

Kriteria PenjadwalanUtilisasi CPU

menjadikan CPU terus menerus sibuk (menggunakan CPU memaksimal mungkin).

Throughputmaksimalkan jumlah proses yang selesai dijalankan (per satuan waktu)

Turnaround Timeminimalkan waktu selesai eksekusi suatu proses (sejak di submit sampai selesai).

Waiting Timeminimalkan waktu tunggu proses (jumlah waktu yang dihabiskan menunggu di ready queue)

Response Timeminimalkan waktu response dari sistim terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat.

Page 7: CPU Scheduling Fix

Kriteria Penjadwalan yang Optimal

Memaksimumkan utilisasi CPUMemaksimumkan throughputMeminimumkan turnaround time Meminimumkan waiting time Meminimumkan response time

Page 8: CPU Scheduling Fix

ALGORITMA PENJADWALANa. Penjadwalan satu tingkat

First Come First Served (FCFS) Shortest Job First (SJF) Prioritas Scheduling Round Robin (RR)

b. Penjadwalan multi tingkat Multilevel Queue Scheduling Multilevel Feedback Queue Scheduling

Page 9: CPU Scheduling Fix

First Come First Served (FCFS)Penjadwalan ini murni antrian, tanpa prioritas tanpa preempsi.

Proses Burst time (ms)

P1P2P3P4

20573

P1 P2 P3 P40 20 25 32 35

misal urutan kedatangan adalah P1, P2, P3, P4 Gantt Chart untuk ini adalah:

Maka waktu tunggu untuk tiap proses :

Proses Wait Time(ms)

P1P2P3P4

0202532

AWT adalah = (0+20+25+32)/4 = 19,25 ms

Page 10: CPU Scheduling Fix

First Come First Served (FCFS) cont….

P2 P3 P4 P10 5 12 15 35

jika urutan kedatangannya diubah: P2, P3, P4, P1 Gantt Chart untuk ini adalah:

Proses Burst time (ms)

P1P2P3P4

20573

Maka AWT adalah = (0+5+12+15)/4 = 8 ms

Page 11: CPU Scheduling Fix

First Come First Served (FCFS)cont…

Dari dua contoh kasus diatas, kasus kedua lebih baik dari kasus pertama, karena pengaruh kedatangan.disamping itu FCFS mempunyai kelemahan yaitu convoy effect dimana seandainya ada sebuah proses yang kecil tetapi dia mengantri dengan proses yang membutuhkan waktu yang lama mengakibatkan proses tersebut akan lama dieksekusi.

Penjadual FCFS algoritma adalah nonpremptive. Ketika CPU telah dialokasikan untuk sebuah proses, proses tetap menahan CPU sampai selesai.

FCFS algortima jelas merupakan masalah bagi sistem time-sharing, dimana sangat penting untuk user mendapatkan pembagian CPU pada regular interval.

Page 12: CPU Scheduling Fix

Shortest Job First (SJF)

Proses Burst time (ms)

P1P2P3P4

20573

P4 P2 P3 P10 3 8 15 35

misal urutan kedatangan adalah P1, P2, P3, P4 Gantt Chart untuk ini adalah:

Maka waktu tunggu untuk tiap proses :

Proses Wait Time(ms)

P1P2P3P4

15380AWT adalah = (15+3+8+0)/4 = 6,5

ms

Page 13: CPU Scheduling Fix

Shortest Job First (SJF)cont…

Proses Arrival Time Burst Time (ms)

P1P2P3P4

0123

10385

P1 P2 P4 P3 P1

Urutan kedatangan dimulai dari P1, P2, P3, P4 Gantt Chart untuk ini adalah:

Maka waktu tunggu untuk tiap proses :

Proses Wait Time(ms)

P1P2P3P4

0+(17-1) = 161 - 1 = 09 – 2 = 74 – 3 = 1AWT adalah = (16+0+7+1)/4 = 6 ms

0 1 4 9 17 26

Page 14: CPU Scheduling Fix

Shortest Job First (SJF)cont…

Algoritma ini berkaitan dengan waktu setiap proses. Dimana yang memeliki burst paling kecil dilayani terlebih dahuluSeandainya dua proses atau lebih mempunyai waktu yang sama maka FCFS algoritma digunakan untuk menyelsaikan masalah tersebut.

Ada dua skema dalam SJFS ini yaitu:

1. Nonpremptive : ketika CPU memberikan sebuah proses kepada proses yang sedang berjalan maka proses tersebut tidak bisa dijalankan dan ditunda hingga proses pertama selesai.

2. Premptive : bila sebuah proses datang dengan waktu proses lebih rendah dibandingkan dengan waktu proses yang sedang dieksekusi oleh CPU maka proses yang waktunya lebih rendah mendapatkan prioritas.

Keuntungan : memperkecil rata-rata lama tanggapKelemahan : layanan terhadap proses panjang bisa tidak terlayani jika Proses pendek datang terus.

Page 15: CPU Scheduling Fix

Priority Scheduling

Penjadualan SJF (Shortest Job First) adalah kasus khusus untuk algoritma penjadual Prioritas dimana tiap-tiap proses dilengkapi dengan priority.

Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi.

Untuk proritas yang sama dilakukan dengan FCFS.

Page 16: CPU Scheduling Fix

Priority Scheduling (cont..)

Ada pun algoritma penjadual prioritas adalah sebagai berikut:

• Setiap proses akan mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas tertinggi.

• CPU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi).

• Dalam algoritma ini ada dua skema yaitu:1. Preemptive: proses dapat di interupsi jika terdapat prioritas

lebih tinggi yang memerlukan CPU.2. Nonpreemptive: proses dengan prioritas tinggi akan mengganti

pada saat pemakain time-slice habis.

Page 17: CPU Scheduling Fix

Priority Scheduling(cont..)

• SJF adalah contoh penjadual prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya. Permasalahan yang muncul dalam penjadualan prioritas adalah indefinite blocking atau starvation.

• Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.

Page 18: CPU Scheduling Fix

Priority Scheduling(cont..)

Proses Burst Time (ms) Priority

P1P2P3P4P5P6

947316

423516

P5 P2 P3 P1 P4 P6Gantt Chart untuk ini adalah:

Maka waktu tunggu untuk tiap proses :

Proses Wait Time(ms)

P1P2P3P4P5P6

715

160

19AWT adalah = (7+1+5+16+0+19)/6 = 8 ms

0 1 5 7 16 19 25

Page 19: CPU Scheduling Fix

Round Robin (RR)Algoritma Round Robin (RR) dirancang untuk sistem time sharing.

Algoritma ini mirip dengan penjadual FCFS, namun preemption ditambahkan untuk switch antara proses. Antrian ready diperlakukan atau dianggap sebagai antrian sirkular. CPU menglilingi antrian ready dan mengalokasikanmasing-masing proses untuk interval waktu tertentu sampai satu time slice/ quantum.

Algoritma untuk penjadual Round Robin:

• Setiap proses mendapat jatah waktu CPU (time slice/ quantum) tertentu Time slice/quantum umumnya antara 10 - 100 milidetik.

1. Setelah time slice/ quantum maka proses akan di-preempt dan dipindahkan ke antrian ready.

2. Proses ini adil dan sangat sederhana.

Page 20: CPU Scheduling Fix

Round Robin (RR) (cont..)

• Jika terdapat n proses di "antrian ready" dan waktu quantum q (milidetik), maka: 1. Maka setiap proses akan mendapatkan 1/n dari waktu CPU.

2. Proses tidak akan menunggu lebih lama dari: (n-1)q time units.

• Kinerja dari algoritma ini tergantung dari ukuran time quantum

1. Jika suatu proses memiliki CPU Burst lebih kecil dari quantum-time, maka proses tersebut akan melepaskan CPU jika telah selesai bekerja, sehingga CPU akan digunakan untuk proses selanjutnya.

2. Jika proses yang dimiliki CPU Burst lebih besar dari quantum-time, maka proses tersebut akan dihentikan sejenak hingga mencapai quantum-time dan kemudian mengantri kembali pada posisi ekor dari ready queue, dan CPU melanjutkan proses berikutnya

Page 21: CPU Scheduling Fix

Round Robin (RR) (cont..)

Proses Burst time (ms)

P1P2P3P4

20533

P1 P2 P3 P4 P1 P1 P10 6 11 14 17 23 29 31

Misalkan 4 proses yang minta dilayani pada CPU : P1, P2, P3, dan P4 dengan quantum-time sebesar 6 ms

Maka waktu tunggu untuk tiap proses :

Proses Wait Time(ms)

P1P2P3P4

0 +(17-6) = 1161114

Sehinga AWT adalah = (11+6+11+14)/4 = 7 ms

Gantt Chart :

Page 22: CPU Scheduling Fix

Round Robin (RR) (cont..)

Keuntungan dari algorima round-robin adalah adanya keseragaman waktu

Kekurangannya adalah algoritma ini akan sering melakukan switching, semakin Besar quantum-timenya , switching yang terjadi akan semakin sedikit.

Page 23: CPU Scheduling Fix

Round Robin (RR) (cont..)

Page 24: CPU Scheduling Fix

Antrian Multi Tingkat (Multi level queue)

Konsep dasar algoritmanya adalah membagi beberapa proses dalam group.~ Foreground (interactive)~ Background (batch)

Tiap group dikerjakan dengan algoritma berbeda~ Foreground -RR~ Background -FCFS

Scheduling harus dilakukan antar antrian~ Fixed priority scheduling~ Time slide

Page 25: CPU Scheduling Fix

Antrian Multi Tingkat (Multi level queue)cont…

Page 26: CPU Scheduling Fix

Feedback multi level queue

Pada penjadwalan Feedback queue suatu proses dapat berpindah antar berbagai queue

Contoh dari Feedback queue

Tiga queue: Q0 – time quantum 8 milliseconds Q1 – time quantum 16 milliseconds Q2 – FCFS

Page 27: CPU Scheduling Fix

Feedback multi level queuecont…

Page 28: CPU Scheduling Fix

Feedback multi level queuecont…

Algoritma ini didefinisikan melalui beberapa parameter, antara lain:

• Jumlah antrian• Algoritma penjadwalan tiap antrian• Kapan menaikkan proses ke antrian yang lebih tinggi• Kapan menurunkan proses ke antrian yang lebih rendah• Antrian mana yang akan dimasuki proses yang

membutuhkan

Page 29: CPU Scheduling Fix

Ada 2 model pada penjadwalan real-time, yaitu :

1. Hard real time2. Soft real time

Penjadwalan Real-Time

Page 30: CPU Scheduling Fix

Hard Real TimeMewajibkan proses selesai dalam

kurun waktu tertentu.Jika proses tidak selesai sesuai

waktunya, maka proses tersebut akan gagal di ekseskusi.

Contoh:Alat pacu jantung

Penjadwalan Real-Timecont...

Page 31: CPU Scheduling Fix

Soft Real TimeMenerapkan adanya prioritas dalam

pelaksanaan tugas.Adanya toleransi waktu.Contoh:Transmisi video

Sistem soft real time menyediakan prioritas untuk mendahulukan proses yang menggunakan waktu nyata dari pada proses yang tidak menggunakan waktu nyata. Contoh : Linux.

Penjadwalan Real-Timecont...

Page 32: CPU Scheduling Fix

Karakteristik dari sistem waktu nyata :1. Single purpose.◦ Tidak seperti PC, yang memiliki banyak kegunaan, sebuah sistem

real-time biasanya hanya memiliki satu tujuan, seperti mentransfer sebuah lagu dari komputer ke mp3 player.

2. Small size.◦ Kebanyakan sistem real-time banyak yang ada memiliki physical

space yang terbatas.3. Inexpensively mass-produced.◦ Sistem operasi real-time memenuhi persyaratan waktu yang

ditentukan dengan menggunakan algoritma penjadwalan yang memberikan prioritas kepada proses real-time yang memiliki penjadwalan prioritas tertinggi. Selanjutnya, penjadwalan harus menjamin bahwa prioritas dari proses waktu nyata tidak lebih dari batas waktu yang ditentukan.

Kedua, teknik untuk persyaratan waktu pengalamatan adalah dengan

meminimalkan response time dari sebuah events seperti interupsi.

Penjadwalan Real-Timecont...

Page 33: CPU Scheduling Fix

Di bab 5, kita mengenalkan threads untuk model proses, hal itu mengizinkan sebuah proses untuk mempunyai kontrol terhadap multiple threads. Lebih lanjut kita membedakan antara user-level dan kernel level threads. ◦ User level threads diatur oleh thread library. Untuk

menjalankan di CPU, user level threads di mapping dengan asosiasi kernel level thread, walaupun mapping ini mungkin bisa indirect dan menggunakan lightweight.

◦ Kernel level threads, Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan danmanajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistemoperasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.

Penjadwalan Thread

Page 34: CPU Scheduling Fix

Contention Scope

Process Contention Scope (PCS) Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.

System Contention Scope (SCS) SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel).

Penjadwalan Threadcont...

Page 35: CPU Scheduling Fix

Penjadwalan Pthread

Memiliki 2 kelas penjadwalan untuk thread real-time:

1. SCHED_FIFO 2. SCHED_RR

Penjadwalan ThreadCont..

Page 36: CPU Scheduling Fix

SCHED_FIFO

penjadwalan thread ini merujuk kepada FCFS dengan menggunakan algoritma FIFO.

Tidak terdapat time slice diantara thread dengan perbandingan prioritas.

Sehingga prioritas tertinggi thread real time berada di depan dalam antrian FIFO yang akan dibantu CPU sampai proses selesai.

Penjadwalan ThreadCont..

Page 37: CPU Scheduling Fix

SCHED_RR Hampir sama dengan SCHED_FIFO. Tetapi pada SCHED_RR menyediakan time slice

diantara thread dengan perbandingan prioritas.

NB: kedua kelas penjadwalan diatas memang dirancang untuk menjadi thread pada real-time.

Penjadwalan ThreadCont..

Page 38: CPU Scheduling Fix

Metode yield()

Fungsi yield() methodSebuah thread dapat memberi kontrol dan kesempatan pada thread lain yang memiliki prioritas sama, untuk dijalankan

Kejadian thread yang memberi kontrol pada CPU disebut Cooperative Multitasking

Page 39: CPU Scheduling Fix

Contoh metode yield()

Thread mythread=new Thread(new Runnable(){ public void run(){

while (true){ .... Thread.yield();

} }

}); mythread.start();

Page 40: CPU Scheduling Fix

Prioritas Thread

Setiap thread di java dapat diberi nilai prioritas antara 1 s/d 10. Prioritas tertinggi : 10 dan terendah : 1

Konstanta Prioritas Thread :Thread.MIN_PRIORITY = prioritas thread terendah atau 1 Thread.MAX_PRIORITY = prioritas thread tertinggi atau 10Thread.NORM_PRIORITY = prioritas thread normal atau 5

Setiap Thread di Java memiliki prioritas NORM_PRIORITY sebagai nilai default

Menentukan prioritas thread digunakan metode setPriority(int prioritas)