Penggantian Rangkaian Urutan CPU dan IO Burst

  Penjadualan CPU Tim Teaching Grant

  Mata Kuliah : Sistem Operasi Kode MK : IT-012336

  Mata Kuliah Sistem Operasi Penjadualan CPU

  Konsep Dasar Kriteria Penjadualan Algoritma Penjadualan Penjadualan Multiple-Processor

  2 Penjadualan Multiple-Processor Penjadualan Real-Time Evaluasi Algorithm

Bab 6. Penjadwalan CPU Konsep Dasar Memaksimalkan kinerja CPU melalui

  multiprogramming CPU–I/O Burst Cycle – Eksekusi proses terdiri dari siklus eksekusi CPU dan I/O wait. terdiri dari siklus eksekusi CPU dan I/O wait. Pendistribusian CPU burst

  Penggantian Rangkaian Urutan CPU dan I/O Burst

  Histogram CPU-burst Times Penjadual CPU Algoritma scheduling:

  Memilih dari proses-proses yang berada di memori (ready

  to execute) dan memberikan jatah CPU ke salah satu proses tersebut.

  Kapan keputusan untuk algoritma dilakukan: Kapan keputusan untuk algoritma dilakukan:

  Saat suatu proses: 1.Switch dari status running ke waiting.

  2.Switch dari status running ke ready.

  3.Switch dari status waiting ke ready.

  4.Terminates. Penjadualan 1 dan 4 termasuk nonpreemptive Bab 6. Penjadwalan CPU 5 Penjaudualan lainnya termasuk preemptive Bab 6. Penjadwalan CPU 6 Dispatcher

  Jenis Penjadualan Preemptive: OS dapat mengambil (secara interrupt, Modul Dispatcher: mengatur dan memberikan kontrol preempt) CPU dari satu proses setiap saat.

  CPU kepada proses yang dipilih oleh “short-term Non-preemptive: setiap proses secara sukarela scheduler”: (berkala) memberikan CPU ke OS.

  switching context switching context switching ke user mode

  Contoh:

  Melompat ke lokasi yang lebih tepat dari user program untuk Penjadualan untuk switch dari running ke wait atau memulai kembali program terminate: non-preemptive .

  Penjadualan proses dari running ke ready: pre-emptive.

  Dispatch latency – terdapat waktu yang terbuang Prasyarat untuk OS real-time system.

  (CPU idle) dimana dispatcher menghentikan satu proses dan menjalankan proses lain.

  Save (proses lama) dan restrore (proses baru).

  Kriteria Penjadualan Kriteria Penjadualan yang Optimal

  Utilisasi CPU: menjadikan CPU terus menerus sibuk (menggunakan CPU semaksimal mungkin).

  Memaksimumkan throughput

  Throughput: maksimalkan jumlah proses yang selesai dijalankan (per satuan waktu).

  Meminimukan turnaround time

  Turn around time: minimalkan waktu selesai eksekusi suatu Turn around time: minimalkan waktu selesai eksekusi suatu

  Meminimumkan waiting time proses (sejak di submit sampai selesai).

  Waiting time: minimalkan waktu tunggu proses (jumlah waktu

  Meminimumkan response time yang dihabiskan menunggu di ready queue).

  Response time: minimalkan waktu response dari sistim terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat. Bab 6. Penjadwalan CPU 9 Bab 6. Penjadwalan CPU 10 Algoritma Penjadualan

  First-Come, First-Served (FCFS) Algoritma:

  First-come, first-served (FCFS)

  Proses yang request CPU pertama kali akan mendapatkan

  Shortest-Job-First (SJF) jatah CPU.

  Sederhana – algoritma maupun struktur data:

  Priority menggunakan FIFO queue (ready queue). menggunakan FIFO queue (ready queue). Round-Robin (RR)

  FIFO: Non preemptive Multilevel Queue

  Timbul masalah “waiting time” terlalu lama jikadidahului oleh proses yang waktu selesainya lama.

  Multilevel Feedback Queue Tidak cocok untuk time-sharing systems.

  Digunakan pada OS dengan orientasi batch job.

  FCFS (Cont.) FCFS (Cont.)

  Example: Process Burst Time Diketahui proses yang tiba adalah P , P , P .

  P

  24

  1

  :

  Gant chart-nya adalah P

  3

  2 P

  3

  3 Diketahui proses yang tiba adalah P Diketahui proses yang tiba adalah P , P , P , P , P . Gant chart- . Gant chart-

  1

  1

  2

  2

  3 nya adalah :

  3

  P1 = ; P2 ; P3 = Waiting time untuk 6 = 0

  3 Average waiting time: (6 + 0 + 3)/3 = 3 Lebih baik dari kasus sebelumnya

  Waiting time untuk P1 = 0; P2 = 24; P3 = 27

  Average waiting time: (0 + 24 + 27)/3 = 17

  Convoy effect proses yang pendek diikuti Bab 6. Penjadwalan CPU 13 proses yang panjang Bab 6. Penjadwalan CPU 14 Shortest-Job-First (SJF)

  Contoh Non-Preemptive SJF Penggabungan setiap proses merupakan panjang dari burst CPU

  Process Arrival Time Burst Time berikutnya. Panjang tersebut digunakan untuk penjadualan proses pada waktu terpendek

  P

  0.0

  7

  1 Terdapat 2 skema : P

  2.0

  4

  2 nonpreemptive – CPU hanya satu kali diberikan pada suatu proses, maka proses tersebut tetap akan memakai CPU hingga

  P P

  4.0

  4.0

  1

  1

  3 proses tersebut melepaskannya

  P

  5.0

  4

  4 preemptive –jika suatu proses tiba dengan panjang CPU burst lebih kecil dari waktu yang tersisa pada ekseksusi proses yang

  SJF (non-preemptive) sedang berlangsung, maka dijalankan preemtive. Skema ini

  P P P P dikenal dengan Shortest-Remaining-Time-First (SRTF). 1 3 2 4 SJF akan optimal, keteika rata-rata waktu tunggu minimum untuk set proses yang diberikan

  3

  7

  8

  12

  16

  Contoh Preemptive SJF Penjadualan Prioritas

  :

  Algoritma

  Process Arrival TimeBurst Time Setiap proses akan mempunyai prioritas (bilangan integer).

  CPU diberikan ke proses dengan prioritas tertinggi (smallest integer º P

  0.0

  7

  1 highest priority).

  Preemptive: proses dapat di interupsi jika terdapat prioritas lebih tinggi P

  2.0

  4

  2 yang memerlukan CPU.

  Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada P P

  4.0

  4.0

  1

  1

  3 saat pemakain time-slice habis.

  3

  SJF adalah contoh priority scheduling dimana prioritas ditentukan oleh P

  5.0

  4

  4 waktu pemakaian CPU berikutnya.

  Problem = Starvation

  SJF (preemptive) Proses dengan prioritas terendah mungkin tidak akan pernah

  P P P P P P 1 2 3 2 4 1 dieksekusi Solution = Aging

  Prioritas akan naik jika proses makin lama menunggu waktu jatah

  11

  16

  2

  4

  5

7 CPU.

  Average waiting time = (9 + 1 + 0 +2)/4 - 3 Bab 6. Penjadwalan CPU 17 Bab 6. Penjadwalan CPU 18 Contoh RR (Q= 20) Round Robin (RR)

  Process Burst Time Setiap proses mendapat jatah waktu CPU (time

  P

  53

  1 slice/quantum) tertentu misalkan 10 atau 100 milidetik.

  P

  17 Setelah waktu tersebut maka proses akan di-preempt dan

  2 dipindahkan ke ready queue.

  68 P

  3 Adil dan sederhana. Adil dan sederhana.

  P P

  24

  24

  4

  4 Jika terdapat n proses di “ready queue” dan waktu quantum q Gantt Chart

  (milidetik), maka: Maka setiap proses akan mendapatkan 1/n dari waktu CPU.

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

  20 37 57 77 97 117 121 134 154 162

  Performance Tipikal: lebih lama waktu rata-rata turnaround

  q besar ⇒ FIFO

  dibandingkan SJF, tapi mempunyai response terhadap q kecil ⇒ q harus lebih besar dengan mengacu pada context user lebih cepat.

  Waktu Kuantum dan Waktu Context Switch

  Penjadualan Antrian Multitingkat Kategori proses sesuai dengan sifat proses:

  Interaktif (response cepat) Batch dll

  Partisi “ready queue” dalam beberapa tingkat

  22 Partisi “ready queue” dalam beberapa tingkat (multilevel) sesuai dengan proses:

  Setiap queue menggunakan algoritma schedule sendiri Foreground proses (interaktif, high prioritiy): RR Background proses (batch, low priority): FCFS Setiap queue mempunyai prioritas yang fixed. Bab 6. Penjadwalan CPU Penjadualan Antrian Multitingkat Antrian Multitingkat Berbalikan Suatu proses dapat berpindah diantara

21 Bab 6. Penjadwalan CPU

  beragam antrian; Perlu feedback untuk penentuan proses naik/turun prioritasnya (dinamis): naik/turun prioritasnya (dinamis):

  Aging dapat diimplementasikan sesuai dengan lama proses pada satu queue. Suatu proses yang menggunakan CPU sampai habis (tanpa I/O wait) => CPU-bound (bukan proses interaktif) dapat dipindahk ke queue dengan prioritas lebih rendah

  Antrian Multitingkat Berbalikan Penjadualan Multiple-Processor Penjadualan CPU lehih kompleks ketika terdapat multiple Processor Processor yang homogen termasuk ke dalam multiprocessor Homogeneous processors within a multiprocessor. Load sharing Asymmetric multiprocessing – hanya ada satu processor yang dapat mengakses struktur sistem data,only one processor accesses the system data structures,sehingga meringankan kebutuhan Bab 6. Penjadwalan CPU 25 sharing data Bab 6. Penjadwalan CPU 26 Penjadualan Real-Time

  Penjadualan Real-Time Hard real-time systems

  Soft real-time systems

  Task kritis harus selesai dengan garansi waktu tertentu

  Membutuhkan penggunaan skema prioritas

  OS akan melacak lamanya task tersebut dieksekusi (real

  Multimedia, highly interactive graphics

  time):

  Prioritas tidak menurunkan over time Prioritas tidak menurunkan over time

  Mengetahui lama waktu system call, fungsi dan response Mengetahui lama waktu system call, fungsi dan response dari hardware

  Dispancy latency yang rendah : Melakukan prediksi apakah task tersebut dapat dijalankan.

  Penyisipan point preemsi sepanjang waktu system

  Mudah dilakukan untuk OS khusus pada peralatan/

  calls

  pemakaian khusus (single task: control system)

  Membuat keseluruhan kernel preemptable

  Sulit untuk time-sharing sistim, virtual memory (faktor latency sebagian program aktif ada di disk).