Langsung ke konten utama

Menghitung Average Waiting Time dalam Algoritma Penjadwalan Shortest Job First (SJF)

Pada postingan sebelumnya saya sudah membahas tentang bagaimana cara menghitung Average Waiting Time dalam algorima penjadwalan First Come First Served (FCFS), pada postingan kali ini saya masih membahas tentang cara mencari Average waiting time dari sebuah algoritma penjadwalan namun kali ini mencarinya dengan cara Shortest Job First (SJF). 

SJF adalah salah satu bentuk algoritma penjadwalan yang dipengaruhi oleh waktu tunggu dari sebuah proses. Apabila suatu proses memiliki waktu tunggu paling sedikit dalam pemrosesannya maka proses tersebut yang akan di kerjakan terlebih dahulu. Pada SJF tidak ada penyelaan karena SJF ini bersifat Non Preemtive.

Sudah paham tentang bagaimana cara kerja SJF? Kalau belum, baca kembali pengertian di atas agar anda lebih paham. Mempersingkat waktu, saya akan lanjutkan tentang pembahasan soal tentang mencari average waiting time dengan SJF. Soalnya masih sama dengan postingan sebelumnya dengan table yang sama.


Dari table di atas tentukan average waiting time dengan algoritma penjadwalan SJF!

Penyelesaian:

Hal yang pertama dilakukan sama seperti postingan sebelumnya, yaitu membuat Gantt Chart, berikut gambarnya:
Awalnya ketika CPU tidak melakukan aktifitas apapun alias lagi nganggur, datang sebuah proses yang bernama P1 untuk diproses yaitu pada titik 0. Pada saat itu P1 membutuhkan waktu proses sejumlah 8. Namun baru berjalan sejumlah 2, tiba-tiba datang P2 meminta untuk di proses, tapi hal ini tidak akan di izinkan oleh CPU karena dalam SJF tidak diizinkan sebuah penyelaan, proses yang sudah di proses akan di kerjakan hingga selesai. Maka dengan itu P1 akan di proses sampai selesai pada titik 8.

Pada titik 8, sudah terlihat bahwa P2 dan P3 sedang menunggu untuk di proses. Pada saat ini CPU kembali mengecek jumlah waktu tunggu dari ke dua proses tersebut. dan dapat di lihat bahwa P2 memiliki waktu pengerjaan lebih sedikit dibandingkan dengan P3. Maka P2 lah yang dikerjakan terlebih dahulu. Begitu seterusnya, setiap CPU menyelesaikan proses dia akan melakukan pengecekan dari waktu tunggu proses yang sedang menunggu, yang terkecil akan di proses lebih awal.

Ingat: SJF tidak ada proses penyelaan (Non Preemptive)
Hal kedua yang dilakukan untuk menghitung average waiting time yaitu dengan menghitung berapa lama waktu tunggu yang dihasilkan oleh proses tersebut. Untuk menhitungnya dapat dilakukan dengan cara mengurangkan waktu eksekusi dengan waktu datang.


Hal ketiga dan juga hal yang terakhir yang harus dilakukan yaitu menghitung Average Waiting Time dari semua proses tersebut, yaitu dengan cara sebagai berikut:

Sekian artikel ini, semoga apa yang saya jelaskan bisa anda mengerti dan bisa bermanfaat bagi kalian semua. 


Artikel Terkait:

Mohon untuk membaca Kebijakan Privasi sebelum mengambil data dari blog ini atau sebelum berkomentar.

Komentar

  1. aku masih belum ngerti .. :| 8-} ~x(

    BalasHapus
  2. @Hikmah SK
    setau ku untuk Algoritma SJF itu, pengurutannya dipengaruhi oleh waktu tunggu dalam pengerjaan sebuah proses, tidak memperhitungkan kapan proses itu datang. seumpamanya proses 1 datang di detik ke 0, dengan jumlah waktu pengerjaan 8, namun ketika detik ke 2 datang sebuah proses dengan waktu pengerjaan 7. Nah karena proses 1 sudah berjalan sejauh 2, maka tinggal 6. Jadi proses 1 akan tetap dijalankan. seperti itu :-/

    BalasHapus
  3. SJF kenapa susah dipahami :)]

    BalasHapus
  4. kalau di SJF lihat waktu tunggu dari kedatangannya @rika priyanti, jika waktu tunggu dari kedatangan sebuah proses lebih kecil dari proses yang telah berjalan sebelumnya, maka yang dijalankan adl proses yang memiliki waktu tunggu yang lebih sedikit... itu sich setau ku :)

    BalasHapus
    Balasan
    1. kalo mmg gt, knapa p4 nya dluan dikerjain dibanding p3??
      kan p4 arrival nya lebih besar dibanding p3..
      p4 at nya 11, p3 at nya 7..
      walaupun p4 itu bt nya lebih kecil, harusnya yg diutamain p3 dulu..

      gt sih kata dosen..

      Hapus
    2. Arrival time itu waktu kedatangan proses mbak, jadi waktu ini menunjukkan kapan proses itu datang dalam antrian. sedangkan yg diperhitungkan dalam SJF adalah burst time yg paling sedikit itu yg duluan dikerjakan.

      coba deh mbak baca kembali pelan2 gantt chatnya. disana sudah ada urutan kapan suberdaya datang dan mengantri untuk diproses sampai dengan sumberdaya dilayani untuk diproses.

      semoga bisa menjawab

      Hapus
    3. kalau yg mbak @julia maksud itu logika FCFS yg mengutamakan waktu kedatangan sebagai prioritas utama dalam pengerjaan sumber daya.

      Hapus
  5. Itu dapat angka 15,21,31 dari mana ya kok tidak di jelaskan ?

    BalasHapus
    Balasan
    1. Itu penjumlahan burst times dari proses sebelumnya

      Hapus
  6. Komentar ini telah dihapus oleh administrator blog.

    BalasHapus
  7. maaf gan mau tanya , jika arrival time p1=1 cara penyelesaanya bagaimana gan ? makasih

    BalasHapus
    Balasan
    1. Coba baca kembali penjelasan yg saya berikan. Cara penyelesaiannya sama, arrival time adl waktu kedatangan proses saja. Yg mempengaruri SJF adl waktu pengerjaan dan apabila sebelumnya sudah ada proses yg berjalan maka proses tsb akan di selesaikan terlebih dahulu, setelah selesai baru di cek kembali proses yg mana punya waktu pengerjaan yang paling sedikit.

      Konsepnya mencari waktu yg paling sedikit namun tidak boleh menyela proses. Itu inti SJF

      Hapus

Posting Komentar

Tolong berkomentar yang baik dan sopan