Rabu, 27 Maret 2013

Penjadualan Proses




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 :







Tidak ada komentar:

Posting Komentar