Tuesday, December 30, 2014

Algoritma Penjadwalan CPU FCFS (FIRST COME FIRST SERVED) Menggunakan Bahasa C

Penjadwalan CPU

Penjadwalan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Penjadwalan CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara bergantian untuk proses yang berbeda. Suatu proses terdiri dari dua siklus yaitu Burst I/O dan Burst CPU yang dilakukan bergantian hingga proses selesai. Penjadwalan CPU mungkin dijalankan ketika proses:
  1. running ke waiting time
  2. running ke ready state
  3. waiting ke ready state
  4. terminates
Proses 1 dan 4 adalah proses Non Preemptive, dimana proses tersebut tidak bisa di- interrupt, sedangkan 2 dan 3 adalah proses Preemptive, dimana proses boleh di interrupt.
Pada saat CPU menganggur, maka sistem operasi harus menyeleksi proses-proses yang ada di memori utama (ready queue) untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses tersebut. Seleksi semacam ini disebut dengan shortterm scheduler (CPU scheduler). 
Komponen yang lain dalam penjadwalan CPU adalah dispatcher, Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling . Waktu yang diperlukan oleh dispatcher untuk menghentikan suatu proses dan memulai proses yang lain disebut dengan dispatch latency.
Jika dalam suatu proses Burst CPU jauh lebih besar daripada Burst I/O maka disebut 
CPU Bound. Demikian juga sebaliknya disebut dengn I/O Bound.

First Come First Served (FCFS)

Algoritma ini adalah algoritma yang paling sederhana. Prinsip dari algoritma ini adalah seperti prinsip antrian (antrian tak berprioritas), halaman yang masuk lebih dulu maka akan keluar lebih dulu juga. Algoritma ini menggunakan struktur data stack. Apabila tidak ada frame kosong saat terjadi page fault, maka korban yang dipilih adalah frame yang berada distack paling bawah, yaitu halaman yang berada paling lama berada di memori. 
Kelebihan :
algoritma yang paling sederhana, dengan skema proses yang meminta CPU mendapat prioritas.

Kelemahan :
Terjadi convoy effect dimana seandainya ada sebuah proses yang kecil tetapi mengantri dengan proses yang membutuhkan waktu yang lama mengakibatkan proses tersebut akan lama juga untuk
dieksekusi.
Contoh Kasus :

Bust Time : 8+7+10+6 = 31
Gant Chart : Dalam kasus ini Proses yang Arrival Timesnya paling kecil dikerjakan duluan, dalam kasus ini P1 yang paling kecil, maka duluan masukkan Grant Chart dan seterusnya 


Sehingga Average Wating Time adalah 7 ms

Berikut Scernshoot programnya :






Untuk melihat source code programnya klik di SINI !!!

atau jika ingin file lengkapnya klik di SINI untuk download !!!

Program ini telah di buat dan diselesaikan oleh penulis beserta anggota kelompok penulis, dimana artikel ini bertujuan untuk menyelesaikan tugas mata kuliah Sistem Operasi yang telah diberikan oleh Dosen.

Penulis sangat berterima kasih atas dukungan dari teman-teman dan dosen yang selama ini telah mengajarkan dan membantu mengenai Program penjadwalan ini.

2 comments: