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
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:
- Langkah Pertama:
Membuat Gantt Chart
Masukkan proses yang berurutan, kemudain kurangi Burst Time dengan nilai quantum.
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:
- Langkah Kedua
Menghitung AWT (Average Waiting Time)
AWT yang terjadi adalah:
(0 + 18 + 19 + 21 + 16)/ 5
= 74 / 5
= 14,8
- Langkah Ketiga
Menghitung ATAT (Average Turn Arround Time)
*Contoh Kedua:
Sebuah CPU dengan Quantum 2 mendapat proses yang kedatangannya berbeda – beda sebagai berikut:
- 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.
- Langkah kedua
- Langkah ketiga
SEKIAN DARI SAYA :)
jika ada kesalahan mohon dimaafkan
karena pada dasarnya manusia tidak ada yang sempurna
: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.
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?
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
TA = Waktu Tunggu + Lama Eksekusi
Rerata TA = ∑TA / ∑Job
Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
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.
-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.
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:
- Langkah Pertama:
Membuat Gantt Chart
Masukkan proses yang berurutan, kemudain kurangi Burst Time dengan nilai quantum.
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:
Masukkan proses yang berurutan, kemudain kurangi Burst Time dengan nilai quantum.
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:
- Langkah Kedua
Menghitung AWT (Average Waiting Time)
AWT yang terjadi adalah:
(0 + 18 + 19 + 21 + 16)/ 5
= 74 / 5
= 14,8
AWT yang terjadi adalah:
(0 + 18 + 19 + 21 + 16)/ 5
= 74 / 5
= 14,8
- Langkah Ketiga
Menghitung ATAT (Average Turn Arround Time)
*Contoh Kedua:
Sebuah CPU dengan Quantum 2 mendapat proses yang kedatangannya berbeda – beda sebagai berikut:
*Contoh Kedua:
Sebuah CPU dengan Quantum 2 mendapat proses yang kedatangannya berbeda – beda sebagai berikut:
- 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.
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.
- Langkah kedua
- Langkah ketiga
SEKIAN DARI SAYA :)
jika ada kesalahan mohon dimaafkan
karena pada dasarnya manusia tidak ada yang sempurna
SJF nya ga jelas banget tiba2 muncul angka segitu waiting time
BalasHapuskasi penjelasan dong
iri
Hapusthanks gan sudah share
BalasHapussolder uap