Penjadwalan merupakan
kumpulan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang
dilakukan oleh sistem komputer. Penjadwalan bertugas memutuskan proses yang
harus berjalan dan kapan atau berapa lama proses itu berjalan.
Pada artikel ini penulis akan
menjelaskan salah satu algoritma penjadwalan prosesor, yaitu algoritma FIFO
(First In First Out). algoritma ini memprioritaskan proses yang terlebih dahulu
masuk sampai selesai, kemudian sistem akan memproses proses yang masuk
setelahnya, dan seterusnya sampai proses habis.
Pada algoritma ini, bisa
dianalogikan seperti saat kita antri pada saat ingin membayar di kasir minimarket.
Transaksi yang akan dilayani pertama kali oleh kasir adalah yang pertama kali
mengantri, setelah selesai melakukan pembayaran, selanjutnya akan dilayani
transaksi selanjutnya, begitu seterusnya sampai antrian di kasir habis. Jadi algoritma
ini tidak memprioritaskan antrian dengan kriteria tertentu.
Di algoritma penjadwalan
Prosesor, ada istilah CPU Burst Time, yaitu lama waktu kerja CPU dalam setiap
proses. Kemudian ada AWT atau Average Waiting Time merupakan rata-rata waktu
tunggu setiap proses. Selanjutnya ada Turn Around Time, merupakan waktu
penyelesaian setiap proses dalam penjadwalan.
Misal sebuah job merupakan proses yang pertama kali di proses oleh sistem, dan job tersebut memiliki Burst Time selama 24 milidetik, maka Waiting time nya adalah 0 dan Waktu Penyelesaian nya adalah 24. Lebih jelasnya lagi akan saya jelaskan menggunakan program dengan Bahasa C++.
Pada saat menjalankan program,
kita harus menginputkan berapa banyak job yang akan diproses. Di sini saya
menginputkan 4, berarti aka nada 4 proses dengan masing-masing proses Bernama p1,
p2, p3, dan p4. Keempat proses ini akan diproses oleh sistem secara urut dari
yang pertama kali di inputkan dengan burst time nya seperti pada gambar. Maka table
prosesnya seberti di bawah ini.
Karena semua proses memiliki time
arrival 0, maka setiap proses yang didepannya selesai akan langsung memproses
job tersebut. Kemudian untuk waiting time setiap proses perhitungannya seperti
ini :
P1 merupakan proses pertama dan
time arrival 0, berarti waktu tunggu untuk sistem memproses proses tersebut
adalah 0. Maka waiting time nya adalah 0.
P2 dijalankan setelah p1 selesai,
sedangkan p1 memiliki burst time sebanyak 24 milisecond. Sehingga p2 akan dijalankan
setelah 24 milisecond. Waiting time nya adalah 24.
P3 dijalankan setelah p2 selesai.
Untuk waiting time nya berarti adalah 24 ditambah dengan 3, yaitu 27.
P4 dijalankan setelah p1, p2, dan
p3 selesai. Maka waiting time nya adalah waiting time p3 ditambah burst time p3
yaitu 3. Berarti 27 + 3 = 30.
Untuk perhitungan Turn Around
nya, merupakan kapan waktu setiap proses akan selesai diproses oleh sistem.
Contohnya p1 akan selesai setelah
24 milisecond, p2 selesai saat p1 selesai ditambah burst time p2 yaitu 3. Berarti
24 + 3 = 27. Dan seterusnya. Dapat dilihat pada table gambar di atas.
Selanjutnya untuk Gantt Cart dan
perhitungan rata-rata Waiting Time dapat dilihat pada gambar di bawah.
Untuk Source Code Program Algoritma FIFO menggunakan bahasa C++ dapat dilihat di bawah ini :