Bab-5 Penjadwalan Proses(1)

1

Penjadwalan CPU didasarkan pada SO yg
menggunakan prinsip multiprogramming.
Dengan cara mengalihkan kerja CPU untuk
beberapa proses, maka CPU akan semakin
produktif.
 Pada multiprogramming, selalu akan terjadi
beberapa proses berjalan dalam suatu
waktu. Sedangkan pada uniprogramming
hal ini tidak akan terjadi, karena hanya ada
1 proses yg berjalan pada saat tertentu.


Konsep dasar multiprogramming adalah :
suatu proses akan menggunakan CPU
sampai proses tersebut dalam status wait
(mis. meminta I/O) atau selesai.
 Pada saat wait, maka CPU akan nganggur.
Untuk mengatasi hal ini, maka CPU
dialihkan ke program lain pada saat suatu

proses sedang dalam keadaan wait,
demikian seterusnya.


Pada saat CPU nganggur, maka SO harus
menyeleksi proses-proses yg ada di memori
utama (ready queue) untuk dieksekusi.
Seleksi ini disebut dengan shortterm
scheduler (CPU scheduler).
 Scheduler tersebut harus dapat menyeleksi
proses-proses dalam memori utama yg
telah siap untuk dieksekusi, dan
mengalokasikan CPU pada salah satu dari
proses tersebut.


Ada 4 keadaan yg menjadi pertimbangan
bagi penjadwalan oleh CPU, yaitu :
1. Pada saat proses berpindah dari
keadaan

running ke waiting;
2. Pada saat proses berpindah dari
keadaan running ke ready;
3. Pada saat proses berpindah dari
keadaan waiting ke ready;
4. Pada saat proses berhenti.
Jika model penjadwalan yg dipilih adalah
keadaan 1 dan 4, maka ini disebut nonpreemptive. Sebaliknya jika yg digunakan
adalah keadaan 2 dan 3, maka disebut
dengan preemptive.







Pada non-preemptive, jika suatu proses
sedang menggunakan CPU, maka proses
tersebut akan tetap membawa CPU sampai

proses tersebut melepaskannya (berhenti
atau dalam keadaan waiting).
Preemptive scheduling memiliki kelemahan,
yaitu biaya yg dibutuhkan sangat tinggi.
Antara lain harus selalu dilakukan perbaikan
data. Hal ini terjadi jika suatu proses
ditinggalkan dan akan segera dikerjakan
proses yg lain.







Dispatcher adalah suatu modul yg akan
memberikan kontrol pada CPU terhadap
penyeleksian proses yg dilakukan selama shortterm scheduling.
Fungsi-fungsi yg terkandung didalam Dispatcher :
◦ Switching context

◦ Switching ke user-mode
◦ Melompat ke lokasi tertentu pada user program
untuk memulai program
Waktu yg diperlukan dispatcher untuk
menghentikan suatu proses dan memulai untuk
menjalankan proses yg lainnya disebut dengan
dispatch latency.



Beberapa kriteria yg digunakan untuk
perbandingan algoritma penjadwalan CPU
antara lain :
◦ CPU utilization, diharapkan agar CPU selalu dalam
keadaan sibuk. Utilitas CPU dinyatakan dalam
prosentase 0 – 100%. Namun kenyataannya
hanya berkisar antara 40-90%.
◦ Throughput, adalah banyaknya proses yg selesai
dikerjakan dalam satu satuan waktu. Ini hanya
terjadi pada saat CPU sibuk.


◦ Turnaround time, banyaknya waktu yg diperlukan
untuk mengeksekusi proses, dari mulai menunggu
di ready queque, eksekusi oleh CPU, dan
mengerjakan I/O.
◦ Waiting Time, waktu yg diperlukan oleh suatu
proses untuk menunggu di ready queque. Waiting
time ini tidak mempengaruhi eksekusi proses dan
penggunaan I/O.

◦ Response Time, waktu yg dibutuhkan oleh suatu
proses dari minta dilayani hingga ada respon
pertama yg menanggapi permintaan tersebut.
◦ Fairness, meyakinkan bahwa tiap-tiap proses
akan mendapatkan pembagian waktu
penggunaan CPU secara terbuka (fair).


Selanjutnya kriteria yg akan digunakan
untuk membandingkan algoritma

penjadwalan CPU adalah rata-rata waktu
tunggu (Average Waiting Time = AWT),
yaitu total waktu tunggu untuk semua
proses dibagi dengan banyaknya proses.

First-Come-First-Served Scheduling (FCFS)
 Shortest Job First Scheduler (SJF)
 Priority Scheduling
 Round-Robin Scheduling
 Multilevel Queue Scheduling
 Multilevel Feedback Queue
 Two-Level Scheduling


Proses yg pertama kali meminta jatah
waktu untuk menggunakan CPU akan
dilayani terlebih dahulu. AWT dari algoritma
ini cukup besar.
 Misalnya ada 3 proses : P1, P2, dan P3 yang
meminta layanan CPU sebagai berikut :



Proses

Burst Time (ms)

P1

24

P2

3

P3

3

Gant chart :
P1


0

P2

24

27

P3

30

Waktu tunggu yang diberikan untuk tiap-tiap
proses terlihat pada tabel dibawah ini :
Proses

Waiting Time (ms)

P1


0

P2

24

P3

27

Sehingga AWT = (0+24+27)/3 = 17 ms.



Hal ini akan menjadi sangat berbeda jika
urutan kedatangan proses adalah: P2, P3,
baru P1.
P2


0

3

P3

P1

6

30

Waktu tunggu yang diberikan untuk tiap-tiap
proses terlihat pada tabel dibawah ini :
Proses

Waiting Time (ms)

P2


0

P3

3

P1

6

Sehingga AWT = (0+3+6)/3 = 3 ms.

Metode FCFS adalah metode yg sangat
sederhana dan mudah diimplementasikan.
 Namun metode ini memiliki kelemahan,
yaitu dengan adanya convoy effect, yang
akan mengakibatkan membengkaknya AWT
jika proses yg dilayani terlebih dahulu
membutuhkan waktu proses (burst time)
yang sangat lama.


Proses yg memiliki CPU burst paling kecil
akan dilayani terlebih dahulu.
 Misalkan ada 4 proses : P1, P2, P3, dan P4
yang meminta layanan CPU sebagai
berikut :


Proses

Burst Time (ms)

P1

6

P2

8

P3

7

P4

3

Gant chart :
P4

0

3

P1

9

P3

P2

16

24

Waktu tunggu yang diberikan untuk tiap-tiap
proses terlihat pada tabel dibawah ini :
Proses

Waiting Time (ms)

P1

3

P2

16

P3

9

P4

0

Sehingga AWT = (3+16+9+0)/4 = 7 ms.

Meskipun algoritma ini optimal, namun pada
kenyataannya sulit diimplementasikan karena
sulit untuk mengetahui panjang CPU burst
berikutnya. Namun nilai ini dapat diprediksi.
 CPU burst berikutnya biasanya diprediksi
sebagai suatu rata-rata eksponensial yang
ditentukan dari CPU burst sebelumnya atau
“Exponential Average”.


σn+1= α.tn +(1- α). σn
dimana :
σn+1 = panjang CPU burst yg diperkirakan
σn = panjang CPU burst sebelumnya
tn
= panjang CPU burst yang ke-n (sedang berlangsung)
α
= ukuran pembanding antara σn+1 dengan σn (0 s/d 1)







Algoritma SJF adalah suatu kasus khusus dari
priority scheduling. Tiap proses dilengkapi
dengan prioritas. CPU dialokasikan untuk
proses yg memiliki prioritas paling tinggi.
Jika beberapa proses memiliki prioritas yang
sama, maka akan digunakan algoritma FCFS.
Contoh: jika ada 5 proses : P1, P2, P3, P4 dan
P5 dengan CPU burst :
Proses

Burst Time (ms)

Prioritas

P1

10

3

P2

1

1

P3

2

3

P4

1

4

P5

5

2

Gant chart :
P2

0

P5

1

6

P1

P3

16

18

P4

19

Waktu tunggu untuk tiap-tiap proses adalah:
Proses

Waiting Time (ms)

P1

6

P2

0

P3

16

P4

18

P5

1

Sehingga AWT = (6+0+16+18+1)/5 = 8,2
ms.

Prioritas biasanya menyangkut masalah
waktu, memori yang dibutuhkan,
banyaknya file yang boleh dibuka, dan
perbandingan antara rata-rata I/O burst
dengan rata-rata CPU burst.
 Priority Scheduling bersifat preemptive atau
non-preemptive.


Konsep dasar dari algoritma ini adalah
menggunakan time sharing. Pada dasarnya
algoritma ini sama dengan FCFS, hanya saja
bersifat preemptive. Digunakan quantum
time untuk membatasi waktu proses.
 Jika suatu proses memiliki CPU burst lebih
kecil dibandingkan dengan quantum time,
maka proses tersebut akan melepaskan CPU
jika telah selesai bekerja, sehingga CPU
dapat segera digunakan oleh proses
selanjutnya.


Sebaliknya, jika suatu proses memiliki CPU
burst yang lebih besar dibandingkan dengan
quantum-time, maka proses tersebut akan
dihentikan sementara jika sudah mencapai
quantum-time, dan selanjutnya mengantri
kembali pada posisi ekor dari ready queue,
CPU kemudian menjalankan proses
berikutnya
 Misalkan ada 3 proses : P1, P2, dan P3 yang
meminta layanan CPU. Jika quantum-time
sebesar 4 Proses
ms, maka : Burst Time (ms)


P1

24

P2

3

P3

3

Gant chart :
P1

0

P2

4

7

P3

10

P1

14

P1

18

P1

22

26

P1

P1

30

Waktu tunggu tiap-tiap proses :
Proses

Waiting Time (ms)

P1

0+(10-4) = 6

P2

4

P3

7

Sehingga AWT = (6+4+7)/3 = 5,66 ms.
Hal 24.