Kamis, 22 Desember 2016

PENJADWALAN FIFO



PENJADWALAN CPU
penjadwalan CPU adalah basis data dari multi programming sistem operasi dengan men switch cpu di antara proses. akibatnya sistem operasi bisa membuat komputer produktif. 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

Untuk nomor 1 dan 4, skema penjadwalannya dikatakan non-preemptive. Sedangkan untuk nomor 2 dan 3, skema penjadwalannya dikatakan preemptive. Preemptive maksudnya dapat diganti oleh proses lain. Non-preemptive maksudnya tidak dapat diganti oleh proses lain (proses yang sedang berjalan harus dijalankan sampai selesai dulu).
1.       Non preemptive yaitu bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai.
2.      Preemptive yaitu jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini akan ditunda dan akan diganti dengan proses yang baru. Skema ini biasa disebut juga dengan Shortest-Remaining-Time-First (SRTF).


Kriteria Penjadwalan :
1. CPU utilization       : tingkat penggunaan CPU
2. Throughput             : jumlah proses yang diselesaikan per satuan waktu
3. Turn around time    : waktu tunggu sejak sebuah proses di-submit
                                       hingga selesai eksekusi
4. Waiting time                       : total waktu sebuah proses berada dalam ready
                                       queue
5. Response time         : waktu tunggu sejak sebuah proses di-submit
                                    sampai respon pertama diperoleh
6. Fairness                   : setiap proses harus menunjukkan progres 


Macam-macam algoritma Penjadwalan :
1. First Comme First Served (FCFS). 
2. Shorttest Job First (SJF). 
3. Shortnest Remaining Time First Schedulling (SRTF). 
4. Priority Schedulling. 
5. Round-Robin Schedulling.

tetapi pada makalah ini, kami akan membahas mengenai algoritma First Comme First Served (FCFS) dan SJF (Shortest Job First).

1. First Come First Served (FCFS) atau First-In, First-Out (FIFO)
Penjadwalan FCFS merupakan:
  • Penjadwalan nonpreemptive
  • Penjadwalan tidak berprioritas

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 adaframe 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.

Berdasarkan kriteria penilaian penjadwalan
  • Fairness
    Penjadwalan FIFO adil dalam arti resmi (dalam semantics/arti antrian, yaitu proses yang datang duluan, dilayani duluan juga)
  • Efisiensi
    Penjadwalan FIFO sangat efisiensi dalam penggunaan pemroses.
  • Waktu Tanggap (Response Time)
    Penjadwalan sangat tidak memuaskan karena proses dapat menunggu lama. Tidak cocok untuk system interaktif.
  • Turn Around Time
    Penjadwalan FIFO tidak bagus.
  • Throughput
    Penjadwalan FIFO tidak bagus.
Penggunaan
  • Cocok untuk sistem batch yang sangat jarang melakukan interaksi dengan pemakai secara langsung. Contoh aplikasi analisis numeric, pembuatan tabel.
  • Penjadwalan ini sama sekali tidak berguna untuk sistem interaktif karena tidak memberi waktu tanggap yang bagus.
  • Tidak dapat digunakan untuk sistem waktu nyata.
Ketentuan
Penjadwalan FIFO adalah penjadwalan dengan ketentuan-ketentuan paling sederhana, yaitu:
  • Proses-proses diberi jatah waktu pemroses diurutkan berdasarkan waktu kedatangan proses-proses itu ke system.
  • Begitu proses mendapatkan jatah waktu pemrosesan, proses dijalankan sampai selesai.

Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantics/arti antrian, yaitu proses yang datang duluan,dilayani duluan juga), tetapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menjadi menunggu.

Contoh Kasus : 
 

Burst Time = 3+5+2+4=14
Diagram Grant =
pada diagram ini, arrival timenya yang paling kecil dahulu lah yang dikerjakan. jadi urutannya adalah 

 
   P1   P2    P4  P3
|----|------|----|--|
0    3      8    12 14

Average Waiting Time = 12/4=3 

Contoh Program
ini adalah contoh program Penjadwalan FCFS dengan menggunakan Bahasa C++ :