Anda di halaman 1dari 69

 Konsep Proses

 CPU Scheduler
 Algoritma Penjadwalan Proses
 Latihan Soal
 Pada sistem multiprogramming, selalu akan
terjadi beberapa proses berjalan dalam suatu
waktu. Sedangkan pada uniprogramming hal
ini tidak akan terjadi, karena hanya ada satu
proses yang berjalan pada saat tertentu.
 Sistem multiprogramming diperlukan untuk
memaksimalkan utilitas CPU.
 Pada saat proses dijalankan terjadi siklus eksekusi CPU
dan menunggu I/O yang disebut dengan siklus CPU-I/O
burst.
 Eksekusi proses dimulai dengan CPU burst dan
dilanjutkan dengan I/O burst, diikuti CPU burst lain,
kemudian I/O burst lain dan seterusnya seperti pada
Gambar.
 Pada saat suatu proses dieksekusi, terdapat banyak CPU
burst yang pendek dan terdapat sedikit CPU burst yang
panjang. Program yang I/O bound biasanya sangat
pendek CPU burst nya, sedangkan program yang CPU
bound kemungkinan CPU burst nya sangat lama.
 Prosesor mengeksekusi program-program
komputer
 Prosesor adalah sebuah chip dalam sistem
komputer yang menjalankan instruksi
program komputer. Dalam setiap detiknya
prosesor menjalankan jutaan instruksi
 Proses adalah sebuah program yang sedang
dijalankan (eksekusi)
 Sistem operasi menjalankan banyak dan beragam program :
◦ Batch system – jobs
◦ Time-shared systems – user programs atau tasks
◦ Istilah pada buku teks: job, task dan process (dapat diartikan sama)
 Proses adalah program yang dieksekusi ;
◦ Aktif (proses=>memori) vs pasif (program => file)
◦ Instruksi pada program (code) akan dieksekusi secara berurut (sekwensial)
sesuai dengan “line code” (stored program concept).
 Proses lebih dari “program code yang aktif”:
 Melacak posisi instruksi (sequential execution): program
counter
◦ Menyimpan data sementara var., parameter, return value: stack
◦ Menyimpan data (initial, global variable dll): data section
◦ Menyimpan status proses (Contoh: Proses , aktif, wait I/O request dll.)
 Membuat dan menghapus proses pengguna
dan sistem proses
 Menunda dan melanjutkan proses
 Menyediakan mekanisme untuk proses
sinkronisasi
 Menyediakan mekanisme untuk proses
komunikasi
 Menyediakan mekanisme untuk penanganan
deadlock
 Saat-saat proses dijalankan (executed) maka status
dari proses akan berubah
◦ Status proses tidak selamanya aktif menggunakan CPU.
◦ Sering proses menunggu I/O complete => status wait, sebaiknya
CPU diberikan kepada proses yang lain.
◦ Mendukung multi-tasking – utilisasi CPU dan I/O
 Status proses (antara lain):
◦ new: proses sedang dikerjakan / dibuat.
◦ running: instruksi dieksekusi.
◦ waiting: proses menunggu beberapa event yang akan terjadi
◦ ready: proses menunggu jatah waktu dari prosessor
◦ terminated: proses selesai dieksekusi.
 Informasi proses disimpan di struktur data dari OS
dalam bentuk table :
◦ Satu entry table/linked list => struktur data untuk
menampung informasi satu proses (array of structure).
◦ Setiap entry pada tabel proses menyimpan satu proses.
Contoh: MINIX (src/kernel/proc.h) => struct proc { … };
 Informasi yang disimpan:
◦ Informasi internal CPU: isi register-register, program
counter, status CPU dll (umumnya dalam bentuk stack
frame).
◦ Identifikasi proses: nama proses, proses number/index,
proses id.
◦ Accounting dan timer: user time, system time, alarm etc.
◦ Resources: memory & file management.
 Pada saat CPU menganggur, maka sistem operasi
harus menyeleksi proses-proses yang ada di
memori utama (ready queue) untuk dieksekusi dan
mengalokasikan CPU untuk salah satu dari proses
tersebut.
 Seleksi semacam ini disebut dengan shortterm
scheduler (CPU scheduler).
 Keputusan untuk menjadwalkan CPU
mengikuti 4 keadaan di bawah ini :
1. Apabila proses berpindah dari keadaan running
ke waiting;
2. Apabila proses berpindah dari keadaan running
ke ready;
3. Apabila proses berpindah dari keadaan waiting
ke ready;
4. Apabila proses berhenti.
 Apabila model penjadwalan yang dipilih menggunakan
keadaan 1 dan 4, maka penjadwalan semacam ini
disebut non-peemptive. Sebaliknya, apabila yang
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
yang dibutuhkan sangat tinggi. Antara lain, harus selalu
dilakukan perbaikan data. Hal ini terjadi jika suatu
proses ditinggalkan dan akan segera dikerjakan proses
yang lain.
 Proses dapat berubah status dan berpindah dari
satu antrian ke antrian yang lain
◦ Proses dengan status “ready” berada di ReadyQueue
◦ Menunggu giliran/dipilih oleh scheduler => menggunakan CPU
 Selama eksekusi (status “run”) events yang dapat
terjadi:
◦ I/O request => I/O wait berada pada DeviceQueue
◦ Create “child” proses => Jalankan proses “child”, tunggu sampai
proses selesai (wait)
◦ Time slice expired => Waktu pemakaian CPU habis, interrupt oleh
scheduler, proses akan berpindah ke ReadyQueue
 Merupakan kumpulan kebijaksanaan & mekanisme
pada SO berkenaan dengan urutan kerja yg
dilakukan sistem komputer.
 Bertugas memutuskan proses yg harus berjalan,
kapan, dan selama berapa lama proses itu berjalan.
 Sasaran utama penjadwalan proses adalah kinerja
menurut kriteria yg diajukan
 Kriteria yang digunakan utk mengukur dan
optimasi kinerja penjadwalan: adil (fairness),
efisiensi, waktu tanggap (response time), turn
arround time, throughput
 Dapat terdapat tiga tipe penjadwalan berada secara
bersama-sama pada sistem operasi yg kompleks, yaitu:
◦ Penjadwalan jangka pendek,
 bertugas menjadwalkan alokasi pemroses diantara proses-
proses ready di memori utama.
◦ Penjadwalan jangka menengah,
 mengendalikan transisi dari keadaan suspend ke ready proses-
proses swapping.
◦ Penjadwalan jangka panjang,
 bekerja terhadap antrian batch dan memilih batch berikutnya
yang harus dieksekusi.

Note:
Swapping adalah aktivitas pemindahan proses yang tertunda
dari memori utama ke memori sekunder.
 Adil (fairness)
◦ Proses2 diberlakukan sama -> mendapat jatah waktu pemroses yg sama & tak
ada proses yg tak kebagian layanan pemroses
◦ Sasaran: menjamin tiap proses mendapat bagian dari pemroses yg adil
 Efisiensi
◦ Pemroses dihitung dg berapa perbandingan (rasio) waktu sibuk pemroses.
◦ Sasaran: menjaga proses agar tetap dalam keadaan sibuk -> efisiensi maksimum
 Waktu Tanggap (response time)
◦ Waktu yg dihabiskan dari saat karakter terakhir dari perintah dimasukkan program
sampai hasil pertama yg muncul di layar
◦ Sasaran: meminimalkan waktu tanggap
 Turn Arrround Time
◦ Waktu yg dihabiskan dari saat program/job mulai masuk ke sistem sampai proses
diselesaikan sistem
◦ TA = waktu eksekusi + waktu menunggu
◦ Sasaran: meminimalkan turn arround time
 Throughput
◦ Jumlah kerja yg dapat diselesaikan dalam satu unit waktu
◦ Sasaran: memaksimalkan jumlah job yang diproses per satu interval waktu
◦ Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem
 Penjadwalan CPU mungkin akan dijalankan
ketika proses dalam keadaan:
◦ Berubah dari running ke waiting state.
◦ Berubah dari running ke ready state.
◦ Berubah dari waiting ke ready.
◦ Terminates.
 First Come First Served (FCFS)
 SJF (Shortest Job First)
 Priority Scheduling
 Round Robin
 Merupakan algoritma penjadwalan CPU
yang paling sederhana
 Proses yang tiba lebih dahulu akan
dilayani lebih dahulu
 Kalau ada proses tiba pada waktu yang
sama, maka pelayanan mereka
dilaksanakan berdasarkan urutan dalam
antrian
 Proses di antrian belakang harus
menunggu sampai semua proses di
depannya selesai.
 Diketahui 3 buah proses sbb:
 Gantt chart

 Waiting Time

 AWT
 Contoh soal 1:
◦ Jika diketahui terdapat 5 macam antrian proses, yaitu A-B-
C-D-E dengan waktu kedatangan semuanya 0. Lama
proses berturut-turut antara lain: 5-2-6-8-3.
◦ Pertanyaan:
 Kapan dimulainya eksekusi dari tiap-tiap antrian proses tsb?
 Kapan selesai eksekusinya?
 Hitung Turn Arround Time (TA)-nya?
 Berata rata-rata TA?
 Rumus
◦ TA = Waktu Tunggu + Lama Eksekusi
◦ Rata-rata TA = ∑TA / ∑Job
◦ Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
 Jawaban:
Nama Waktu Lama
Proses Tiba Eksekusi
A 0 5
B 0 2
C 0 6
D 0 8
E 0 3
Nama Waktu Lama Mulai Waktu Selesai TA
Proses Tiba Ekseku Ekseku Tunggu Ekseku
si si si
A 0 5 0 0 5 5
B 0 2 5 5 7 7
C 0 6 7 7 13 13
D 0 8 13 13 21 21
E 0 3 21 21 24 24
∑TA = 70
rata2 TA = 14
 Contoh Soal 2:
◦ Jika diketahui terdapat 5 macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan semuanya 0-1-2-2-5. Lama proses
berturut-turut antara lain: 5-2-6-8-3.
◦ Pertanyaan:
 Kapan dimulainya eksekusi dari tiap-tiap antrian proses tsb?
 Kapan selesai eksekusinya?
 Hitung Turn Arround Time (TA)-nya?
 Berata rerata TA?
 Rumus
◦ TA = Waktu Tunggu + Lama Eksekusi
◦ Rerata TA = ∑TA / ∑Job
◦ Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
Nama Waktu Lama Mulai Selesai Waktu TA
Proses Tiba Eksekusi Eksekusi Eksekusi Tunggu

A 0 5 0 5 0 5
B 1 2 5 7 4 6
C 2 6 7 13 5 11
D 2 8 13 21 11 19
E 5 3 21 24 16 19
∑TA = 60
Rerata = 12
 Berdasarkan kriteria penilaian penjadwalan:
◦ Fairness
 Penjadwalan FCFS adil dalam arti semantiks (dalam arti
antrian)
◦ Efesiensi
 Penjadwalan FCFS sangat efisien dalam penggunaan
pemroses
◦ Waktu Tanggap
 Penjadwalan sangat tidak memuaskan, karena proses dapat
menunggu lama
◦ Turn Arround Time
 Penjadwalan FCFS tidak bagus
◦ Throughput
 Penjadwalan FCFS tidak bagus.
 Dasar prioritas adalah pendeknya proses.
 Makin pendek/singkat proses makin tinggi
prioritasnya
 Langkah I: tentukan urutan prioritas berdasarkan
pendeknya proses yang dilayani
 Langkah II: penentuan proses mana yang dilayani
oleh pemroses
 Setiap proses yang ada dalam ready queue
akan dieksekusi berdasarkan burst time
terkecil
 Hal ini mengakibatkan waiting time yang
pendek untuk setiap proses, maka rerata
waiting time (AWT) juga menjadi pendek
 Algoritma ini dikatakan optimal
 Contoh Soal 1: Nama Waktu Lama
Proses Tiba Eksekusi
A 0 10

B 0 5

C 0 7

D 0 1

E 0 3
Nama Proses Waktu Tiba Lama
Eksekusi
D 0 1

E 0 3

B 0 5

C 0 7

A 0 10
Nama Waktu Lama Mulai Selesai TA
Proses Tiba Eksekusi Eksekusi Eksekusi
D 0 1 0 1 1
E 0 3 1 4 4
B 0 5 4 9 9
C 0 7 9 16 16
A 0 10 16 26 26
∑TA = 56
rata2 TA = 11,2
Nama Proses Lama Waktu Tiba
Eksekusi
D 1 0

E 3 2

B 5 5

C 7 7

A 10 9
Nama Waktu Lama Mulai Selesai Waktu TA
Proses Tiba Eksekusi Eksekusi Eksekusi Tunggu

D 0 1 0 1 0 1
E 2 3 2 5 0 3
B 5 5 5 10 0 5
C 7 7 10 17 3 10
A 9 10 17 27 8 18
∑TA = 37
Rerata = 7,4
 Merupakan algoritma yang mendahulukan
proses yang memiliki prioritas tertinggi
 Prioritas proses ditentukan berdasar:
◦ Time limit
◦ Memory requirement
◦ File access
◦ Perbandingan antara burst proses dengan CPU
◦ Tingkat kepentinagn proses
 Priority scheduling dapat dijalankan secara
preemptive dan non-preemptive
◦ Preemptive  jika ada proses yang baru datang
memiliki prioritas lebih tinggi dari proses yang
sedang berjalan, maka proses yang sedang berjalan
tsb dihentikan, lalu CPU dialihkan untuk proses
yang baru datang tersebut
◦ Non preemptive  proses yang baru datang tidak
dapat menganggu proses yang sedang berjalan,
tapi hanya diletakkan di depan queue
 Kelemahan PS adalah terjadinya infinite
blocking (starvation), yaitu suatu proses
dengan prioritas yang rendah memiliki
kemungkinan tidak pernah dieksekusi jika
terdapat proses lain yang memiliki prioritas
lebih tinggi
 Solusi dari starvation adalah aging, yaitu
meningkatkan prioritas dari setiap proses
yang menunggu dalam queue secara
bertahap
 Contoh : setiap 10 menit, prioritas dari
masing-masing proses yang menunggu
dalam queue dinaikkan 1 tingkat.
 Maka proses yang memiliki prioritas 127,
setidaknya dalam 21 jam 20 menit, proses
tsb akan memiliki prioritas 0, yaitu prioritas
yang tertinggi
 Diketahui 5 proses dengan urutan proses
sbb:
 Gantt chart

 Waiting Time AWT


 Algoritma ini menggilir proses yang ada di
antrian. Proses akan mendapat jatah
sebesar time quantum. Jika time quantum-
nya habis atau proses sudah selesai, CPU
akan dialokasikan ke proses berikutnya
 Proses ini cukup adil, karena tidak ada
proses yang diprioritaskan
 Semua proses mendapat jatah waktu yang
sama dari CPU yaitu 1/n, dan tidak akan
menunggu lebih lama dari (n-1)q; dimana q
adalah lama 1 quantum
 Algoritma RR sepenuhnya bergantung
besarnya time quantum (TQ).
 Jika TQ terlalu besar, algoritma ini akan sama
saja dengan algoritma FCFS
 Jika TQ terlalu kecil, akan semakin banyak
peralihan proses sehingga banyak waktu yang
terbuang
 Permasalahan utamanya adalah menentukan
besarnya TQ. Jika TQ yang ditentukan terlalu kecil,
maka sebagian besar proses tidak akan selesai
dalam 1 quantum.
 Akibatnya akan terjadi banyak switch, padahal CPU
memerlukan waktu untuk beralih dari satu proses
ke proses yang lain (= context switches time)
 Sebaliknya, jika TQ yang ditentukan terlalu besar,
algoritma RR akan berjalan seperti FCFS
 TQ ideal adalah jika 80% dari total proses memiliki
CPU burst time yang lebih kecil dari 1 TQ
 Diketahui 3 proses sbb:
 Gantt chart

 Burst Time
 TQ dan Context switches time
 Sebuah CPU dengan quantum 4
mendapat beberapa proses yang
kedatangannya sebagai berikut:

Proses Burst Time


P1 4
P2 9
P3 6
P4 5
P5 3  Burst time 
waktu proses
P1 P2 P3 P4 P5 P2 P3 P4 P2
0 4 8 12 16 19 23 25 26 27
 Waktu tunggu untuk tiap-tiap proses :
Proses Waiting Time
P1 0
P2 4 + (19 - 8) + (26 - 23) = 18
P3 8 + (23 - 12) = 19
P4 12 + (25 - 16) = 21
P5 16

 AWT yang terjadi adalah:


◦ ( 0 + 18 + 19 + 21 + 16 ) / 5 = 74 / 5 = 14,8
Proses Saat Lama Saat Saat Turn Around
Tiba Proses Mulai Selesai Time

P1 0 4 0 4 4
P2 0 9 4 27 27
P3 0 6 8 25 25
P4 0 5 12 26 26
P5 0 3 16 19 19
Jumlah 101
Rata-rata 20,2
Nama Proses Saat Tiba Lama Proses
A 0 5
B 1 3
C 5 7
D 6 1
E 7 6
Jml 22
Quantum = 2
A A B B A A B C C D A

0 1 2 3 4 5 6 7 8 9 10

E E C C E E C C E E C

11 12 13 14 15 16 17 18 19 20 21 22
Nama Saat Lama Waiting Time
Proses Tiba Proses
A 0 5 0+(4-2)+(10-6)=6
B 1 3 (2-1)+(6-4)=3
C 5 7 (7-5)+(13-9)+(17-15)+(21-19) =10
D 6 1 (9-6)=3
E 7 6 (11-7)+(15-13)+(19-17)=8

 AWT = (6+3+10+3+8)/5 = 30/5 = 6


Nama Saat Lama Saat Mulai Saat Selesai Lama
Proses Tiba Proses Proses
A 0 5 0 11 11

B 1 3 2 7 6

C 5 7 7 22 17

D 6 1 9 10 4

E 7 6 11 21 14

Jumlah 52
Rata-rata 10,8
 Untuk memahami dari cara kerja algoritma
penjadwalan Round Robin ini,mari kita
kerjakan soal berikut
 Penyelesaian :
 Seperti halnya algoritma penjadwalan sebelumnya, langkah
pertama untuk mencari AWT dengan Algoritma penjadwalan
Round Robin dilakukan dengan membuat Gantt Chart
prosesnya.
 Dari Gantt Chart terlihat bahwa setiap proses
dikerjakan menurut waktu yaitu setiap proses di
proses sebesar 5 langkah.
 Awalnya P1 akan di kerjakan sebanyak 5 langkah,
kemudian, P2 sebanyak 5 langkah, dan begitupun
selanjutnya hingga P5.
 Proses yang sudah di proses menurut porsi waktu
yang diberikan akan kembali menunggu dan
berada paling belakang dari antrian proses yang
ada.
 Contohnya P1 dikerjakan di awal, kemudian
ada P2, P3,P4,dan P5 yang mengantri di
belakangnya.
 Jika P1 selesai di proses menurut porsi
waktunya maka P1 akan di pindahkan ke
belakang, sehingga urutannya menjadi P2,
P3, P4, P4, P1. begitupun seterusnya.
 Waiting Time

 AWT
 Diketahui quantum = 5, dengan menggunakan
alogoritma Round Robin, carilah AWT dan Turn
Around jika terdapat proses sebagai berikut:
Nama Proses Saat Tiba Lama Proses
A 0 5
B 2 3
C 7 8
D 11 2
E 14 6
 Materi tambahan ada dalam file 03b
 Kerjakan latihan yang ada dalam file 03b
untuk pemahaman lebih lanjut

Anda mungkin juga menyukai