CPU Scheduling Fix

of 40 /40
Penjadwalan CPU Konsep dasar Kriteria penjadwalan Algoritma penjadwalan Penjadwalan Real-Time Penjadwalan Thread Penjadwalan Java Thread

Embed Size (px)

Transcript of CPU Scheduling Fix

Penjadualan CPU

Penjadwalan CPUKonsep dasarKriteria penjadwalanAlgoritma penjadwalanPenjadwalan Real-TimePenjadwalan ThreadPenjadwalan Java Thread Konsep DasarMemaksimalkan kinerja CPU melalui multiprogramming

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

Siklus CPUI/O Burst

Urutan CPU-I/O BurstHistogram Waktu CPU-I/O BurstPenjadwalan 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:

Proses running berubah dari keadaan running ke waitingRunning proses berakhirWaiting proses menjadi ready Proses yang sedang berjalan berubah dari running ke readyReadyRunningWaiting 1324NonPreemptivePreemptiveKriteria PenjadwalanUtilisasi CPUmenjadikan 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 OptimalMemaksimumkan utilisasi CPUMemaksimumkan throughputMeminimumkan turnaround time Meminimumkan waiting time Meminimumkan response time

ALGORITMA PENJADWALANPenjadwalan satu tingkat First Come First Served (FCFS) Shortest Job First (SJF) Prioritas Scheduling Round Robin (RR)

Penjadwalan multi tingkat Multilevel Queue SchedulingMultilevel Feedback Queue Scheduling

First Come First Served (FCFS)Penjadwalan ini murni antrian, tanpa prioritas tanpa preempsi.Proses Burst time (ms)P1P2P3P420573P1P2P3P40 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)P1P2P3P40202532AWT adalah = (0+20+25+32)/4 = 19,25 msFirst Come First Served (FCFS) cont.P2P3P4P10 5 12 15 35 jika urutan kedatangannya diubah: P2, P3, P4, P1 Gantt Chart untuk ini adalah:Proses Burst time (ms)P1P2P3P420573Maka AWT adalah = (0+5+12+15)/4 = 8 msFirst Come First Served (FCFS)contDari 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)P1P2P3P420573P4P2P3P10 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)P1P2P3P415380AWT adalah = (15+3+8+0)/4 = 6,5 msShortest Job First (SJF)contProses Arrival TimeBurst Time (ms)P1P2P3P4012310385P1P2P4P3P1Urutan kedatangan dimulai dari P1, P2, P3, P4 Gantt Chart untuk ini adalah:Maka waktu tunggu untuk tiap proses :Proses Wait Time(ms)P1P2P3P40+(17-1) = 161 - 1 = 09 2 = 74 3 = 1AWT adalah = (16+0+7+1)/4 = 6 ms0 1 4 9 17 26 Shortest Job First (SJF)contAlgoritma 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:

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 SchedulingPenjadualan 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)PriorityP1P2P3P4P5P6 947316423516P5P2P3P1P4P6Gantt Chart untuk ini adalah:Maka waktu tunggu untuk tiap proses :Proses Wait Time(ms)P1P2P3P4P5P671516019AWT adalah = (7+1+5+16+0+19)/6 = 8 ms0 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

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.

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 berikutnyaRound Robin (RR) (cont..)Proses Burst time (ms)P1P2P3P420533P1P2P3P4P1P1P10 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 msMaka waktu tunggu untuk tiap proses :Proses Wait Time(ms)P1P2P3P40 +(17-6) = 1161114Sehinga AWT adalah = (11+6+11+14)/4 = 7 msGantt 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 queuePada 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 queuecontAlgoritma 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 :Hard real timeSoft real time

Penjadwalan Real-TimeHard Real TimeMewajibkan proses selesai dalam kurun waktu tertentu.Jika proses tidak selesai sesuai waktunya, maka proses tersebut akan gagal di ekseskusi.Contoh:Alat pacu jantungPenjadwalan Real-Timecont...Soft Real TimeMenerapkan adanya prioritas dalam pelaksanaan tugas.Adanya toleransi waktu.Contoh:Transmisi videoSistem 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 denganmeminimalkan 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 ThreadContention 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_RRHampir 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 MultitaskingContoh 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)