YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: 05 Penjadwalan CPU.pdf

1

Bab 5: Penjadwalan CPU

� Konsep Dasar� Kriteria Penjadwalan� Algoritma Penjadwalan : FCFS, SJF, Priority, RR� Algoritma Penjadwalan : FCFS, SJF, Priority, RR� Penjadwalan Multiple-Processor� Penjadwalan Real-Time� Evaluasi Algoritma

6.1

Konsep Dasar

� Dengan sistem multiprogramming akan diperoleh utilitas CPU yang maksimal

� Pada saat proses dieksekusi, terdiri dari siklus eksekusi � Pada saat proses dieksekusi, terdiri dari siklus eksekusi CPU dan menunggu I/O (CPU–I/O Burst Cycle)

6.2

Page 2: 05 Penjadwalan CPU.pdf

2

Urutan CPU dan I/O Bursts

6.3

Histogram waktu CPU-burst

6.4

Page 3: 05 Penjadwalan CPU.pdf

3

CPU Scheduler

� Memilih diantara proses yang ada di memori yang siap dieksekusi (ready) dan mengalokasikan CPU untuk satu diantara proses-proses tersebutdiantara proses-proses tersebut

� Keputusan penjadwalan CPU diambil pada saat proses:1. Berpindah dari state running ke waiting.2. Berpindah dari state running ke ready.3. Berpindah dari state waiting ke ready.4. Diterminasi.

� Penjadwalan nomor 1 dan 4 tidak dapat ditunda (nonpreemptive).

6.5

(nonpreemptive).� Penjadwalan nomor 2 dan 3 dapat ditunda (preemptive).

Dispatcher

� Modul dispatcher module memberi kontrol ke CPU untuk memilih proses dengan short-term scheduler; yang melibatkan:melibatkan:� switching context� switching ke user mode� Melompat ke lokasi yang tepat pada user program untuk

restart progra

� Dispatch latency – waktu yang dibutuhkan dispatcher untuk menghentikan satu proses dan memulai proses lain yang sedang berjalan

6.6

Page 4: 05 Penjadwalan CPU.pdf

4

Kriteria Penjadwalan

� Utilitas CPU – membuat CPU sesibuk mungkin� Throughput – jumlah proses yang menyelesaikan � Throughput – jumlah proses yang menyelesaikan

eksekusi pada satu unit waktu� Waktu Turnaround – jumlah waktu untuk mengeksekusi

proses tertentu� Waktu Tunggu – jumlah waktu suatu proses menunggu

dalam ready queue� Waktu Respon – jumlah waktu yang dibutuhkan dari

sebuah permintaan dikirim sampai mendapatkan respon

6.7

sebuah permintaan dikirim sampai mendapatkan respon pertama, bukan output (untuk lingkungan time-sharing)

Kriteria Optimal

� Untilitas CPU maksimal� Throughput maksimal� Waktu turnaround minimal� Waktu turnaround minimal� Waktu tunggu minimal� Waktu respon minimal

6.8

Page 5: 05 Penjadwalan CPU.pdf

5

Penjadwalan First-Come, First-Served (FCFS) Proses Burst Time

P1 24P2 3P3 3P3 3

� Diasumsikan proses dapat dengan urutan: P1 , P2 , P3

Gantt Chart untuk penjadwalan diatas adalah:

P1 P2 P3

6.9

� Waktu Tunggu untuk P1 = 0; P2 = 24; P3 = 27� Rata-rata waktu tunggu: (0 + 24 + 27)/3 = 17� Waktu Turnaround untuk P1 = 24; P2 = 27; P3 = 30� Rata-rata waktu turnarount: (24+27+30)/3=27� Bersifat Non preemptive (tidak dapat ditunda)

24 27 300

Penjadwalan FCFS (Cont.)

Diasumsikan proses dapat dengan urutan P2 , P3 , P1 .

� Gantt chart untuk penjadwalah tersebut:� Gantt chart untuk penjadwalah tersebut:

� Waktu tunggu untuk P1 = 6; P2 = 0; P3 = 3� Rata-rata waktu tunggu: (6 + 0 + 3)/3 = 3� Waktu turnaround untuk P1 = 30; P2 = 3; P3 = 6

P1P3P2

63 300

6.10

� Waktu turnaround untuk P1 = 30; P2 = 3; P3 = 6� Rata-rata waktu turnarount: (30+3+6)/3 = 13� Hasilnya lebih baik dari sebelumnya, dimana proses

sebelumnya terjadi convoy effect dimana proses kecil berada di belakang proses besar

Page 6: 05 Penjadwalan CPU.pdf

6

Penjadwalan Shortest-Job-First (SJF)

� Hubungan antar proses berdasarkan panjang CPU burst berikutnya. CPU dialokasikan untuk proses yang mempunyai waktu terpendek terlebih dahulumempunyai waktu terpendek terlebih dahulu

� Terdapat 2 skema: � nonpreemptive – ketika CPU diberikan ke proses, maka

proses tidak dapat ditunda sampai menyelesaikan CPU burst nya

� preemptive – jika proses baru datang dengan CPU burst lebih kecil dibandingkan sisa waktu proses yang sedang dieksekusi, maka proses ditunda dan diganti dengan proses baru. Skema ini disebut juga dengan Shortest-Remaining-

6.11

baru. Skema ini disebut juga dengan Shortest-Remaining-Time-First (SRTF).

� SJF optimal – menghasilkan rata-rata waktu tunggu minimal pada sekumpulan proses

Process Arrival Time Burst TimeP1 0.0 7P 2.0 4

Contoh SJF Non-Preemptive

P2 2.0 4P3 4.0 1P4 5.0 4

� SJF (non-preemptive)

P1 P3 P2

73 160

P4

8 12

6.12

� Waktu tunggu untuk P1 = 0; P2 = 6; P3 = 3; P4 = 7� Rata-rata waktu tunggu = (0 + 6 + 3 + 7)/4 = 4� Waktu turnaround untuk P1 = 7; P2 = 10; P3 = 4; P4 = 11� Rata-rata waktu tunggu = (7 + 10 + 4 +11)/4 = 8

73 160 8 12

Page 7: 05 Penjadwalan CPU.pdf

7

Contoh SJF Preemptive

Process Arrival Time Burst TimeP1 0.0 7P 2.0 4P2 2.0 4P3 4.0 1P4 5.0 4

� SJF (preemptive)

P1 P3P2

11

P4P2 P1

16

6.13

� Waktu tunggu untuk P1 = 9; P2 = 1; P3 = 0; P4 = 2� Rata-rata waktu tunggu = (9 + 1 + 0 + 2)/4 = 3� Waktu turnaround untuk P1 = 16; P2 = 5; P3 = 1; P4 = 6� Rata-rata waktu tunggu = (16 + 5 + 1 + 6)/4 = 7

42 110 5 7 16

Menentukan Panjang CPU Burst berikutnya

� Hanya mengestimasi panjang CPU burst.� Dapat dilakukan menggunakan panjang CPU burst

sebelumnya, menggunakan exponential averaging.sebelumnya, menggunakan exponential averaging.

:Tentukan 4.10 , 3.

berikutnyaburst CPUuntuk prediksi nilai 2.

keburst CPU dari aktual panjang 1.

1

≤≤=

=

+

αατ n

n nt

( ) .t nnn ταατ −+== 11

6.14

( ) .t nnn ταατ −+== 11

Page 8: 05 Penjadwalan CPU.pdf

8

Prediksi Panjang CPU Burst berikutnya

6.15

Contoh Exponential Averaging

� α =0� τn+1 = τn

� Histori saat ini tidak dihitung.� Histori saat ini tidak dihitung.

� α =1� τn+1 = tn� Hanya menghitung CPU burst aktual terakhir.

� Jika kita menurunkan formula, didapatkan:τn+1 = α tn+(1 - α) α tn -1 + …

+(1 - α )j α tn -1 + …+(1 - α )n=1 t τ

6.16

+(1 - α )n=1 tn τ0

� Karena baik α dan (1 - α) kurang dari atau sama dengan 1, setiap successor mempunyai nilai yang lebih rendah dari predecessor.

Page 9: 05 Penjadwalan CPU.pdf

9

Penjadwalan Priority

� Setiap proses mempunyai nilai prioritas (integer)� CPU dialokasikan untuk proses dengan prioritas tertinggi

(nilai integer terkecil = prioritas tertinggi).(nilai integer terkecil = prioritas tertinggi).� Preemptive� nonpreemptive

� SJF adalah penjadwalan prioritas dimana prioritasnya adalah berdasarkan hasil prediksi waktu CPU burst berikutnya.

� Problem ≡ Starvation – proses prioritas rendah tidak pernah dieksekusi

6.17

pernah dieksekusi� Solution ≡ Aging – seiring waktu berjalan meningkatkan

prioritas proses.

Process Arrival Time Burst Time PriorityP1 0.0 7 3P 2.0 4 1

Contoh Priority Non-Preemptive

P2 2.0 4 1P3 4.0 1 3P4 5.0 4 2

� Priority (non-preemptive)

P1 P2 P4

7 160

P3

11 15

6.18

� Waktu tunggu untuk P1 = 0; P2 = 5; P3 = 11; P4 =6� Rata-rata waktu tunggu = (0 + 5 + 11 + 6)/4 = 4.5� Waktu turnaround untuk P1 = 7; P2 = 9; P3 = 12; P4 = 10� Rata-rata waktu tunggu = (7 + 9 + 12 +10)/4 = 9.5

7 160 11 15

Page 10: 05 Penjadwalan CPU.pdf

10

Process Arrival Time Burst Time PriorityP1 0.0 7 3P 2.0 4 1

Contoh Priority Preemptive

P2 2.0 4 1P3 4.0 1 3P4 5.0 4 2

� Priority (non-preemptive), asumsi apabila prioritas sama, diambil yang datang lebih dahulu

P1 P2 P4 P1 P3

6.19

� Waktu tunggu untuk P1 = 10; P2 = 0; P3 = 11; P4 =1� Rata-rata waktu tunggu = (10 + 0 + 11 + 1)/4 = 4.5� Waktu turnaround untuk P1 = 15; P2 = 4; P3 = 12; P4 = 5� Rata-rata waktu tunggu = (15 + 4 + 12 +5)/4 = 9

6 160 10 152

Round Robin (RR)

� Setiap proses mendapatkan unit waktu tertentu dari waktu CPU (waktu quantum), biasanya 10-100 millisecond. Setelah waktu selesai, proses ditunda dan millisecond. Setelah waktu selesai, proses ditunda dan ditambahkan pada ready queue.

� Jika terdapat n proses pada ready queue dan waktu quantum q, kemudian setiap proses mendapatkan waktu CPU 1/n pada bagian waktu q tersebut. Tidak ada proses yang menunggu lebih dari (n-1)q unit waktu.

� Performansi� q besar � FIFO

6.20

� q besar � FIFO� q kecil � q harus lebih besar dari context switch, jika tidak

terjadi overhead yang tinggi.

Page 11: 05 Penjadwalan CPU.pdf

11

Contoh RR dengan Waktu Quantum = 20

Process Burst TimeP1 53P 17P2 17P3 68P4 24

� Gantt chart :

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

6.21

� Biasanya, RR mempunyai rata-rata waktu tunggu yang lebih besar dari SJF, tetapi respon yang lebih baik

0 20 37 57 77 97 117 121 134 154 162

Waktu Quantum dan waktu Context Switch

6.22

Page 12: 05 Penjadwalan CPU.pdf

12

Waktu Turnaround dengan Waktu Quantum yang Bervariasi

6.23

Multilevel Queue

� Ready queue dibagi ke dalam antrian yang terpisahforeground (interactive)background (batch)background (batch)

� Setiap antrian mempunyai algoritma penjadwalan masing-masingforeground – RRbackground – FCFS

� Penjadwalan yang harus dilakukan antara antrian� Penjadwalan Prioritas Tetap (Fixed priority scheduling);

(misalnya, melayani semua foreground kemudian

6.24

(misalnya, melayani semua foreground kemudian background). Kemungkinan starvation.

� Time slice – setiap antrian mendapat sejumlah waktu CPU yang dapat digunakan diantara proses-prosesnya, yaitu, 80% untuk foreground pada RR dan 20% untuk background pada FCFS

Page 13: 05 Penjadwalan CPU.pdf

13

Penjadwalan Multilevel Queue

6.25

Multilevel Feedback Queue

� Proses dapat berpindah antar beberapa antrian; aging juga dapat diimplementasikan.

� Multilevel-feedback-queue scheduler ditentukan dengan � Multilevel-feedback-queue scheduler ditentukan dengan parameter berikut:� Jumlah queue� Algoritma penjadwalan untuk setiap antrian� Metode digunakan untuk menentukan kapan upgrade

proses� Motode digunakan untuk menentukan kapan menurunkan

proses

6.26

� Metode digunakan untuk menentukan antrian mana dari proses yang masuk ketika proses memerlukan layanan

Page 14: 05 Penjadwalan CPU.pdf

14

Contoh Multilevel Feedback Queue

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

� Penjadwalan� Job baru masuk antrian Q0 yang melayani FCFS. Jika

mendapatkan CPU, job menerima 8 millisecond. Jika tidak selesai dalam 8 millisecond, job dipindah ke antrian Q1.

� Pada job Q1 melayani lagi FCFS dan menerima 16 millisecond tambahan. Jika masih belum selesai, ditundan dan dipindah ke antrian Q .

6.27

dan dipindah ke antrian Q2.

Multilevel Feedback Queues

6.28

Page 15: 05 Penjadwalan CPU.pdf

15

Penjadwalan Multiple-Processor

� Penjadwalan CPU lebih kompleks ketika tersedia multiple CPU.

� Homogeneous processors dalam multiprocessor.� Homogeneous processors dalam multiprocessor.� Load sharing� Asymmetric multiprocessing – hanya satu prosessor yang

mengakses struktur data sistem, mengurangi kebutuhan data sharing

6.29

Penjadwalan Real-Time

� Hard real-time – dibutuhkan untuk menyelesaikan critical task dalam sejumlah waktu yang dijaminkan.

� Soft real-time computing – membutuhkan proses kritis � Soft real-time computing – membutuhkan proses kritis berdasarkan prioritas.

6.30

Page 16: 05 Penjadwalan CPU.pdf

16

Dispatch Latency

6.31

Evaluasi Algoritma

� Deterministic modeling – mengambil beban kerja yang telah ditetapkan dan mendefinisikan kinerja setiap algoritma untuk beban kerja itu.algoritma untuk beban kerja itu.

� Queueing models� Implementasi

6.32

Page 17: 05 Penjadwalan CPU.pdf

17

Evaluasi Penjadwal CPU dengan Simulasi

6.33

Penjadwalan Solaris 2

6.34

Page 18: 05 Penjadwalan CPU.pdf

18

Prioritas Windows 2000

6.35


Related Documents