Cakupan Materi :
1. Penjadwalan CPU
2. Round Robbin (RR)
3. First –in, First –out (FIFO)
4. Shortest Remaining First (SRF)
5. Algoritma Shortes Job First (SJF)
IV
I. Penjadwalan CPU
I. Penjadwalan CPU
Pada modul sebelumnya kita telah membahas beberapa proses dan
thread serta konsep dasar dalam manajemen proses. Masihkan kita ingat apa
itu proses?. Ketika komputer multiprogram memiliki kemampuan proses atau
thread yang sama untuk CPU (Central Processing Unit). Situasi ini terjadi
setiap dua kali atau lebih proses dan thread secara bersamaan dalam keadaan
Ready. Jika hanya satu CPU yang tersedia, pilihan harus dibuat proses mana
yang akan dijalankan selanjutnya itu yang disebut dengan penjadwalan.
Tugas utama dari system operasi salah satunya adalah melakukan
penjadwalan tersebut. Penjadwalan CPU itu sangan penting, karena setiap
komputer mempunyai CPU yang dinamakan central adalah pusat, dapat
diartikan unit pusat untuk pemrosesan, artinya ada proses-proses yang di
kontrol, salah satunya adalah melakukan penjadwalan. Proses sendiri adalah
tugas (task) yang diberikan oleh user kepada computer, dan tugas itu akan di
pecah oleh CPU untuk dilakukan penjadwalan. Jadi sudahkah Anda
memahami tentang konsep dasar dari Penjadwalan CPU?.
Jika sudah memahami konsep dasar dari penjadwalan CPU kita akan
mempelajari tentang beberapa Algoritma dalam penjadwalan CPU, adapun
bahasan yang akan kita bahas pada Bab IV kali ini adalah Algoritma
Penjadwalan CPU antara lain adalah:
1. Round - Robbin (RR).
2. First In First Out (FIFO).
3. Shortes Remaining First (SRF).
4. Shortes Job First (SJF).
II. Algoritma Penjadwalan Round- Robin (RR)
Salah satu algoritma tertua, paling sederhana, paling adil, dan paling
banyak digunakan adalah algoritma round robin, algoritma yang
menggunakan bilangan real/riil. Pada algoritma ini setiap proses dianggap
penting maka diberi interval waktu dalam penggunaan prosesor yang
31
II. Algoritma Round -Robbin (RR)
disebut dengan Quantum (Q), dalam algoritma ini ada beberapa ketentuan
untuk menggunakan penjadwalan Round-Robin diantaranya adalah:
1. Jika (Q) quantum habis dan proses belum selesai maka proses akan
dialihkan statusnya memenjadi ready,
2. Jika (Q) quantum belum habis dan proses sedang menunggu even
atau operasi I/O maka status peroses menjadi bloked,
3. Jika (Q) quantum belum habis tetapi proses telah selesai maka
proses akan diakhiri dan penjadwalan akan dijalankan untuk memilih
proses lain untuk di eksekusi.
Sangat mudah dan sederhana, maka kita bisa langsung untuk
melakukan percobaan dalam penjadwalan algoritma Round – Robin, kita
ambil contoh bahwa sebuah proses bisa dilambangkan (P), jika ada (P1),
(P2), (P3), (P4) itu artinya terdapat 4 Proses, dalam setiap proses
membutuhkan waktu tunggu atau Quantum yang dilambangkan dengan (Q)
dan memiliki satuan milidetik (md), lalu setiap proses selalu memiliki
rentang waktu pengerjaan yang disebut Burst Time (BT).Untuk mengetahui
bagaimana cara kerja algoritma ini kita perlu melakukan latihan seperti
dibawah ini:
1. Diketahui ada 4 Proses dengan waktu datang 1,2,3,4 dan rentan
waktu pengerjaan masing-masing, 53,17, 68, dan 24.
2. Memiliki waktu tunggu 20 milidetik (md).
Maka dapat diselesaikan dengan langkah seperti ini:
1. Membuat tabel proses dengan waktu kedatangan dan Burst Time
Proses Arrived Time Burst Time
P1 1 53
P2 2 17
P3 3 68
P4 4 24
32
2. Membuat Gantt Chart dengan quantum 20 milidetik
Artinya proses pertama dimulai dari 20, kemudian dilanjutkan pada
proses ke 2,3,4 jika masih ada rentan waktu tunggu tersisa makan
akan diselesaikan terlebih dahulu dan melanjutkan proses
berikutnya, jika proses berikutnya lebih pendek maka akan cepat
selesai tidak perlu menunggu proses yang panjang selesai.
3. Menghitung Waktu Tunggu :
P1 = Proses Eksekusi – Waktu datang – Burst Time
P1 = 134 – 1 – 53 = 80
P2 = 37 – 2 – 17 =18
P3 = 162 – 3 – 68 = 91
P4= 121 – 4 – 24 = 93
Rata-rata Waktu Tunggu =( 80+18+91+93 ) / 4 = 70.5
33
III. Algoritma FIFO
4. Menghitung waktu penyelesaiannya atau Turn Around Time:
Waktu Tunggu + Burst Time
P1 = 80 + 53 = 133
P2 = 18 + 17 = 35
P3 = 91 + 68 = 159
P4 = 93 + 24 = 117
Rata-rata Turn Around Time = (133+35+159+117) / 5 = 111
III. Algoritma First –in, First –out ( FIFO)
FIFO adalah penjadwalan yang mana CPU akan melayani siapa saja
yang akan datang terlebih dahulu tanpa mementingkan prioritas, saat
proses mendapatkan jatah waktu pemroses, proses dijalankan sampai
selesai, dan itu akan mengakibatkan task lama task pendek menunggu,
task tidak penting yang penting adalah waktu datang, hal ini bisa saja waktu
datang task pertama tidak begitu penting, akan dilayani terlebih dahulu
meskipun ada task yang penting sedang menunggu atau sedang
mengantri.
Contoh algoritma FIFO
Jika diketahui proses 1,2 dan 3 datang dengan memiliki waktu kedatangan
0,2,3, dan memiliki Burst Time 24, 3,3 maka dapat dibuat tabel seperti
berikut:
1. Tabel proses dan burst time
Proses Arrived Time Burst Time
P1 0 24
P2 2 3
P3 3 3
34
IV. Algoritma SRF
2. Membuat Gant Chart
3. Rata-rata waktu tunggu:
Lama proses – waktu datang – burst time
P1 = 24 – 0 – 24 = 0
P2 = 27 – 2 – 3 = 22
P3 = 30 – 3 – 3 = 24
Rata-rata Waktu tunggu adalah (0+22+24) / 3 = 16
4. Menghitung waktu penyelesaiannya atau Turn Around Time:
Waktu Tunggu + Burst Time
P1 = 0 + 24 =24
P2 = 22 + 3 =25
P3 = 24 + 3 =27
Rata-rata Waktu penyelesaiannya atau Turn Around Time adalah
(24+25+27) / 3 = 25.33333
IV. Shortest Remaining First (SRF)
Shortest Remaining First (SRF) adalah penjadwalan yang bersifat
dinamis, proses dengan waktu jalan terendahakan dijalankan terlebih
dahulu, meskipun proses-proses itu baru datang, pada SRF proses yang
35
baru datang bisa saja dikerjakan terlebih dahulu jika dia mempunyai sisa
waktu jalan yang lebih rendah.Algoritma ini berlaku jika ada proses yang
datang secara bersamaan dan inggin memperebutkan sumberdaya yang
ada.
Sebagai contoh :
1. Terdapat 3 proses dengan waktu kedatangan dan burst time seperti
dibawah ini:
Proses Arrived Time Burst Time
P1 4 2
P2 3 2
P3 4 4
P4 0 6
Dari tabel diatas terlihat proses yang datang lebih awal adalah P4 yaitu
0, sehingga pada saat yang sama proses lain belum ada yang minta di
eksekusi
2. Membuat Gantt Chart
36
Diawalai dengan P4 dengan burst time 6 berarti disaat yang bersamaan
pada milidetik ke 3 P2 datang, diwaktu 4 , P1 dan P3 datang bersamaan.
SRF sifaatnya preemptive sehingga P4 dan P2 akan dibandingkan
untuk menemukan siapa yang didahulukan. ( maka yang memiliki Burst
time lebih sedikit yang akan didahulukan)
diwaktu 4, P1 dan P3 datang bersama sehingga harus ditentukan dulu
mana yang didahulukan:
P1: P2 : P3 : P4
2 :1 :4 :3
Berarti P2 Lanjut P1, lalu P4 dan terakhir P3
3. Menghitung Waktu tunggu
(waktu proses – waktu kedatangan)
P1 = 5-4 = 1
P2 = 3-3 = 0
P3 = 10-4 =6
P4 = (0-0) +(7-3) = 4
Total = 11
Rata-rata waktu tunggu : 11/4 = 2.75
4. Menghitung waktu selesai proses (Turn Around Time)
(Waktu selesai - waktu kedatangan)
P1 = 7-4 = 3
P2 = 5-3 = 2
P3 = 14 -4 = 10
P4 = 10 - 0 = 10
Total = 25
Rata-rata waktu selesai proses 25/4 = 6.25
37
V. Algoritma SJF
V. Algoritma Shortes Job First (SJF)
Algoritma penjadwalan SJF ini mempunyai dua strategi yaitu Preemptive
dan Non Preemptive (tidak berpreoritas) . Asumsi waktu running (lama waktu
eksekusi ) diketahui Proses dengan lama waktu eksekusi paling singkat akan
dijadwalkan terlebih dahulu. kelebihan dari algoritma ini adalah efisiensi yang
tinggi dan turn around time yang rendah. Langsung pada contoh kasusnya, jika
terdapat 5 proses dengan waktu kedatangan 0,2,3,5,9 dan burst time 12, 8, 5, 2,
1 maka dapat diselesaikan dengan cara:
1. Buat tabel Proses nya
Proses Arrived time Burst Time
P1 0 12
P2 2 8
P3 3 5
P4 5 2
P5 9 1
2. Gantt Chart
38
3. Mencari Waktu tunggu
Proses Ekseskusi - Waktu datang
P1 = 0
P2 =20 – 2 = 18
P3 = 15 – 3 =12
P4 = 13 – 5 = 8
P5 = 12 – 9 =3
Rata-rata waktu tunggu (0+18+12+8+3)/5 = 8.5
Preventif
Tabel proses tetap sama karena nilainya sama namun berubah pada
Gantt Chart
1. Tabel Gantt Chart
0 2 3 5 7 9 10 11 18 28
Pada proses 1 dicek apakah dari burst time 12 ada proses yang
datang, ternyata ada P2(8) lalu ada sisa waktu 2 dari waktu yang
dieksekusi jadi 10, P1 bisa diinterupsi P2, sisa 2 lalu ada datang P3
membawa burst time 5 lalu dibandingkan P2 jika lebih kecil P3 maka
diambil alih, maka P3 dapat diinterupsi P2,P3 dieksekusi 5 membawa
burst time 2, P4 lihat burst timenya (2) diinterupsi dan lihat urutan burst
time terpendek. P3 terpendek lalu dieksekusi lihat apa ada yang
datang? Ternyata ada P5 datang tapi burst timenya 1, maka selesai P3,
39
lihat ada sisa dan pada burst time ada P5 lalu dieksekusi P2 dan
terakhir dieksekusi P1
2. Menghitung Waktu tunggu ( Waiting Time)
P1 = 0+(18-2) = 16
P2 = 0 +(11-3) = 9
P3 = 0 + (7-5) = 2
P4 = 0
P5 = 10-9 = 1
Rata-rata waktu tunggu = (16+9+2+1) / 5 = 5,4 md
Latihan
Pada Bab IV ini diharapkan Anda dapat berlatih secara mandiri, sebagai
bagian dari Latihan anda bisa melakukan penyelesaian percobaan
dengan diketahui dari Tabel berikut dengan Q= 3 :
Proses Arrived time Burst Time
P1 0 5
P2 1 8
P3 2 3
P4 3 2
Lakukanlah penyelesaian Algoritma dengan berbagai metode diatas,
dan nilai lah sendiri pekerjaan Anda.
~ Semangat~
40