Rabu, 14 November 2012

Apa itu Dispatching Algorithm ?

Kali ini saya kembali membahasa mengenai sistem operasi namun ternyata didalamnya terdapat algoritma yang memanage penjadwalan kerja suatu proses atau sebuah thread pada sistem operasi. Dispatching Algorithm merupakan sebuah algoritma penjadwalan jangka pendek (short-therm scheduller) yang bertugas dalam memanage kerja suatu proses atau thread yang terjadi pada sistem operasi. Dispatching Algorithm adalah algoritma yang berperan penting dalam teknologi processor yang mengatur jalannya suatu proses yang berurutan pada suatu antrian yang dapat mengeksekusi setiap thread pada sistem operasi dengan dua processor, dengan kata lain algoritma ini digunakan dalam sistem cara kerja CPU untuk mengeksekusi suatu proses yang terdiri dari beberapa thread berbeda secara berurutan sesuai urutan antrian. 

Sementara itu beberapa algoritma yang terdapat dalam algoritma penjadwalan CPU sbb :
  • Algoritma FIFO (First-in, First-out) : merupakan algoritma yang menjalankan proses-proses yang telah diberi waktu pemroses yang diurutkan berdasarkan waktu kedatangan proses-proses tersebut menuju sistem, setelah masing-masing proses mendapat jatah waktu pemroses barulah proses dijalankan oleh processor hingga selesai. (Algoritma nonpreemptive)
  • Algoritma SJF (Shortest Job First) : merupakan algoritma yang mengatur proses berdasarkan prioritas yang tinggi yang telah dijadwalkan sebelumnya secara FIFO atau FCFS (First-come, First-serve), mekanisme SJF ini lebih kepada mendahulukan penjadwalan proses yang selesai terlebih dahulu dalam jangka waktu terpendek sampai selesai setelah itu SJF akan mengeksekusi penjadwalan selanjutnya dengan waktu terpendek lainnya begtitu seterusnya hingga semua proses selesai dijalankan. (Algoritma nonpreemptive)
  • Algoritma PS (Priority Schedulling) : merupakan algoritma yang memberi suatu prioritas pada setiap proses dan proses yang mempunyai prioritas tertinggi memiliki waktu pemroses yang akan dijalankan atau dieksekusi terlebih dahulu (running). (Algoritma preemptive)
  • Algoritma RR (Round-robin) : merupakan algoritma yang menganggap semua proses penting untuk dieksekusi sehingga pada masing-masing proses diberi sejumlah waktu pemroses yang disebut kwanta (quantum) atau time-slice tempat dimana proses tersebut akan dijalankan. Proses akan berjalan selama satu kwanta yang kemudian penjadwalan akan mengalihkan pada pemroses dan akan mengeksekusi proses berikutnya selama 1 kwanta begitu seterusnya hingga kembali pada proses pertama dan berulang. (Algoritma preemptive)
Penggambara algoritma penjadwalan pada CPU :

Algoritma FIFO

Misal  : Terdapat tiga proses  P1 ,  P2 ,  &  P
Contoh :


Gant chart sesuai antrian konsep FIFO :

 
Maka :  
  • Waktu tunggu untuk P1 adalah 0, Padalah 24 dan P3 adalah 27 
  • Rata-rata waktu tunggu adalah ( P1 +   P2 +  P) / 3 = ( 0 + 24 + 27 ) / 3 = 17 milidetik
  • Jika urutan prosesnya   P2 ,  P3 , P1 maka ( P2 +  P3 +  P1  ) / 3 = ( 6 + 0 + 3 ) / 3 = 3 milidetik. Gambar Gant Chartnya : 
 
Algoritma SJF

Misal : Terdapat empat proses P1 ,  P2 ,  P3 , & P4
Contoh :

Cara 1

 

Cara 2 

 

Pada contoh diatas cara satu dan cara dua mempunyai urutan proses yang berbeda dengan jumlah urutan kwanta yang berbeda pula yaitu : 
  • Pada cara 1 :  P1 =  8 ,  P2 = 7 ,  P3 = 6, dan P4 = 5 dengan urutan proses P1 ,  P2 ,  P3 ,  P4
  • Pada cara 2 : P1  =  8 ,  P2 = 7 ,  P3 = 6, dan P4 = 5 dengan urutan proses  P4 ,  P3 ,  P2 , P1
Maka :
  • Tabel penyelesaian 
 
Penjelasan :
  • Kedua cara menghasilkan turn arround time yang berbeda.
  • Cara penghitungan :
P1 = P1
P2 = P1  + P2
P3 = P1  + P2 + P3
P4 = P1  + P2 + P3 + P4
Dimana : P1 =  8 ,  P2 = 7 ,  P3 = 6, dan P4 = 5

Algoritma PS
 
Misal : Terdapat empat proses P1 ,  P2 ,  P3 ,  P4 , &  P5
Contoh :


Grant chartnya sesuai dengan algoritma PS :

Karena algoritma PS mendahulukan proses yang akan di running terlebih dahulu dilihat dari jumlah parity maka :
  • Waktu tunggu untuk P1 adalah 6, Padalah 0,  P3 adalah 16, P4 adalah 18 dan P5 adalah 1
  • Rata-rata waktu tunggu adalah ( P1 +   P2 +  P3+  P4 +  P) / 5 = ( 6 + 0 + 16 + 18 + 1 ) / 5 = 8,2 milidetik
Algoritma RR 

Misal  : Terdapat tiga proses  P1 ,  P2 ,  &  P3 dengan quantum time 4 milidetik
Contoh :

Grant chartnya sesuai dengan algoritma RR :

  

Maka :
  • Waktu tunggu untuk P1 adalah 6, Padalah 4, dan  P3 adalah 7
  • Rata-rata waktu tunggu adalah ( P1 +   P2 +  P3 ) / 3 = ( 6 + 4 + 7 ) / 3 = 5,66 milidetik
Semoga bermanfaat :)

0 komentar:

Posting Komentar

are you comment my blog ? ^.^