Dokumen ini membahas konsep dasar penjadwalan CPU pada sistem multiprogramming, termasuk siklus CPU-I/O, scheduler CPU, dan dispatcher. Scheduler CPU bertugas menyeleksi proses yang akan dieksekusi CPU ketika sedang menganggur, sementara dispatcher memberikan kontrol CPU kepada proses yang dipilih scheduler.
2. 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 4-1.
3. DEFENISI LOGIKA :
Penalaran atau bentuk pemikiran
Ilmu yang memberikan prinsip-
prinsip yang harus diikuti agar dapat
berpikir valid menurut aturan yang
berlaku.
4. DEFENISI ALGORITMA :
Langkah-langkah yang dilakukan agar solusi
masalah dapat diperoleh.
Suatu prosedur yang merupakan urutan
langkah-langkah yang berintegrasi
Suatu metode khusus yang digunakan untuk
menyelesaikan sebuah masalah (Webster
Dictionary)
5. CPU Scheduler
Pada saat CPU menganggur, maka sistem operasi harus menyeleksi
prosesproses
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). Keputusan untuk menjadwalkan CPU
mengikuti empa
keadaan dibawah ini :
1. Apabila proses berpindah dari keadaan running ke waiting;
2. Apabila proses berpindah dari keadaan running ke ready;
3. Apabila proses berpindah dari keadaan waiting ke ready;
4. Apabila proses berhenti.
6. 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.
7. Dispatcher
Dispatcher adalah suatu modul yang akan memberikan kontrol
pada CPU
terhadap penyeleksian proses yang dilakukan selama short-term
scheduling. Fungsifungsi
yang terkandung di dalam-nya meliputi:
1. Switching context;
2. Switching ke user-mode;
3. 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.