materi sebelumnya ke 1 ada pada blog Ihsan Taufik :
http://opiicko.blogspot.com/2013/03/penjadwalan-proses.html
C. Algoritma Penjadwalan
Penjadwalan Proses
Penjadwalan
merupakan kumpulan kebijaksanaan dan mekanisme pada sistem operasi yang
berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan bertugas
memutuskan proses yang harus berjalan dan kapan serta berapa lama proses itu
berjalan. Penjadwalan didasarkan pada sistem operasi yang menggunakan Multiprogramming.
Dengan cara mengalihkan kerja CPU untuk beberapa proses, maka CPU akan semakin
produktif. Konsep dasar dari Multiprogramming ini adalah suatu proses akan menggunakan CPU
sampai proses berada dalam status menunggu atau selesai. Pada saat menunggu, maka
CPU akan menganggur. Untuk mengatasi hal ini, maka CPU dialihkan ke proses lain
yang ada, saat suatu proses sedang dalam keadaan menunggu, demikian seterusnya.
Terdapat
banyak algoritma penjadwalan baik non preemptive maupun preemptive.
Penjadwalan non preemptive yaitu begitu proses diberi jatah waktu
pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses
selesai dan dilanjutkan dengan menunggu jatah waktu pemroses tiba kembali pada
proses tersebut. Sebaliknya pada penjadwalan preemptive proses dapat disela dan diambil alih dengan proses
lainnya, walaupun prosesnya belum selesai dikerjakan, dan menunggu jatah waktu untuk
melanjutkan proses semula.
Terdapat dua strategi penjadwalan, yaitu :
1.
Penjadwalan nonpreemptive
Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil
alih oleh proses lain sampai proses itu selesai.
2.
Penjadwalan preemptive
Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih
proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu. Berguna pada sistem
dimana proses-proses yang mendapat perhatian/tanggapan pemroses secara cepat.
Berikut jenis-jenis algoritma
berdasarkan penjadwalan :
1. Nonpreemptive, adalah proses yang tidak dapat diambil alih oleh proses lain sampai prose situ selesai. Algoritma ini
menggunakan konsep :
FIFO ( First In First Out) atau FCFS (First
Come First Serve )
SJF ( Shortest Job First )
HRN ( Highest Ratio Next )
MFQ ( Multiple Feedback Queues )
2. Preemptive, adalah proses yang dapat diambil alih oleh proses lain
sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu pemproses
tiba kembali pada prose situ. Algoritma ini menggunakan konsep :
RR ( Round Robin )
SRF ( Shortest Remaining First )
PS ( Priori ty Schedulling )
GS ( Guaranteed Schedulling )
Pada sumber A mengatakan bahwa Algoritma Penjadwalan sebagai berikut
q Algoritma Penjadwalan
1. First In First Out
2. Last In First Out
3. Shortest Job Next
4. Shortest Remaining Time
5. Round Robin
6. Multilevel Feedback
Pada sumber B mengatakan bahwa Algoritma
Penjadwalan sebagai berikut
q Algoritma Penjadwalan
1. First-come, first-served (FCFS)
2. Shortest-Job-First (SJF)
3. Priority
4. Round-Robin (RR)
5. Multilevel Queue
6. Multilevel Feedback Queue
Tetapi, disini saya hanya akan membahas lebih detail mengenai penjadwalan First
In First Out (FIFO), Last In First Out (LIFO), Shortest Job Next (SJN), Shortest
Remaining Time (SRT), Priority dan Round Robin. Di bawah ini penjelasan
lengkapnya :
First In First Out
FIFO adalah singkatan dari First In First Out atau ada juga yang menyebut
First Come First Serve di mana berarti yang masuk pertama maka akan keluar
pertama pula. Algoritma ini merupakan algoritma
penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan
algoritma ini, setiap proses yang berada pada status ready dimasukkan ke dalam
antrian First in First out sesuai dengan waktu kedatangannya. Proses yang tiba
terlebih dahulu yang akan dieksekusi.
Contoh :
Process
Burst Time
P1 24
P2 3
P3
3
Diketahui
proses yang tiba adalah P1, P2, P3. Gant
chart-nya adalah :
Waiting
time untuk P1 = 0; P2 = 24; P3 = 27
1. Waiting time rata-ratanya adalah sebesar (0+24+27)/3 =17 ms.
2. Turnaround time untuk P1 sebesar 24 ms, sedangkan untuk P2
sebesar 27 ms (dihitung dari awal kedatangn P2 hingga selesai dieksekusi),
untuk P3 sebesar 30 ms.
3. Turnaround time rata-rata untuk ketiga proses tersebut adalah
(24+27+30)/3 = 27 ms
Kelemahan algoritma ini :
a. Waiting time rata-ratanya cukup lama.
b. Terjadinya convoy effect, yaitu proses-proses menunggu lama
untuk menunggu satu proses besar yang sedang dieksekusi oleh CPU. Algoritma ini
juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang
dieksekusi oleh CPU tidak dapat di-interrupt oleh proses lain.
materi berikutnya ke 3 ada pada link Neng Julia :
http://juliaandrianiputri.blogspot.com/2013/03/os.html
materi ke 4 ada pada blog Rifky :
http://rifky4s.blogspot.com/
materi ke 4 ada pada blog Rifky :
http://rifky4s.blogspot.com/
Tidak ada komentar:
Posting Komentar