Contoh Perhitungan Perulangan Menggunakan Metode FCFS (First Come, First Served), SJF (Shortest-Job First), dan Round Robin

Untuk memenuhi tugas mata kuliah sistem operasi dari dosen saya, saya meringkas beberapa contoh perhitungan perulangan menggunakan beberapa metode. Ya sejujurnya sih beberapa materi tersebut saya copas dari beberapa website dan beberapa materi yang telah di sampaikan oleh dosen saya
 :D 


  • FCFS / FIFO (FIRST IN FIRST OUT)
FCFS/FIFO bisa diartikan sebagai Proses yg tiba lebih dahulu akan dilayani lebih dahulu.Kalau ada proses tiba pada waktu yg sama, maka pelayanan mereka dilaksanakan melalui urutan mereka dalam antrian.Proses di antrian belakang harus menunggu sampai semua proses di depannya selesai.Setiap proses yang berada pada status ready dimasukkan ke dalam FCFS queue sesuai dengan waktu kedatangannya.


Contoh Soal :
Jika diketahui terdapat 5 macam antrian proses, yaitu A-B-C-D-E dengan waktu kedatangan semuanya 0-1-2-2-5. Lama proses berturut-turut antara lain: 5-2-6-8-3.
Pertanyaan:
Kapan dimulainya eksekusi dari tiap-tiap antrian proses tsb?
Kapan selesai eksekusinya?
Hitung Turn Arround Time (TA)-nya?
Berata rerata TA?
Rumus
TA = Waktu Tunggu + Lama Eksekusi
Rerata TA = ∑TA / ∑Job
Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
jawab:


Kelemahan dari algoritma ini:

-Waiting time rata-ratanya cukup lama.
-Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1    proses besar yang sedang dieksekusi oleh CPU.


* Algoritma ini juga menerapkan konsep nonpreemptive, yaitu setiap proses yang  sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.
  • SJF (Shortest-Job First)
selain FCFS/FIFO ada juga yang namanya sjf(shortest job first)bisa diartikan yaitu  Setiap proses yang ada di ready queue akan dieksekusi berdasarkan burst time terkecil.
Mengakibatkan waiting time yang pendek untuk setiap proses dan waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan ini adalah algoritma yang optimal.

Merupakan penjadwalan Non Preemptive dan tidak berprioritas, jarang digunakan, menggunakan asumsi waktu jalan proses sudah diketahui, menjadwalkan proses dengan waktu terpendek dijalankan lebih dahulu, efisiensi tinggi dan time around time rendah. Masalah yang terjadi : tidak dapat mengetahui ukuran job saat job masuk dan untuk proses yang datang tidak bersamaan menggunakan penetapan dinamis.
Contoh:


Table berikut menggambarkan dari beberapa proses yang akan dilayani oleh satu prosesor. 
Proses
Arrival Time
Burst Time
P1
0
10
P2
1
15
P3
1
12
P4
4
8
P5
6
5
Gantt chartnya adalah:
Proses
Waiting Time
P1
0 – 0 = 0
P2
35 – 1 = 34
P3
23 – 1 = 22
P4
15 – 4 = 11
P5
10 – 6 = 4
Average Waiting Time(AWT) : (0 + 34 + 22 + 11 + 4) / 5 = 14,2 ms
  • Round Robin
Nah ini dia materi yang ngekill, karena berbau algoritma. langsung saja ROUND ROBIN bisa dibilang Algoritma, Algoritma ini menggilir proses yang ada di antrian.Proses akan mendapat jatah sebesar time quantum.Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya.proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses dapat jatah waktu yang sama dari CPU.

Round Robin merupakan salah satu penjadualan proses, dimana algoritma ini menggilir proses yang ada di antrian. Proses akan mendapatkan jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya. Pada penjadualan proses ini, tidak ada proses yang diprioritaskan, semua proses mendapatkan pembagian waktu yang sama dari CPU.

*
Contoh Pertama :
Sebuah CPU dengan quantum 4 mendapat beberapa proses dengan waktu kedatangan yang bersamaan eperti berikut:
Capture
  • Langkah Pertama:
Membuat Gantt Chart
Masukkan proses yang berurutan, kemudain kurangi Burst Time dengan nilai quantum.
RR2
P1 :
Burst time – Quantum
4 – 4 = 0.
Waktu = 4
P2:
Burst time – Quantum
9 – 4 = 5.
Sisa = 5
Waktu = 4
P3:
Burst time – Quantum
6 – 4 = 2.
Sisa = 2
Waktu = 4
P4:
Burst time – Quantum
5 – 4 = 1.
Sisa = 1
Waktu antrian = 4
P5:
Burst time – Quantum
3 – 4 = (-1).
Waktu antrian = 3
Proses yang memiliki sisa, kemudian dimasukkan kembali kedalam antrian sesuai dengan urutan Prosesnya.
P2:
Sisa Burst time – Quantum
5 – 4 = 1
Sisa = 1
Waktu antrian = 4
P3:
Sisa Burst time – Quantum
2 – 4 = (-2)
Waktu antrian = 2
P4:
Sisa Burst time – Quantum
1 – 4 = (-3)
Waktu antrian = 1
P2:
Sisa Burst time – Quantum
1 – 4 = (-3)
Waktu antrian = 1
Setelah selesai menentukan waktu antrian, kemudian buat table seperti dibawah ini:
RR3
  • Langkah Kedua
Menghitung AWT (Average Waiting Time)
 RR4
AWT yang terjadi adalah:
(0 + 18 + 19 + 21 + 16)/ 5
= 74 / 5
= 14,8
  • Langkah Ketiga
Menghitung ATAT (Average Turn Arround Time)
RR5 
*Contoh Kedua:
Sebuah CPU dengan Quantum 2 mendapat proses yang kedatangannya berbeda – beda sebagai berikut:
 RR6
  • Langkah Pertama
Membuat Gantt Chart
Untuk membuat Gantt Chart pada proses yang kedatangannya berbeda, membuat antrian disesuaikan dengan waktu kedatangan Proses . Untuk pencarian waktu antrian yang dilakukan sama seperti yang sebelumnya. Hanya pengurutan dalam antrian saja yang berbeda.
RR7
  • Langkah kedua
Membuat AWT
RR8
RR9
AWT yang terjadi adalah:
(6 + 3 + 10 + 3 + 8)/5
= 30/5
= 6
  • Langkah ketiga
Membuat ATAT



RR10

SEKIAN DARI SAYA :)
jika ada kesalahan mohon dimaafkan 
karena pada dasarnya manusia tidak ada yang sempurna

Komentar

Posting Komentar