Anda di halaman 1dari 46

Penjadwalan dan Interaksi Proses

Oleh :
Wahyu Andhyka Kusuma
081233148591
Wahyu_dink@umm.ac.id

Definisi Proses
Proses merupakan program yang sedang
dieksekusi
Status Proses
Diskusikan Permasalahan Berikut :
Fungsi Penjadwalan Proses
Perbedaan Job Queue, Ready Queue dan Device
Queue
Proses Creation dan Proses Termination

Penjadwalan Proses
Pada lingkungan multiprograming beberapa proses
harus dijadwalkan untuk memaksimalkan kinerja
CPU
Pada lingkungan time-shared, CPU sering di-switch
diantara diantara proses dimana user harus
berinteraksi untuk setiap program saat dirunning
Pada sistem uniproses, tidak pernah terjadi lebih
dari satu proses yang dirunning, bila terdapat
banyak proses, harus menunggu sampai CPU bebas
dan dapat dijadwalkan ulang
Scheduling Queue
Secara umum antrian penjadwalan dapat
diklasifikasikan menjadi 3:
Job Queue : antrian berisi semua proses yang
akan masuk sistem
Ready Queue : tempat proses dimemori utama
yang menunggu dieksekusi
Device queue : deretan proses yang menunggu
peralatan I.O
Setiap antrian disimpan sebagai linkedlist.
Header berisi pointer PCB pertama dan terakhir
dari List
Ready Queue dan Device Queue
Diagram Antrian Penjadwalan Proses
Scheduler
Scheduler dilibatkan untuk memilih proses dari
scheduling queue yang berbeda
Secara umum terdapat 3 :
Long Term Scheduler (Job Scheduler)
Short Term Scheduler (CPU Scheduler)
Medium Term Scheduler
Long Term Scheduler
Proses pada sistem batch di-spool ke mass-
storage (disk)
Long Term Scheduler digunakan untuk memilih
proses dari pool dan menyimpan ke memory
Long term Scheduler tidak sering
dmengeksekusi, digunakan hanya jika proses
meninggalkan sistem

Short Term Scheduler
Short term scheduler digunakan untuk memilih
diantara proses yang siap dieksekusi dan salah
satunya dialokasikan ke CPU
Short term scheduler sering digunakan untuk
memilih proses baru untuk CPU, broses dieksekusi
hanya beberapa milidetik sebelum menunggu I.O
Contoh : Jika Short term membutuhkan 10ms untuk
memutuskan mengeksekusi 100ms maka 10/100 :
10% CPU digunakan untuk penjadwalan
Medium term scheduler
Beberapa OS seperti time-sharing
membutuhkan penjadwalan level tambahan
yang disebut medium term scheduler

Operasi-Operasi Proses
Proses-proses dalam sistem dapat dijalankan
secara konkuren dan harus diciptakan serta
dihapus secara dinamis.
Sistem Operasi harus menyediakan mekanisme
untuk proses creation dan termination

Proses Creation
Satu proses dimungkinkan untuk membuat
sejumlah proses baru melalui system call create-
process.
Proses yang dibuat sebelumnya disebut parent
process, sedangkan proses yang baru disebut
childern process.
Proses baru ini juga dimungkinkan membuat
proses yang lebih baru lagi.
Proses Creation
Pada saat sebuah proses membuat
proses baru, terdapat dua
kemungkinan pada proses eksekusi.
Parent melanjutkan eksekusi secara
konkuren dengan childern
Parent menunggu sampai beberapa atau
semua childern terminate.
Proses Creation
Terdapat pula dua kemungkinan pada
address space proses baru :
Child process merupakan duplikat dari
parent process
Child Process memiliki program untuk di-load ke
dalam address space.
Process Termination
Sebuah proses terminate ketika proses itu
selesai mengeksekusi instruksi terakhir dan
meminta sistem operasi untuk menghapusnya
melalui system call.

Tahukah Kalian Apa beda dari
Penjadwalan Proses
dan
Penjadwalan CPU
Konsep Penjadwalan CPU
Penjadualan CPU adalah basis dari multi
programming sistem operasi
Dengan men-switch CPU diantara proses,
sistem operasi dapat membuat komputer
produktif
Konsep Dasar Penjadwalan
Tujuan dari multi programming adalah untuk
mempunyai proses berjalan secara bersamaan
Ketika suatu proses harus menunggu, Sistem
operasi dapat saja akan menghentikan CPU dari
suatu proses yang sedang dieksekusi dan
memberikan sumberdaya kepada proses yang
lainnya
Konsep Dasar Penjadwalan
CPU adalah salah satu sumber dari komputer
yang penting yang menjadi sentral dari sentral
penjadualan di sistem operasi
Kapanpun CPU menjadi idle, sistem operasi
harus memilih salah satu proses untuk masuk
kedalam antrian ready (siap) untuk dieksekusi
Penjadwalan Preemptive dan Non
Preemptive
Penjadwalan preemptive :
Strategi yang mengijinkan proses yang sedang
dieksekusi untuk ditangguhkan sementara
digunakan oleh windows 95 ke atas
Penjadwalan non preemptive :
Sekali CPU telah dialokasikan untuk sebuah
proses, maka tidak dapat di ganggu
digunakan oleh windows 3.X
Kriteria Penjadualan
Algoritma penjadualan CPU yang berbeda
mempunyai property yang berbeda.
Dalam memilih algoritma yang digunakan untuk
situasi tertentu, kita harus memikirkan properti
yang berbeda untuk algoritma yang berbeda.
Banyak kriteria yang dianjurkan untuk
membandingkan penjadualan CPU algoritma.
Kriteria Penjadualan
1. CPU utilization kita ingin menjaga CPU sesibuk
mungkin. CPU utilization akan mempunyai range dari
0 ke 100 persen. Di sistem yang sebenarnya
seharusnya ia mempunyai range dari 40 persen samapi
90 persen
2. Throughput jika CPU sibuk mengeksekusi proses,
jika begitu kerja telah dilaksanakan. Salah satu ukuran
kerja adalah banyak proses yang diselesaikan per unit
waktu, disebut througput. Untuk proses yang lama
mungkin satu proses per jam ; untuk proses yang
sebentar mungkin 10 proses perdetik.
Kriteria Penjadualan
3. Turnaround time dari sudut pandang proses
tertentu, kriteria yang penting adalah berapa lama
untuk mengeksekusi proses tersebut. Interval dari
waktu yang dijinkan dengan waktu yang
dibutuhkan untuk menyelesaikan sebuah prose
disebut turn around time. Turn around time
adalah jumlah periode untuk menunggu untuk
dapat ke memori, menunggu di ready queue,
eksekusi di CPU, dan melakukan I/O
4. Waiting time algoritma penjadualan CPU tidak
mempengaruhi waktu untuk melaksanakan proses
tersebut atau I/O; itu hanya mempengaruhi jumlah
waktu yang dibutuhkan proses di antrian ready.
Waiting time adalah jumlah periode menghabiskan
di antrian ready.
Kriteria Penjadualan
5. Response time di sistem yang interaktif, turnaround time
mungkin bukan waktu yang terbaik untuk kriteria. Sering
sebuah proses dapat memproduksi output diawal, dan dapat
meneruskan hasil yang baru sementara hasil yang
sebelumnya telah diberikan ke user. Ukuran yang lain adalah
waktu dari pengiriamn permintaan sampai respon yang
pertama di berikan. Ini disebut response time, yaitu waktu
untuk memulai memberikan respon, tetapi bukan waktu
yang dipakai output untu respon tersebut.

Biasanya yang dilakukan adalah memaksimalkan CPU
utilization dan throughput, dan minimalkan turnaround
time, waiting time, dan response time dalam kasus tertentu
kita mengambil rata-rata.
Dispatcher
Komponen yang lain yang terlibat dalam
penjadualan CPU adalah dispatcher yang
berfungsi :
Switching context
Switching to user mode
Lompat dari suatu bagian di progam user untuk
mengulang progam
Algoritma Penjadualan
First-Come, First-Served
Algoritma ini akan mendahulukan proses yang
lebih dulu datang
Kelemahan algoritma ini adalah waiting time
rata-rata yang cukup lama
Muncul istilah convoy effect, dimana proses lain
menunggu satu proses besar mengembalikan
sumber daya CPU
Algoritma ini nonpreemptive
Algoritma Penjadualan
Round-Robin Schedulling
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.
Tak ada proses yang diprioritaskan
Jika time quantum terlalu besar, sama saja dengan
algoritma first-come first-served, jika terlalu kecil
akan semakin banyak peralihan proses sehingga
banyak waktu terbuang
Algoritma Penjadualan
Priority Schedulling
Algoritma ini memberikan skala prioritas kepada tiap
proses
Proses yang mendapat prioritas terbesar akan
didahulukan.
Algoritma ini dapat preemptive maupun
nonpreeemptive
Kelemahan dari algoritma ini adalah proses dengan
prioritas kecil tidak akan mendapat jatah CPU. Hal ini
dapat diatasi dengan aging, yaitu semakin lama
menunggu, prioritas semakin tinggi.
Algoritma Penjadualan
Multilevel Queue Schedulling
Algoritma ini mengelompokkan antrian dalam
beberapa buah antrian
Antrian-antrian tersebut diberi prioritas
Tiap antrian boleh memiliki algoritma yang
berbeda
Semakin tinggi tingkatan prioritasnya, semakin
besar jatah waktu CPU-nya
Algoritma Penjadualan
Shortest-Job First Schedulling
Proses diatur menurut panjang CPU burst berikutnya
(lebih tepatnya shortest next CPU burst).
Waiting time rata-rata dari algoritma ini sangat kecil,
sehingga layak disebut optimal
Kelemahan algoritma ini yaitu kita tak pernah tahu secara
pasti panjang CPU burst proses berikutnya
Algoritma ini dapat merupakan preemptive atau
nonpreemptive. Jika preemptive, jika ada proses datang
dengan sisa CPU burst yang lebih kecil daripada yang
sedang dieksekusi, maka proses tersebut akan
menggantikan proses yang sedang dieksekusi
Beberapa istilah yg sering muncul
Average Turn Around Time
Rata-rata waktu total yg dibutuhkan sebuah proses dari datang
sampai selesai dieksekusi oleh CPU

Burst Time
Waktu yg dibutuhkan utk mengeksekusi sebuah proses

Average Waiting Time
Rata-rata waktu yang dihabiskan proses selama berada pada
status ready ( menunggu eksekusi CPU )
Algorithma Penjadwalan
First-Come, First-Served ( FCFS )
Round Robin Schedulling
Priority Schedulling
Shortest-Job First Schedulling ( SJF )
Multilevel Queue Schedulling
First-Come, First-Served
Algoritma ini akan mendahulukan proses yang
lebih dulu datang
Kelemahan algoritma ini adalah waiting time
rata-rata yang cukup lama
Muncul istilah convoy effect, dimana proses lain
menunggu satu proses besar mengembalikan
sumber daya CPU
Algoritma ini nonpreemptive

Contoh Kasus
Gant Chart :
P1 P2 P3
0 24 27 30
T T T
Waiting Time P1 = 0 | P2 = 24 1 = 23 | P3 = 27 2 = 25
Average Waiting Time = = 16
0 + 23 + 25
3
Turn Around Time P1 = 24 | P2 = 27 1 = 26 | P3 = 30 2 = 28
Average Turn Arround Time = = 26
24 + 26 + 28
3
PROSES BRUST TIME WAKTU KEDATANGAN
P1 24 0
P2 3 1
P3 3 2
Round-Robin Schedulling
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.
Tak ada proses yang diprioritaskan
Jika time quantum terlalu besar, sama saja
dengan algoritma first-come first-served, jika
terlalu kecil akan semakin banyak peralihan
proses sehingga banyak waktu terbuang
Contoh Kasus
Waiting Time P1 = 0 + 3 + 3 = 6 | P2 = ( 3 - 1 ) + 3 = 5
Turn Around Time P1 = 15 | P2 = 12 1 = 11
PROSE
S
BRUST TIME WKT
KEDATANGAN
P1 9 0
P2 6 1
Time Quantum
3
Gant Chart :
0
12 15
T T
3 6 9
P1 P2 P1 P2 P1
Average Waiting Time = = 5.5
6 + 5
2
Average Turn Arround Time = = 13
15 + 11
2
Priority Schedulling
Algoritma ini memberikan skala prioritas kepada tiap
proses
Proses yang mendapat prioritas terbesar akan
didahulukan.
Algoritma ini dapat preemptive maupun
nonpreeemptive
Kelemahan dari algoritma ini adalah proses dengan
prioritas kecil tidak akan mendapat jatah CPU. Hal ini
dapat diatasi dengan aging, yaitu semakin lama
menunggu, prioritas semakin tinggi.
Contoh Kasus Priority Preemptive
Waiting Time P1 = 0 + ( 10 1 ) = 9 | P2 = 0 + ( 5 2 ) = 3 | P3 = 0
Turn Around Time P1 = 18 | P2 = 10 1 = 9 | P3 = 5 2 = 3
PROSES BRUST TIME WKT KEDATANGAN PRIORITY
P1 9 0 3
P2 6 1 2
P3 3 2 1
Average Waiting Time = = 4
9 + 3 + 0
3
Average Turn Arround Time = = 10
18 + 9 + 3
3
Gant Chart :
0
T T
5 18 10
P3 P2 P1
T
1
P2
2
P1
Contoh Kasus Priority Non-preemptive
Waiting Time P1 = 0 | P2 = ( 12 - 1 ) = 11 | P3 = ( 9 - 2 ) = 7
Turn Around Time P1 = 9 | P2 = 18 1 = 17 | P3 = 12 2 = 10
PROSES BRUST TIME WKT KEDATANGAN PRIORITY
P1 9 0 3
P2 6 1 2
P3 3 2 1
Gant Chart :
0
T T
9 18 12
P3 P2 P1
T
Average Waiting Time = = 6
0 + 11 + 7
3
Average Turn Arround Time = = 12
9 + 17 + 10
3
Shortest-Job First Schedulling
Proses diatur menurut panjang CPU burst berikutnya
(lebih tepatnya shortest next CPU burst).
Waiting time rata-rata dari algoritma ini sangat kecil,
sehingga layak disebut optimal
Kelemahan algoritma ini yaitu kita tak pernah tahu
secara pasti panjang CPU burst proses berikutnya
Algoritma ini dapat merupakan preemptive atau
nonpreemptive. Jika preemptive, jika ada proses
datang dengan sisa CPU burst yang lebih kecil
daripada yang sedang dieksekusi, maka proses
tersebut akan menggantikan proses yang sedang
dieksekusi
Contoh Kasus JFS Preemptive
Waiting Time P1 = 0 + ( 10 1 ) = 9 | P2 = 0 + ( 5 2 ) = 3 | P3 = 0
Turn Around Time P1 = 18 | P2 = 10 1 = 9 | P3 = 5 2 = 3
PROSES BRUST TIME WKT KEDATANGAN
P1 9 0
P2 6 1
P3 3 2
Average Waiting Time = = 4
9 + 3 + 0
3
Average Turn Arround Time = = 10
18 + 9 + 3
3
Gant Chart :
0
T T
5 18 10
P3 P2 P1
T
1
P2
2
P1
Contoh Kasus SJF Non-preemptive
Waiting Time P1 = 0 | P2 = ( 12 - 1 ) = 11 | P3 = ( 9 - 2 ) = 7
Turn Around Time P1 = 9 | P2 = 18 1 = 17 | P3 = 12 2 = 10
PROSES BURST TIME WKT KEDATANGAN
P1 9 0
P2 6 1
P3 3 2
Gant Chart :
0
T T
9 18 12
P3 P2 P1
T
Average Waiting Time = = 6
0 + 11 + 7
3
Average Turn Arround Time = = 12
9 + 17 + 10
3
Multilevel Queue Schedulling
Algoritma ini mengelompokkan antrian dalam
beberapa buah antrian
Antrian-antrian tersebut diberi prioritas
Tiap antrian boleh memiliki algoritma yang
berbeda
Semakin tinggi tingkatan prioritasnya, semakin
besar jatah waktu CPU-nya
Latihan Soal
PROSES BRUST TIME PRIORITY WKT
KEDATANGAN
P1 10 3 0
P2 2 1 3
P3 5 2 4
Gambar Gant Chart dan Tentukan Avg. Waiting Time serta
Avg. Turn Arround Time dari ketiga proses di atas dengan algoritma :

a) FCFS
b) SJF ( preemptive )
c) Round-Robin, q = 2
d) Round-Robin, q = 5
e) Priority ( non-preemptive )

Anda mungkin juga menyukai