Quote:

algoritma penjadwalan : SJP

Shortest Job First (SJF) Merupakan penjadwalan tidak berprioritas dan Non Preventive. Maksud Non Preveentive disini ialah ketika proses diberi jatah waktu penggunaan prosessor maka processor tidak dapat diambil proses lain, sampai proses tersebut selesai di eksekusi. Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah. Dalam artian waktu yang digunakan saat program (job) mulai masuk ke system sampai proses diselesaikan system, membutuhkan waktu yang singkat. Shortest Job First (SJF) bisa dikatakan algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu yang minimal.
Misalnya terdapat empat proses dengan CPU Burst dalam milidetik.

::Proses dengan CPU Burst dalam milidetik::
Penjadwalan proses dengan algoritma SJF (non-Preventive) dapat dilihat dalam gant chart berikut :
::Gant chart algoritma SJF (non-Preventive)::
Waktu tunggu untuk P1 adalah 0, P2  adalah 26, P3  adalah 3 dan P4  adalah 7 sehingga rata-rata waktu tunggu adalah  (0 + 6 + 3 + 7)/4 = 4 milidetik
Contoh lain untuk algoritma Shortest Job First (SJF), misalnya terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C adalah 8, untuk D adalah 12 dan untuk A adalah 20.
Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul saat menggunakan algoritma ini adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan membuat estimasi atau perkiraan berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga penetapannya harus dinamis.
Permasalahan lain yang muncul dalam algoritma ini adalah bisa saja saat kondisi-kondisi tertentu, suatu job mungkin tidak pernah menyelesaikan eksekusinya. Saya beri contoh, misalnya terdapat proses A dengan elapse time 1 jam tiba pada waktu 0. Namun pada waktu yang bersamaan dan setiap satu menit berikutnya tiba proses singkat dengan elapse time 2 menit. Hasilnya, bisa saja proses A tidak pernah mendapat jatah eksekusi.

0 komentar:

Posting Komentar