CPU Scheduling Fix

Post on 11-Jul-2016

295 views 2 download

Transcript of CPU Scheduling Fix

Penjadwalan CPUKonsep dasarKriteria penjadwalanAlgoritma penjadwalanPenjadwalan Real-TimePenjadwalan ThreadPenjadwalan Java Thread

Konsep DasarMemaksimalkan kinerja CPU

melalui multiprogramming

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

Siklus CPU–I/O Burst

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

Penjadwalan CPUAlgoritma scheduling:

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

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

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.

Kriteria Penjadwalan yang Optimal

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

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

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

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

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.

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

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

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.

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.

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.

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.

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

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.

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

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 :

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.

Round Robin (RR) (cont..)

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

Antrian Multi Tingkat (Multi level queue)cont…

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

Feedback multi level queuecont…

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

Ada 2 model pada penjadwalan real-time, yaitu :

1. Hard real time2. Soft real time

Penjadwalan Real-Time

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...

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...

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...

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

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...

Penjadwalan Pthread

Memiliki 2 kelas penjadwalan untuk thread real-time:

1. SCHED_FIFO 2. SCHED_RR

Penjadwalan ThreadCont..

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..

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..

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

Contoh metode yield()

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

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

} }

}); mythread.start();

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)