Process Scheduling

Tidak ada komentar
Process Scheduling

Behavior dari Process :
a. Process Bound
b. I/O Bound


CPU Scheduler : memilih diantara proses-prosed di memori yang siap dieksekusi dan
                            mengalokasikan CPU ke salah satu dari proses tersebut
Dispatcher        : memberikan kontrol CPU ke proses yang terpilih

Dalam melakukan penjadwalan terdapat kriteria-kriteria :
- CPU Utilization  : membuat CPU sesibuk mungkin
- Throughput         : jumlah proses yang selesai tiap satuan waktu
- Turnaround time : jumlah waktu untuk mengeksekusi proses tertentu
- Waiting time       : jumlah waktu sebuah proses menunggu dalam antrian
- Response time     : jumlah waktu yang dibutuhkan dari ketika sebuah request diterima hingga
                                 pertama kali hasil diproduksi

Dalam penjadwalan juga diperlukan optimisasi dengan kriteria :
- Penggunaan CPU maksimal
- Throughput maksimal
- Turnaround time minimal
- Waktu tunggu minimal
- Waktu response minimal

Tujuan dari scheduling dari berbagai sistem :
a. Semua system : fairness, policy enforcement, dan balance
b. Batch system  : throughput(hasil per satuan waktu), turnaround time, penggunaan CPU
c. Interactive system : waktu respon dan proporsionalitas
d. Real-time system : memenuhi permintaan dan prediktabilitas

Algoritma Batch Scheduling

a. FCFS (First-Come First-Serve)
    Proses akan diproses di CPU dengan urutan waktu proses tersebut memberikan request.
    Keuntungan : mudah dipahami dan mudah untuk diprogram
    Kekuranngan : job yang pendek butuh waktu terlalu lama jika didepannya terdapat job yang
                            panjang
   Contoh :
   Process  Burst Time 
       P1             24
       P2              3
       P3              3
    Urutan datang : P1 , P2 , P
    Gant Chart:




   Waiting time for P1  = 0; P2  = 24; P3 = 27
   Average waiting time :  P1 + P2 + P3
                                      : (0 + 24 + 27)/3 = 17

b. SJF (Shortest Job First)
    Menggunakan panjang dari proses untuk melakukan penjadwalan proses dengan waktu yang 
    paling cepat.
    SJF ada 2 skema :
    - nonpreemptive : menjalankan proses hingga selesai dan tidak bisa diinterupsi proses lain
    - preemptive       : menjalankan proses hingga selesai namun ketika panjang dari proses yang
                                 sedang berjalan lebih banyak daripada proses yang menginterupsi maka
                                 proses akan dipotong dan dilanjutkan nanti.


    Contoh :
    a. nonpreemptive
        Process  Arrival Time  Burst Time
             P1              0.0                7
             P2              2.0                4
             P3              4.0                1
             P4              5.0                4

        Gant Chart :


        Average waiting time = P1 + P2 + P3 + P4 = (0 + 6 + 3 + 7)/4 = 4
    b. preemptive
          Process  Arrival Time  Burst Time
                 P1             0.0                 7
                 P2             2.0                 4
                 P3             4.0                 1
                 P4             5.0                 4
          Gant Chart :


          Average waiting time = P1 + P2 + P3 + P4 = (9 + 1 + 0 +2)/4 = 3

Selain dua algoritma diatas, terdapat algoritma lain juga seperti round-robin scheduling dan 

Tidak ada komentar :

Posting Komentar