SlideShare a Scribd company logo
1 of 46
CPU Scheduling
Pembahasan
• Konsep Dasar
• Kriteria Scheduling
• Algoritma Scheduling
• Contoh perhitungan dari beberapa algoritma
untuk menghitung average waiting time dan
average turn around time proses
CPU Scheduling
• Merupakan basis dari OS yang
multiprogramming, sementara
multiprogramming untuk meningkatkan
produktifitas sistem
• Topik pembahasan :
– Konsep dasar CPU Scheduling
– Algoritma-algoritma CPU Scheduling
Konsep Dasar CPU Scheduling
• Dalam multiprogramming
– Suatu proses dieksekusi s.d wait untuk I/O, setelah
itu CPU diberikan ke proses lain, dst.
– Pelajari konsep CPU Bounded process dan I/O
bounded process dan state process (5 state)
– Membentuk siklus yang terdiri atas
• Sequence eksekusi CPU (CPU burst time)
• Sequence dalam service I/O (I/O burst time)
– Pola distribusi CPU burst time adalah eksponensial
atau bahkan hipereksponensial
Contoh CPU - I/O Burst
• scanf n, a, b /* I/O wait */
for (i=1; i<=n; i++) /* CPU burst */
x = x + a*b;
printf x /* I/O wait */
for (i=1; i<=n; i++) /* CPU burst */
for (j=1; j<=n; j++)
x = x + a*b;
printf x /* I/O wait */
Pola Distribusi CPU Burst Time
Keputusan Scheduling
• Scheduler memilih dari antara proses-
proses dalam memori yang ready dan
mengalokasi CPU untuk proses yang
terpilih
• Terjadinya keputusan scheduler saat :
– (1) status proses berubah dari run ke wait
– (2) status proses berubah dari run ke ready
– (3) status proses berubah dari wait ke ready
– (4) status proses menjadi terminate
Non-preemptive
• Scheduler dalam situasi (1) dan (4)
disebut non-preemptive
– Sekali CPU ditetapkan untuk suatu proses
maka proses tidak akan melepaskannya
hingga terminate atau untuk melakukan I/O
– Untuk hardware tertentu skema ini
merupakan satu-satunya pilihan (misalnya
tidak ada timer)
– Digunakan oleh MS Windows
Status Proses - Scheduler
Non-preemptive
Preemptive
Preemptive
• Scheduler dalam situasi (2) dan (3)
disebut preemptive
– CPU dapat dialihkan ke proses lain oleh OS
misalnya karena interrupt, timer, dsb.
– Perlu penanganan masalah data sharing
antara sebelum dan sesudah
– Perlu blocking CPU saat struktur data kernel
berada pada status yang inkonsisten
Dispatcher
• Modul yang memberikan kontrol CPU bagi
proses yang terpilih untuk mendapat giliran
meliputi :
– Context switching
– Set operasi sistem ke user-mode
– Jump ke lokasi untuk meneruskan proses yang
mendapat giliran dan run
Dispatch Latency
• Waktu yang diperlukan oleh dispatcher untuk
menghentikan proses yang sedang running
hingga proses yang di-dispatch berikutnya
running
CPU Scheduling Algorithms
• FCFS First Come First Served, proses
yang datang duluan dilayani duluan
• SJF Shortest job First, proses yang
terpendek burst timenya dilayani duluan
• Priority, penjadwalan proses dengan
sistem prioritas
• Round Robin, proses dieksekusi oleh CPU
berdasarkan kuota
• Multi-Level , penjadwalan berbasis hirarki
Kriteria Scheduling (1)
• Fairness : adil untuk seluruh proses
• CPU utilization : persentase jumlah waktu
CPU sibuk dari total waktu
• Throughput : jumlah proses yang selesai
dieksekusi per satuan waktu
• Turnaround time : selang waktu sejak
submit proses hingga terminate
Kriteria Scheduling (2)
• Waiting time : jumlah waktu suatu proses
menunggu dalam ready queue
• Response time : panjang waktu sejak
submit hingga respons pertama muncul
• Predictability respons : variansi
(ketersebaran) waktu respons
Obyektif : meningkatkan derajat
multiprogramming
• Pemilihan algoritma untuk optimisasi :
– Memaksimalkan CPU utilization
– Memaksimalkan throughput=bnyk proses yg
dpat diselesaikan per satuan waktu
– Meminimumkan turnaround time=total
keseluruhan waktu eksekusi prosesor
– Meminimumkan waiting time= total waktu
tunggu
– Meminimumkan response time=total waktu
tanggap pertama oleh prosesor
– Meminimumkan response time variance
First Come, First-Served
(FCFS)
• Proses yang merequest CPU lebih dulu
adalah yang dilayani terlebih dahulu
• Jika suatu proses running menjadi ready
maka ia antri lagi dibelakang
• Performance : waktu tunggu rata-rata
lama serta akan bervariasi jika burst time
amat bervariasi
Contoh FCFS
Diketahui :
Ditanyakan :
– Average waiting time & Average Turn Arround Time
dg algoritma FCFS.
Jawab :
a. Buat dulu Gantt Chart untuk meletakkan proses
sesuai algoritma yang diminta
b. Revisi tabel dg t awal eksekusi, t akhir eksekusi, t
tunggu (waiting time) dan t total (turn arround time)
c. Hitung total t tunggu dan turn arround time dibagi
jumlah proses yang ada
Perhitungan FCFS
• P1 : 24 ms, P2 : 3 ms, P3 : 3 ms.
• Datang dalam urutan P1, P2, P3
– Gantt Chart
P1 P2 P3
24 27 30
0
Contoh FCFS
• P1 : 24 ms, P2 : 3 ms, P3 : 3 ms.
• Datang dalam urutan P1, P2, P3
– Gantt Chart
– Waktu tunggu : P1 = 0 ms, P2 = 24 ms, dan P3 = 27 ms
– Average waiting time = (0 + 24 + 27)/3 = 17 ms
• Jika urutannya : P2, P3, P1 maka :
– Gantt Chart
– Average waiting time = (6 + 0 + 3)/3 = 3
– Average Turn Around Time 39/3=13
P1 P2 P3
24 27 30
0
P1
P2 P3
3 6 30
0
Masalah FCFS : “Convoy Effect”
• Kondisi terdapat suatu proses yang
memiliki CPU-burst time besar (CPU
bound) dan sejumlah proses lain dengan
I/O burst time yang besar (I/O bound)
– Proses CPU bound sedang hold CPU proses
I/O bound menunggu, I/O device idle
– Proses I/O bound sedang melakukan I/O,
proses CPU bound menunggu, CPU idle
Shortest Job First (SJF)
• Tepatnya “shortest CPU burst-time first”
• Bila CPU burst time tiap proses diketahui
sebelumnya maka proses dengan CPU
burst time terkecil yang dilayani terlebih
dahulu
– Preemptive scheme : proses running P1 bisa
dihentikan di tengah saat muncul proses P2
yang lebih pendek
– Nonpreemptive scheme : proses running akan
terus sampai terminate atau I/O wait
Contoh SJF - Non-Preemptive
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
• SJF (non-preemptive)
• Average waiting time = (0 + 6 + 3 + 7)/4 = 4
P1 P3 P2
7
3 16
0
P4
8 12
Contoh SJF - Non-Preemptive
P1 P3 P2
7
3 16
0
P4
8 12
Contoh SJF – Preemptive, disebut
RSJF (Remaining SJF)
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
• SJF (preemptive)
• Average waiting time = (9 + 1 + 0 +2)/4 = 3
P1 P3
P2
4
2 11
0
P4
5 7
P2 P1
16
P1 P3
P2
4
2 11
0
P4
5 7
P2 P1
16
Contoh SJF – Preemptive, disebut
RSJF (Remaining SJF)
Masalah SJF : informasi CPU burst
time
• Algoritma memberikan performance yang
optimal, tapi bagaimana caranya
mendapatkan informasi CPU burst time ?
– Untuk long-term schedule dalam batch
system, dapat digunakan panjang time limit
yang dispesifikasikan user pada saat submit
job.
– Untuk short-term scheduling tidak mungkin.
Tidak ada cara untuk mengetahui secara
pasti CPU burst berikutnya, hanya dapat
diaproksimasi secara stokastik (prediksi).
Priority Scheduling
• Proses dengan prioritas lebih tinggi akan
dilayani lebih dulu
– Preemptive scheme : proses running P1 bisa
dihentikan di tengah saat muncul proses P2
yang lebih tinggi prioritasnya
– Non-preemptive scheme : proses yang
running akan diteruskan sampai terminate
atau I/O wait
Contoh Priority Scheduling
Process Burst Time Priority
P1 8 2
P2 1 1
P3 1 3
• Average waiting time = (1 + 0 + 9)/3 = 3.3
P2
P3
1 9
0
P1
10
Pendefinisian Prioritas
• Internal
– Bila mungkin, ditentukan berdasarkan
indikator terukur atau estimasinya
• Time limit, memori requirement, jumlah file open,
ratio I/O burst terhadap CPU burst
• External
– Ditentukan berdasarkan kriteria yang
eksternal bagi OS
• Tingkat kepentingan proses, charging, super-user
(root), dll
Masalah Priority Scheduling
• Indefinite blocking (starvation) pada
proses-proses berprioritas rendah
terutama jika sistemnya heavilyloaded
– Rumor : ketika IBM 7093 di MIT di-shutdown
tahun 1973, ditemukan adanya proses-proses
low priority yang di-submit tahun 1967 dalam
status wait
Solusi dari Starvation
• Solusi : “aging” (peningkatan prioritas
pada proses-proses yang sudah
menunggu cukup lama)
– Misalnya setiap 15 menit dinaikkan 1 tingkat
Round Robin (RR)
• Masing-masing proses diberikan interval
waktu tertentu yang disebut time quantum
• Mengikuti FCFS & setelah kuantum waktu
tertentu proses yang running di-preempt &
kembali ke ready queue
• Mekanisme kuantum waktu menggunakan
timer, jika proses sudah terminate atau
melakukan I/O wait sementara timer
belum habis, timer di-reset untuk giliran
proses berikutnya
Contoh : RR
• Contoh : dengan time quantum = 20 ms
Process Burst Time
P1 53
P2 17
P3 68
P4 24
• Gantt chart :
• Khususnya, rata-rata turnaround lebih tinggi daripada
SJF, tetapi lebih baik untuk respons.
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Masalah RR : Penentuan Kuantum
Waktu
• Menentukan performance sistem :
– Jika terlalu besar sistem menjadi FCFS murni
– Jika terlalu kecil terjadi “processor sharing”
• Pada n proses yang running pada prosesor dengan
kecepatan K, bagi setiap proses terasa masing-masing
memiliki prosesor sendiri dengan kecepatan K/n (misalnya
respons interaksi jadi lambat)
– Jika terlalu kecil overhead untuk context switching
jadi besar
Time Quantum dan Context
Switch Time
Multi-Level Queue (MLQ)
• Proses diklasifikasi ke dalam sejumlah kelas &
masing-masing kelas memiliki antrian sendiri
dengan aturan berbeda
– Contoh kelas-kelas dalam beberapa OS
• Proses sistem
• Proses interaktif
• Proses editing interaktif
• Proses batch
• Proses student
Diagram Contoh MLQ
MLQ pada Uniprocessor
• Kelas-kelas perlu diantrikan juga
– Dengan prioritas berbeda secara fixed dan
preemptive; proses dari kelas yang lebih
rendah harus menunggu proses dari kelas
yang lebih tinggi selesai
– Dengan menerapkan time sharing dengan
kuota waktu yang berbeda (misalnya
foreground 80% dan background 20%)
Multi-Level Feedback Queue
• MLQ overhead rendah tetapi tidak
fleksibel
• MLFQ memungkinkan perpindahan antara
level antrian untuk meng-aproksimasi SJF
:
– Proses mula-mula masuk ke level pertama,
jika dalam batas waktu proses belum berakhir
maka ia di-preempt dan dimasukkan ke
antrian level berikutnya yang prioritasnya
lebih rendah
Contoh MLFQ
• Contoh MLFQ dengan 3 antrian : Q0, Q1,
dan Q2. Kuantum Q0 = 8 ms, kuantum Q1
= 16 ms dan Q2 menggunakan skema
FCFS
– Awalnya proses P masuk ke Q0, apabila saat
running belum selesai saat timer habis (8 ms)
maka P di-preempt dan dipindahkan ke Q1
– Jika Q0 sudah kosong, Q1 baru dilayani; saat
P belum selesai juga saat timer habis (16 ms)
maka P masuk dalam skema FCFS Q3
Diagram Contoh MLFQ
Parameter Menentukan MLFQ
• Jumlah Queue (level)
• Algoritma scheduling untuk tiap queue
• Metode penentuan kapan upgrade
prioritas proses ke queue yang lebih tinggi
• Metode penentuan kapan menurunkan
prioritas proses ke queue yang lebih
rendah
• Metode penentuan queue mana yang
dimasuki proses
TUGAS : Diketahui proses-proses sbb :
Prosess T datang CPU Burst
Time
P1 0 9
P2 3 4
P3 5 2
P4 6 X, digit terakhir NIM
P5 6 Y digit no 2
Hitung Average Waiting Time dan Average Turn
Arround Time dengan :
1. FCFS
2. SJF
3. RSJF
4. RR dengan quota = 4
END OF MODUL - 6

More Related Content

Similar to MF427_06_103754.ppt

42519051 Bab V Penjadwalan CPU
42519051 Bab V Penjadwalan CPU 42519051 Bab V Penjadwalan CPU
42519051 Bab V Penjadwalan CPU AbdulRahman1543
 
Materi Penjadwalan CPU & Algoritma Penjadwalan CPU
Materi Penjadwalan CPU & Algoritma Penjadwalan CPUMateri Penjadwalan CPU & Algoritma Penjadwalan CPU
Materi Penjadwalan CPU & Algoritma Penjadwalan CPUImadeGautama
 
Tugas kelompok 1 sistem operasi
Tugas kelompok 1 sistem operasiTugas kelompok 1 sistem operasi
Tugas kelompok 1 sistem operasiTaufikRahman106
 
Kelompok 5 cpu schedule
Kelompok 5 cpu scheduleKelompok 5 cpu schedule
Kelompok 5 cpu schedulenovita dewi
 
perhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtive
perhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtiveperhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtive
perhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtivesayaxioami1
 
ini95_20230321085805_Modul-4_Proses.pptx
ini95_20230321085805_Modul-4_Proses.pptxini95_20230321085805_Modul-4_Proses.pptx
ini95_20230321085805_Modul-4_Proses.pptxakunoo
 
Pertemuan 3.1. penjadwalan proses
Pertemuan 3.1. penjadwalan prosesPertemuan 3.1. penjadwalan proses
Pertemuan 3.1. penjadwalan prosesSetyady Peace
 
7. Algoritma Scheduling
7. Algoritma Scheduling7. Algoritma Scheduling
7. Algoritma SchedulingHaddad Sammir
 
Unit3
Unit3Unit3
Unit3n k
 
Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]beiharira
 
Penjadwalan_Proses_I.pptx
Penjadwalan_Proses_I.pptxPenjadwalan_Proses_I.pptx
Penjadwalan_Proses_I.pptxapaanyaakulupa
 
Penjadwalan Proses.pptx
Penjadwalan Proses.pptxPenjadwalan Proses.pptx
Penjadwalan Proses.pptxAlbertLobo7
 
Penjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdf
Penjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdfPenjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdf
Penjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdfARYAPUTRAABSHARI
 
Penjadwalan dan perhitungan kinerja cpu
Penjadwalan  dan perhitungan kinerja cpuPenjadwalan  dan perhitungan kinerja cpu
Penjadwalan dan perhitungan kinerja cpusoeswono
 

Similar to MF427_06_103754.ppt (20)

42519051 Bab V Penjadwalan CPU
42519051 Bab V Penjadwalan CPU 42519051 Bab V Penjadwalan CPU
42519051 Bab V Penjadwalan CPU
 
Materi Penjadwalan CPU & Algoritma Penjadwalan CPU
Materi Penjadwalan CPU & Algoritma Penjadwalan CPUMateri Penjadwalan CPU & Algoritma Penjadwalan CPU
Materi Penjadwalan CPU & Algoritma Penjadwalan CPU
 
Tugas kelompok 1 sistem operasi
Tugas kelompok 1 sistem operasiTugas kelompok 1 sistem operasi
Tugas kelompok 1 sistem operasi
 
Kelompok 5 cpu schedule
Kelompok 5 cpu scheduleKelompok 5 cpu schedule
Kelompok 5 cpu schedule
 
5 penjadwalan aplod
5 penjadwalan aplod5 penjadwalan aplod
5 penjadwalan aplod
 
perhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtive
perhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtiveperhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtive
perhitungan penjadwalan cpu fcfs dan sjf premtive dan non premtive
 
ini95_20230321085805_Modul-4_Proses.pptx
ini95_20230321085805_Modul-4_Proses.pptxini95_20230321085805_Modul-4_Proses.pptx
ini95_20230321085805_Modul-4_Proses.pptx
 
s
ss
s
 
Penjadwalan.pdf
Penjadwalan.pdfPenjadwalan.pdf
Penjadwalan.pdf
 
Pertemuan 3.1. penjadwalan proses
Pertemuan 3.1. penjadwalan prosesPertemuan 3.1. penjadwalan proses
Pertemuan 3.1. penjadwalan proses
 
7. Algoritma Scheduling
7. Algoritma Scheduling7. Algoritma Scheduling
7. Algoritma Scheduling
 
Unit3
Unit3Unit3
Unit3
 
Ch 12-Guaranteed
Ch 12-GuaranteedCh 12-Guaranteed
Ch 12-Guaranteed
 
4.proses proses
4.proses proses4.proses proses
4.proses proses
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]Sistem Operasi - 4 [Penjadwalan Proses SO]
Sistem Operasi - 4 [Penjadwalan Proses SO]
 
Penjadwalan_Proses_I.pptx
Penjadwalan_Proses_I.pptxPenjadwalan_Proses_I.pptx
Penjadwalan_Proses_I.pptx
 
Penjadwalan Proses.pptx
Penjadwalan Proses.pptxPenjadwalan Proses.pptx
Penjadwalan Proses.pptx
 
Penjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdf
Penjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdfPenjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdf
Penjadwalan CPU_Arya Putra Abshari (210209501101)_PTIK C 2021.pdf
 
Penjadwalan dan perhitungan kinerja cpu
Penjadwalan  dan perhitungan kinerja cpuPenjadwalan  dan perhitungan kinerja cpu
Penjadwalan dan perhitungan kinerja cpu
 

MF427_06_103754.ppt

  • 2. Pembahasan • Konsep Dasar • Kriteria Scheduling • Algoritma Scheduling • Contoh perhitungan dari beberapa algoritma untuk menghitung average waiting time dan average turn around time proses
  • 3. CPU Scheduling • Merupakan basis dari OS yang multiprogramming, sementara multiprogramming untuk meningkatkan produktifitas sistem • Topik pembahasan : – Konsep dasar CPU Scheduling – Algoritma-algoritma CPU Scheduling
  • 4. Konsep Dasar CPU Scheduling • Dalam multiprogramming – Suatu proses dieksekusi s.d wait untuk I/O, setelah itu CPU diberikan ke proses lain, dst. – Pelajari konsep CPU Bounded process dan I/O bounded process dan state process (5 state) – Membentuk siklus yang terdiri atas • Sequence eksekusi CPU (CPU burst time) • Sequence dalam service I/O (I/O burst time) – Pola distribusi CPU burst time adalah eksponensial atau bahkan hipereksponensial
  • 5. Contoh CPU - I/O Burst • scanf n, a, b /* I/O wait */ for (i=1; i<=n; i++) /* CPU burst */ x = x + a*b; printf x /* I/O wait */ for (i=1; i<=n; i++) /* CPU burst */ for (j=1; j<=n; j++) x = x + a*b; printf x /* I/O wait */
  • 6. Pola Distribusi CPU Burst Time
  • 7. Keputusan Scheduling • Scheduler memilih dari antara proses- proses dalam memori yang ready dan mengalokasi CPU untuk proses yang terpilih • Terjadinya keputusan scheduler saat : – (1) status proses berubah dari run ke wait – (2) status proses berubah dari run ke ready – (3) status proses berubah dari wait ke ready – (4) status proses menjadi terminate
  • 8. Non-preemptive • Scheduler dalam situasi (1) dan (4) disebut non-preemptive – Sekali CPU ditetapkan untuk suatu proses maka proses tidak akan melepaskannya hingga terminate atau untuk melakukan I/O – Untuk hardware tertentu skema ini merupakan satu-satunya pilihan (misalnya tidak ada timer) – Digunakan oleh MS Windows
  • 9. Status Proses - Scheduler Non-preemptive Preemptive
  • 10. Preemptive • Scheduler dalam situasi (2) dan (3) disebut preemptive – CPU dapat dialihkan ke proses lain oleh OS misalnya karena interrupt, timer, dsb. – Perlu penanganan masalah data sharing antara sebelum dan sesudah – Perlu blocking CPU saat struktur data kernel berada pada status yang inkonsisten
  • 11. Dispatcher • Modul yang memberikan kontrol CPU bagi proses yang terpilih untuk mendapat giliran meliputi : – Context switching – Set operasi sistem ke user-mode – Jump ke lokasi untuk meneruskan proses yang mendapat giliran dan run
  • 12. Dispatch Latency • Waktu yang diperlukan oleh dispatcher untuk menghentikan proses yang sedang running hingga proses yang di-dispatch berikutnya running
  • 13. CPU Scheduling Algorithms • FCFS First Come First Served, proses yang datang duluan dilayani duluan • SJF Shortest job First, proses yang terpendek burst timenya dilayani duluan • Priority, penjadwalan proses dengan sistem prioritas • Round Robin, proses dieksekusi oleh CPU berdasarkan kuota • Multi-Level , penjadwalan berbasis hirarki
  • 14. Kriteria Scheduling (1) • Fairness : adil untuk seluruh proses • CPU utilization : persentase jumlah waktu CPU sibuk dari total waktu • Throughput : jumlah proses yang selesai dieksekusi per satuan waktu • Turnaround time : selang waktu sejak submit proses hingga terminate
  • 15. Kriteria Scheduling (2) • Waiting time : jumlah waktu suatu proses menunggu dalam ready queue • Response time : panjang waktu sejak submit hingga respons pertama muncul • Predictability respons : variansi (ketersebaran) waktu respons
  • 16. Obyektif : meningkatkan derajat multiprogramming • Pemilihan algoritma untuk optimisasi : – Memaksimalkan CPU utilization – Memaksimalkan throughput=bnyk proses yg dpat diselesaikan per satuan waktu – Meminimumkan turnaround time=total keseluruhan waktu eksekusi prosesor – Meminimumkan waiting time= total waktu tunggu – Meminimumkan response time=total waktu tanggap pertama oleh prosesor – Meminimumkan response time variance
  • 17. First Come, First-Served (FCFS) • Proses yang merequest CPU lebih dulu adalah yang dilayani terlebih dahulu • Jika suatu proses running menjadi ready maka ia antri lagi dibelakang • Performance : waktu tunggu rata-rata lama serta akan bervariasi jika burst time amat bervariasi
  • 18. Contoh FCFS Diketahui : Ditanyakan : – Average waiting time & Average Turn Arround Time dg algoritma FCFS. Jawab : a. Buat dulu Gantt Chart untuk meletakkan proses sesuai algoritma yang diminta b. Revisi tabel dg t awal eksekusi, t akhir eksekusi, t tunggu (waiting time) dan t total (turn arround time) c. Hitung total t tunggu dan turn arround time dibagi jumlah proses yang ada
  • 19. Perhitungan FCFS • P1 : 24 ms, P2 : 3 ms, P3 : 3 ms. • Datang dalam urutan P1, P2, P3 – Gantt Chart P1 P2 P3 24 27 30 0
  • 20. Contoh FCFS • P1 : 24 ms, P2 : 3 ms, P3 : 3 ms. • Datang dalam urutan P1, P2, P3 – Gantt Chart – Waktu tunggu : P1 = 0 ms, P2 = 24 ms, dan P3 = 27 ms – Average waiting time = (0 + 24 + 27)/3 = 17 ms • Jika urutannya : P2, P3, P1 maka : – Gantt Chart – Average waiting time = (6 + 0 + 3)/3 = 3 – Average Turn Around Time 39/3=13 P1 P2 P3 24 27 30 0 P1 P2 P3 3 6 30 0
  • 21. Masalah FCFS : “Convoy Effect” • Kondisi terdapat suatu proses yang memiliki CPU-burst time besar (CPU bound) dan sejumlah proses lain dengan I/O burst time yang besar (I/O bound) – Proses CPU bound sedang hold CPU proses I/O bound menunggu, I/O device idle – Proses I/O bound sedang melakukan I/O, proses CPU bound menunggu, CPU idle
  • 22. Shortest Job First (SJF) • Tepatnya “shortest CPU burst-time first” • Bila CPU burst time tiap proses diketahui sebelumnya maka proses dengan CPU burst time terkecil yang dilayani terlebih dahulu – Preemptive scheme : proses running P1 bisa dihentikan di tengah saat muncul proses P2 yang lebih pendek – Nonpreemptive scheme : proses running akan terus sampai terminate atau I/O wait
  • 23. Contoh SJF - Non-Preemptive Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (non-preemptive) • Average waiting time = (0 + 6 + 3 + 7)/4 = 4 P1 P3 P2 7 3 16 0 P4 8 12
  • 24. Contoh SJF - Non-Preemptive P1 P3 P2 7 3 16 0 P4 8 12
  • 25. Contoh SJF – Preemptive, disebut RSJF (Remaining SJF) Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (preemptive) • Average waiting time = (9 + 1 + 0 +2)/4 = 3 P1 P3 P2 4 2 11 0 P4 5 7 P2 P1 16
  • 26. P1 P3 P2 4 2 11 0 P4 5 7 P2 P1 16 Contoh SJF – Preemptive, disebut RSJF (Remaining SJF)
  • 27. Masalah SJF : informasi CPU burst time • Algoritma memberikan performance yang optimal, tapi bagaimana caranya mendapatkan informasi CPU burst time ? – Untuk long-term schedule dalam batch system, dapat digunakan panjang time limit yang dispesifikasikan user pada saat submit job. – Untuk short-term scheduling tidak mungkin. Tidak ada cara untuk mengetahui secara pasti CPU burst berikutnya, hanya dapat diaproksimasi secara stokastik (prediksi).
  • 28. Priority Scheduling • Proses dengan prioritas lebih tinggi akan dilayani lebih dulu – Preemptive scheme : proses running P1 bisa dihentikan di tengah saat muncul proses P2 yang lebih tinggi prioritasnya – Non-preemptive scheme : proses yang running akan diteruskan sampai terminate atau I/O wait
  • 29. Contoh Priority Scheduling Process Burst Time Priority P1 8 2 P2 1 1 P3 1 3 • Average waiting time = (1 + 0 + 9)/3 = 3.3 P2 P3 1 9 0 P1 10
  • 30. Pendefinisian Prioritas • Internal – Bila mungkin, ditentukan berdasarkan indikator terukur atau estimasinya • Time limit, memori requirement, jumlah file open, ratio I/O burst terhadap CPU burst • External – Ditentukan berdasarkan kriteria yang eksternal bagi OS • Tingkat kepentingan proses, charging, super-user (root), dll
  • 31. Masalah Priority Scheduling • Indefinite blocking (starvation) pada proses-proses berprioritas rendah terutama jika sistemnya heavilyloaded – Rumor : ketika IBM 7093 di MIT di-shutdown tahun 1973, ditemukan adanya proses-proses low priority yang di-submit tahun 1967 dalam status wait
  • 32. Solusi dari Starvation • Solusi : “aging” (peningkatan prioritas pada proses-proses yang sudah menunggu cukup lama) – Misalnya setiap 15 menit dinaikkan 1 tingkat
  • 33. Round Robin (RR) • Masing-masing proses diberikan interval waktu tertentu yang disebut time quantum • Mengikuti FCFS & setelah kuantum waktu tertentu proses yang running di-preempt & kembali ke ready queue • Mekanisme kuantum waktu menggunakan timer, jika proses sudah terminate atau melakukan I/O wait sementara timer belum habis, timer di-reset untuk giliran proses berikutnya
  • 34. Contoh : RR • Contoh : dengan time quantum = 20 ms Process Burst Time P1 53 P2 17 P3 68 P4 24 • Gantt chart : • Khususnya, rata-rata turnaround lebih tinggi daripada SJF, tetapi lebih baik untuk respons. P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162
  • 35. P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162
  • 36. Masalah RR : Penentuan Kuantum Waktu • Menentukan performance sistem : – Jika terlalu besar sistem menjadi FCFS murni – Jika terlalu kecil terjadi “processor sharing” • Pada n proses yang running pada prosesor dengan kecepatan K, bagi setiap proses terasa masing-masing memiliki prosesor sendiri dengan kecepatan K/n (misalnya respons interaksi jadi lambat) – Jika terlalu kecil overhead untuk context switching jadi besar
  • 37. Time Quantum dan Context Switch Time
  • 38. Multi-Level Queue (MLQ) • Proses diklasifikasi ke dalam sejumlah kelas & masing-masing kelas memiliki antrian sendiri dengan aturan berbeda – Contoh kelas-kelas dalam beberapa OS • Proses sistem • Proses interaktif • Proses editing interaktif • Proses batch • Proses student
  • 40. MLQ pada Uniprocessor • Kelas-kelas perlu diantrikan juga – Dengan prioritas berbeda secara fixed dan preemptive; proses dari kelas yang lebih rendah harus menunggu proses dari kelas yang lebih tinggi selesai – Dengan menerapkan time sharing dengan kuota waktu yang berbeda (misalnya foreground 80% dan background 20%)
  • 41. Multi-Level Feedback Queue • MLQ overhead rendah tetapi tidak fleksibel • MLFQ memungkinkan perpindahan antara level antrian untuk meng-aproksimasi SJF : – Proses mula-mula masuk ke level pertama, jika dalam batas waktu proses belum berakhir maka ia di-preempt dan dimasukkan ke antrian level berikutnya yang prioritasnya lebih rendah
  • 42. Contoh MLFQ • Contoh MLFQ dengan 3 antrian : Q0, Q1, dan Q2. Kuantum Q0 = 8 ms, kuantum Q1 = 16 ms dan Q2 menggunakan skema FCFS – Awalnya proses P masuk ke Q0, apabila saat running belum selesai saat timer habis (8 ms) maka P di-preempt dan dipindahkan ke Q1 – Jika Q0 sudah kosong, Q1 baru dilayani; saat P belum selesai juga saat timer habis (16 ms) maka P masuk dalam skema FCFS Q3
  • 44. Parameter Menentukan MLFQ • Jumlah Queue (level) • Algoritma scheduling untuk tiap queue • Metode penentuan kapan upgrade prioritas proses ke queue yang lebih tinggi • Metode penentuan kapan menurunkan prioritas proses ke queue yang lebih rendah • Metode penentuan queue mana yang dimasuki proses
  • 45. TUGAS : Diketahui proses-proses sbb : Prosess T datang CPU Burst Time P1 0 9 P2 3 4 P3 5 2 P4 6 X, digit terakhir NIM P5 6 Y digit no 2 Hitung Average Waiting Time dan Average Turn Arround Time dengan : 1. FCFS 2. SJF 3. RSJF 4. RR dengan quota = 4