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)