6-Penjadwalan & Interaksi Proses

Download Report

Transcript 6-Penjadwalan & Interaksi Proses

Penjadwalan dan Interaksi Proses
Oleh :
Wahyu Andhyka Kusuma
081233148591
[email protected]
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 massstorage (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 createprocess.
• 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.
2.
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
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
PROSES
BRUST TIME
WAKTU KEDATANGAN
P1
24
0
P2
3
1
P3
3
2
Gant Chart :
T
P2
P1
0
Waiting Time
P1 = 0 | P2 = 24 – 1 = 23
Average Waiting Time =
Turn Around Time
T
T
P3
24
27
|
P3 = 27 – 2 = 25
0 + 23 + 25
= 16
3
P1 = 24 | P2 = 27 – 1 = 26 | P3 = 30 – 2 = 28
Average Turn Arround Time =
24 + 26 + 28
= 26
3
30
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
PROSE
S
BRUST TIME
WKT
KEDATANGAN
P1
9
0
P2
6
1
Gant Chart :
T
P1
0
Waiting Time
Time Quantum
3
P2
P1
6
3
P1 = 0 + 3 + 3 = 6
Average Waiting Time =
Turn Around Time
P2
9
P1
12
15
| P2 = ( 3 - 1 ) + 3 = 5
6 + 5
= 5.5
2
P1 = 15 | P2 = 12 – 1 = 11
Average Turn Arround Time =
T
15 + 11
= 13
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
PROSES
BRUST TIME
WKT KEDATANGAN
PRIORITY
P1
9
0
3
P2
6
1
2
P3
3
2
1
Gant Chart :
P1 P2
0
1
T
T
P2
P3
2
5
T
P1
10
18
Waiting Time
P1 = 0 + ( 10 – 1 ) = 9 | P2 = 0 + ( 5 – 2 ) = 3 | P3 = 0
9 + 3+ 0
Average Waiting Time =
= 4
3
Turn Around Time
P1 = 18 | P2 = 10 – 1 = 9 | P3 = 5 – 2 = 3
Average Turn Arround Time =
18 + 9 + 3
= 10
3
Contoh Kasus Priority Non-preemptive
PROSES
BRUST TIME
WKT KEDATANGAN
PRIORITY
P1
9
0
3
P2
6
1
2
P3
3
2
1
Gant Chart :
P1
T
P2
P3
9
0
Waiting Time
T
T
12
P1 = 0 |
18
P2 = ( 12 - 1 ) = 11 | P3 = ( 9 - 2 ) = 7
0 + 11 + 7
Average Waiting Time =
= 6
3
Turn Around Time P1 = 9 | P2 = 18 – 1 = 17 | P3 = 12 – 2 = 10
Average Turn Arround Time =
9 + 17 + 10
= 12
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
PROSES
BRUST TIME
WKT KEDATANGAN
P1
9
0
P2
6
1
P3
3
2
Gant Chart :
P1 P2
0
1
T
T
P2
P3
2
5
T
P1
10
18
Waiting Time
P1 = 0 + ( 10 – 1 ) = 9 | P2 = 0 + ( 5 – 2 ) = 3 | P3 = 0
9 + 3+ 0
Average Waiting Time =
= 4
3
Turn Around Time
P1 = 18 | P2 = 10 – 1 = 9 | P3 = 5 – 2 = 3
Average Turn Arround Time =
18 + 9 + 3
= 10
3
Contoh Kasus SJF Non-preemptive
PROSES
BURST TIME
WKT KEDATANGAN
P1
9
0
P2
6
1
P3
3
2
Gant Chart :
P1
T
P2
P3
9
0
Waiting Time
T
T
12
P1 = 0 |
18
P2 = ( 12 - 1 ) = 11 | P3 = ( 9 - 2 ) = 7
0 + 11 + 7
Average Waiting Time =
= 6
3
Turn Around Time P1 = 9 | P2 = 18 – 1 = 17 | P3 = 12 – 2 = 10
Average Turn Arround Time =
9 + 17 + 10
= 12
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)
b)
c)
d)
e)
FCFS
SJF ( preemptive )
Round-Robin, q = 2
Round-Robin, q = 5
Priority ( non-preemptive )