KONSEP DASAR
Pada
sistem multiprogramming, selalu
akan terjadi beberapa
proses berjalan dalam suatu
waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya
ada satu proses yang berjalan pada saat tertentu. Sistem multiprogramming diperlukan untuk
memaksimalkan utilitas CPU.
Pada saat proses dijalankan terjadi siklus eksekusi
CPU dan menunggu I/O yang disebut dengan siklus CPU-I/O burst. Eksekusi proses
dimulai dengan CPU burst dan dilanjutkan
dengan I/O burst,
diikuti CPU burst
lain, kemudian I/O
burst lain dan
seterusnya seperti pada Gambar
Siklus CPU-I/O Burst
Histogram waktu CPU burst
Pada saat suatu proses dieksekusi, terdapat banyak
CPU burst yang pendek dan terdapat sedikit CPU burst yang panjang. Program yang I/O bound biasanya sangat
pendek CPU burst nya, sedangkan program yang CPU bound kemungkinan CPU burst
nya sangan lama.
Hal ini dapat digambarkan dengan grafik yang eksponensial atau hiper eksponensial seperti pada Gambar diatas. Oleh karena itu sangat penting
pemilihan algoritma penjadwalan CPU.
CPU Scheduler
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 short- term scheduler (CPU scheduler). Keputusan untuk menjadwalkan CPU mengikuti
empa keadaan dibawah ini :
- Apabila proses berpindah dari keadaan running ke waiting
- Apabila proses berpindah dari keadaan running ke ready
- Apabila proses berpindah dari keadaan waiting ke ready
- Apabila proses berhenti.
Apabila model penjadwalan yang dipilih menggunakan
keadaan 1 dan 4, maka penjadwakan semacam ini disebut non-peemptive.
Sebaliknya, apabila yang digunakan adalah keadaan 2 dan 3, maka disebut dengan
preemptive.
Pada non-preemptive, jika suatu proses sedang
menggunakan CPU, maka proses tersebut
akan tetap membawa
CPU sampai proses
tersebut melepaskannya (berhenti atau dalam keadaan waiting).
Preemptive scheduling memiliki kelemahan, yaitu biaya yang dibutuhkan sangat
tinggi. Antara lain, harus selalu dilakukan perbaikan data. hal ini terjadi
jika suatu proses ditinggalkan dan akan segera dikerjakan proses yang lain.
Dispatcher
Dispatcher
adalah suatu modul
yang akan memberikan
kontrol pada CPU terhadap
penyeleksian proses yang
dilakukan selama short-term
scheduling. Fungsi- fungsi yang
terkandung di dalam-nya meliputi :
- Switching context;
- Switching ke user-mode;
- Melompat ke lokasi tertentu pada user program untuk memulai program.
Waktu yang diperlukan oleh dispatcher untuk
menghentikan suatu proses dan memulai
untuk menjalankan proses yang lainnya disebut dispatch latency.
KRITERIA PENJADWALAN
Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan
properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu
properti-properti algoritma tersebut. Ada beberapa
kriteria yang digunakan untuk
melakukan pembandingan algoritma penjadwalan CPU, antara lain:
- CPU utilization. Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.
- Throughput. Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu
- Turnaround time. Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O.
- Waiting time. Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O
- Response time. Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut.
- Fairness. Meyakinkan bahwa tiap-tiap proses akan mendapatkan pembagian waktu penggunaan CPU secara terbuka (fair).
Tidak ada komentar:
Posting Komentar