Dokumen tersebut membahas tentang penjadwalan CPU dalam sistem operasi, meliputi konsep, kriteria, dan algoritma penjadwalan CPU seperti FCFS, SJF, prioritas, round robin, antrian bertingkat, serta penerapannya untuk penjadwalan thread dan pada sistem multiprosesor.
1. Sistem Operasi - Penjadwalan CPU -
S ISTEM O PERASI
- P ENJADWALAN CPU -
Arya Adhyaksa Waskita
Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta
31 Maret 2012
2. Sistem Operasi - Penjadwalan CPU -
AGENDA
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
3. Sistem Operasi - Penjadwalan CPU -
Review
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
4. Sistem Operasi - Penjadwalan CPU -
Review
P ERTEMUAN KE -4
Konsep thread: lightweight process, satuan penggunaan CPU
responsif, resource sharing, ekonomis, skalabilitas
kernel & user thread
Thread terhadap pemrograman multicore / parallel:
berbagi aktifitas, penyeimbang beban, memecah data & ketergantungan
data
pengujian & debug
Model:
many-to-one, many-to-many, one-to-one
5. Sistem Operasi - Penjadwalan CPU -
Review
P ERTEMUAN KE -4
Pustaka
POSIX, Java, Win32
Isu terkait thread
create & terminate
SIGNAL handler
thread pools
thread specific data
6. Sistem Operasi - Penjadwalan CPU -
Overview & Obyektif
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
7. Sistem Operasi - Penjadwalan CPU -
Overview & Obyektif
Mempelajari konsep penjadwalan CPU sebagai dasar multiprogramming
Mempelajari algoritma penjadwalan CPU
Mempelajari kriteria penjadwalan & penentuan algoritma
8. Sistem Operasi - Penjadwalan CPU -
Konsep
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
9. Sistem Operasi - Penjadwalan CPU -
Konsep
T ENTANG PENJADWALAN CPU
Memaksimalkan penggunaan CPU diperoleh dengan multiprogramming
Eksekusi proses terdiri dari:
CPU
I/O wait
10. Sistem Operasi - Penjadwalan CPU -
Konsep
S IKLUS CPU-I/O
G AMBAR : Siklus CPU - I/O
11. Sistem Operasi - Penjadwalan CPU -
Konsep
CPU- BURST TIME
G AMBAR : CPU burst time
12. Sistem Operasi - Penjadwalan CPU -
Konsep
P ENJADWAL CPU
Memilih proses yang telah berada di memori untuk dieksekusi
(mengalokasikan CPU ke proses tersebut)
Penjadwalan CPU dapat terjadi saat proses berpindah dari kondisi
(non-preemptive):
running ke waiting
running ke ready
waiting ke ready
selesai (terminasi)
Non-preemptive: sekali CPU dialokasikan ke suatu proses, CPU hanya
akan di-dealokasi ketika proses selesai
13. Sistem Operasi - Penjadwalan CPU -
Konsep
I LUSTRASI
G AMBAR : Kondisi proses
14. Sistem Operasi - Penjadwalan CPU -
Konsep
D ISPATCHER
Modul pada OS yang memindahkan kendali CPU dari satu proses ke
proses lain pada short term scheduler
Melibatkan:
switching context
pindah ke user mode
pindah dari ke lokasi yang tepat pada program untuk restart
Waktu tunda perpindahan: Dispatch Latency
15. Sistem Operasi - Penjadwalan CPU -
Konsep
I LUSTRASI
G AMBAR : Context switch
16. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
17. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
K RITERIA PENJADWALAN
CPU utilization: tingkat penggunaan CPU
Throughput: jumlah proses yang diselesaikan per satuan waktu
Turnaround time: waktu tunggu sejak sebuah proses di-submit hingga
selesai eksekusi
Waiting time: total waktu sebuah proses berada dalam ready queue
Response time: waktu tunggu sejak sebuah proses di-submit sampai
respon pertama diperoleh
18. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
K RITERIA
Memaksimalkan:
CPU utilization
throughput
Meminimalkan:
turnaround time
waiting time
response time
19. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : FCFS
Proses Burst time
P1 24
P2 3
P3 3
G AMBAR : Diagram Gantt: First Come First Served
Rerata:
turnaround time = . . .
waiting time = . . .
20. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : FCFS
Untuk kasus yang sama: urutan kedatangan adalah P 2 , P 3 , P 1
G AMBAR : Diagram Gantt: First Come First Served
Rerata:
turnaround time = . . .
waiting time = . . .
21. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : SJF
Penjadwalan berdasarkan CPU burst
Kendala: sulit mengestimasi CPU burst (di awal)
Proses Burst time
P1 6
P2 8
P3 7
P4 3
22. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : SJF
G AMBAR : Diagram Gantt: Shortest Job First
Rerata:
turnaround time = . . .
waiting time = . . .
23. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
P ENENTUAN PANJANG CPU BURST
Hanya estimasi
Berdasarkan:
CPU burst sebelumnya
rerata eksponensial
τn+1 = αtn + (1 − α) τn
tn = panjang CPU burst aktual
τn+1 = prediksi CPU burst
α = 1, hanya CPU burst terakhir yang dipertimbangkan
α = 0, CPU burst terakhir tidak dipertimbangkan
24. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
I LUSTRASI
G AMBAR : Prediksi panjang CPU burst berikutnya
25. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : P RIORITAS
Setiap proses memiliki atribut terkait prioritas
Nilai atribut kecil lebih prioritas dibanding nilai atribut besar
Kendala: Starvation, proses dengan prioritas rendah memiliki
kemungkinan tidak dieksekusi
Solusi: Aging, dengan berjalannya waktu prioritas sebuah proses naik
26. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : ROUND ROBIN
Berdasarkan time slice, setiap proses diberi kesempatan dieksekusi
selama time slice
Proses yang melampaui time slice padahal belum selesai, dipindahkan
ke antrian paling belakang
Kinerja:
time slice besar: FIFO
time slice kecil: overhead, terlalu banyak context switch
27. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : RR, TIME SLICE =4
Proses Burst time
P1 24
P2 3
P3 3
G AMBAR : Diagram Gantt: RR dengan time slice=4
Rerata:
turnaround time = . . .
waiting time = . . .
28. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
H UBUNGAN time slice VS . contect switch
G AMBAR : Time slice vs. contect switch
29. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : RR
G AMBAR : Hubungan turnaround time vs. time slice
30. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : A NTRIAN BERTINGKAT
Multilevel Queue
Ready queue dipisah
foreground (interaktif)
background (batch)
Setiap antrian memiliki algoritma yang berbeda:
foreground (interaktif): RR
background (batch): FCFS
Penjadwalan harus dilakukan antar antrian:
Prioritas tetap: kemungkinan starvation
Time slice: 80% foreground vs. 20% background
31. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
I LUSTRASI
G AMBAR : Antrian bertingkat
32. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
A LGORITMA : A NTRIAN UMPAN BALIK BERTINGKAT
Sebuah proses dapat berpindah antar berbagai antrian, penerapan
aging
Didefinisikan melalui beberapa parameter:
jumlah antrian
algoritma penjadwalan antar antrian
metode upgrade & downgrade proses
metode untuk menentukan antrian yang dimasuki ketika perlu layanan
33. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
I LUSTRASI
3 antrian masing-masing:
Q1 = RR 8 ms
Q2 = RR 16 ms
Q3 = FCFS
Penjadwalan:
Sebuah proses yang memasuki Q1 akan mendapat alokasi waktu 8 ms.
Jika tidak selesai dipindahkan ke Q2
Di Q2 , sebuah proses mendapatkan tambahan 16 ms. Jika belum selesai
juga, dipindahkan ke Q3
34. Sistem Operasi - Penjadwalan CPU -
Kriteria penjadwalan & algoritma
I LUSTRASI
G AMBAR : Penjadwalan umpan balik betingkat
35. Sistem Operasi - Penjadwalan CPU -
Penjadwalan thread
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
36. Sistem Operasi - Penjadwalan CPU -
Penjadwalan thread
KONSEP
Penjadwalan berbeda antara user level dan kernel level thread
User level: process contention scope, thread bersaing di dalam proses
yang sama
Kernel level: system contention scope, thread bersaing dengan thread lain
dalam mendapatkan layanan CPU
37. Sistem Operasi - Penjadwalan CPU -
Penjadwalan thread
I LUSTRASI : POSIX
PTHREAD SCOPE PROCESS: menjadwal thread menggunakan PCS
PTHREAD SCOPE SYSTEM: menjadwal thread menggunakan SCS
#include <pthread.h>
#include <stdio.h>
#define NUM THREADS 5
int main(int argc, char *argv[]) {
int i;
pthread t tid[NUM THREADS];
pthread attr t attr;
/* get the default attributes */
pthread attr init(&attr);
/* set the scheduling algorithm to PROCESS or SYSTEM */
pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM);
/* set the scheduling policy - FIFO, RT, or OTHER */
pthread attr setschedpolicy(&attr, SCHED OTHER);
38. Sistem Operasi - Penjadwalan CPU -
Penjadwalan thread
I LUSTRASI : POSIX
/* create the threads */
for (i = 0; i < NUM THREADS; i++)
pthread create(&tid[i],&attr,runner,NULL);
/* now join on each thread */
for (i = 0; i < NUM THREADS; i++)
pthread join(tid[i], NULL); }
/* Each thread will begin control in this function */
void *runner(void *param) {
printf("I am a threadn");
pthread exit(0);
}
39. Sistem Operasi - Penjadwalan CPU -
Penjadwalan thread
JAVA
JVM: menggunakan Preemptive, Priority-Based Scheduling Algorithm
FIFO digunakan jika ada beberapa thread dengan prioritas yang sama
Prioritas:
minimum: Thread.MIN_PRIORITY
maksimum: Thread.MAX_PRIORITY
normal: Thread.NORM_PRIORITY
JMV menjadwal eksekusi thread ketika:
ada thread yang selesai dieksekusi
ada thread dengan prioritas lebih tinggi
40. Sistem Operasi - Penjadwalan CPU -
Penjadwalan pada multiprosesor
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
41. Sistem Operasi - Penjadwalan CPU -
Penjadwalan pada multiprosesor
Penjadwalan lebih kompleks ketika diterapkan dalam arsitektur
multiprosesor
Opsi:
prosesor homogen
prosesor asimetrik:
tidak mendukung sharing data,
ada I/O device yang hanya terhubung dengan satu prosesor,
program yang dikompilasi sebuah prosesor hanya bisa dijalankan di prosesor
tersebut
prosesor simetrik:
mendukung sharing data
self scheduling, tidak boleh terjadi dua prosesor menjadwal proses yang
sama
42. Sistem Operasi - Penjadwalan CPU -
Penjadwalan pada multiprosesor
M ULTICORE
Beberapa prosesor dikemas dalam satu chip
Lebih cepat & konsumsi daya lebih rendah
G AMBAR : Multithreaded pada multicore
43. Sistem Operasi - Penjadwalan CPU -
Contoh pada berbagai OS
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 KONSEP
4 K RITERIA PENJADWALAN & ALGORITMA
5 P ENJADWALAN THREAD
6 P ENJADWALAN PADA MULTIPROSESOR
7 C ONTOH PADA BERBAGAI OS
44. Sistem Operasi - Penjadwalan CPU -
Contoh pada berbagai OS
S OLARIS
G AMBAR : Solaris dispatch table
45. Sistem Operasi - Penjadwalan CPU -
Contoh pada berbagai OS
S OLARIS
G AMBAR : Penjadwalan pada Solaris
46. Sistem Operasi - Penjadwalan CPU -
Contoh pada berbagai OS
S OLARIS
G AMBAR : Penjadwalan Solaris2
47. Sistem Operasi - Penjadwalan CPU -
Contoh pada berbagai OS
W INDOWS XP
G AMBAR : Prioritas Windows XP