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 :
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:
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
Average Waiting Time = 12/4=3
Contoh Program
ini adalah
contoh program Penjadwalan FCFS dengan menggunakan Bahasa C++ :