Penjadwalan Proses
Sistem Operasi (TKE113117)
Program Studi Teknik Elektro, Unsoed
Banyak program ingin dijalankan pada CPU.
Bagaimana ketika 2 atau lebih proses
dalam kondisi siap dieksekusi?
Penjadwal (1)
●
Dulu sistem batch menggunakan masukan
dalam bentuk card image pada tape magnetik.
●
Algoritma penjadwalnya sederhana: jalankan saja
tugas berikutnya yang ada di dalam tape.
●
Sistem multiprogram menjadikan algoritma
penjadwal lebih kompleks karena ada banyak
pengguna yang menggunakan layanan.
●
Dengan penjadwal diharapkan akan ada
peningkatan unjuk kerja dan tidak
Penjadwal (2)
●
Memilih proses yang akan dijalankan sesuai
dengan algoritma.
●
Membuat penggunaan CPU lebih efisien.
➔
Perpindahan antar proses (process switching)
membutuhkan banyak sumber daya. Mahal.
➔
Hal-hal yang dilakukan saat perpindahan antar
proses: pindah mode pengguna dari/ke kernel,
status proses perlu disimpan termasuk hal-hal yang
ada pada tabel proses, juga peta memori, proses
baru perlu dijalankan, ...
I/O-bound
CPU-bound
Sifat Proses
●
Kebanyakkan proses melakukan komputasi dengan
permintaan I/O, khususnya cakram.
●
Komputasi: CPU menyalin bit ke RAM VGA untuk
memutakhirkan layar.
●
Permintaan I/O muncul ketika sebuah proses diubah
statusnya menjadi tertahan/blocked untuk menunggu
perangkat luar.
●
Proses CPU-bound adalah proses yang “terikat” CPU,
karena sering/lama dalam menggunakan CPU dan
jarang menunggu I/O.
●
Proses I/O-bound adalah proses yang “terikat” I/O,
Faktor kuncinya adalah lama penggunaan
CPU (CPU burst), bukan I/O (I/O burst).
Semakin cepat CPU maka akan membuat
proses dalam sebuah sistem cenderung
Penjadwalan Dilakukan Saat..
●
Sebuah proses diciptakan. Proses ortu versus
proses anak.
●
Sebuah proses dimusnahkan. Proses lain perlu
diset ke siap/ready.
●
Sebuah proses ditahan oleh I/O, semaphore,
atau hal lainnya.
●
Interrupt I/O muncul.
➔
Keputusan dapat dilakukan pada setiap interrupt
clock, umumnya mengikuti clock perangkat keras.
Algoritma Penjadwalan
●
Algoritma penjadwalan dibagi menjadi 2
kategori menurut bagaimana penjadwal
menangani interrupt clock.
●
Nonpreemptive: penjadwal menjalankan proses
sampai proses itu selesai atau dalam status
tertahan/blocked, baik karena permintaan I/O atau
menunggu proses lainnya.
●
Preemptive: penjadwal menjalankan proses dengan
Algoritma penjadwalan dipengaruhi
pula oleh lingkungan sistem.
Kategori Berdasar Lingkungan (1)
●
Batch.
●
Menjalankan tugas-tugas periodik.
●
Tidak ada pengguna yang benar-benar menunggu
untuk mendapatkan respon cepat dalam waktu
singkat.
●
Algoritma nonpreemptive atau preemptive dengan
batas waktu yang panjang dapat diterapkan.
●
Waktu perpindahan proses yang sangat kecil,
Kategori Berdasar Lingkungan (2)
●
Interaktif.
●
Proses pengguna yang interaktif dan membutuhkan
respon relatif cepat. Contoh: destop, server.
●
Waktu nyata/real-time.
●
Proses-proses yang dijalankan di dalam sistem ini
“sadar” tidak punya waktu banyak untuk melakukan
pemrosesan.
●
Perbedaannya dengan kategori interaktif adalah
program yang dijalankan pada waktu nyata adalah
program-program yang mendukung aplikasi saja.
Penjadwalan pada Sistem Batch
●
First-Come First-Serve (FCFS): “yang datang
dulu dilayani dulu”. Nonpreemptive.
●
Shortest Job First (SJF): “yang paling cepat
selesai dilayani dulu”. Nonpreemptive.
●
Shortest Remaining Time Next: “yang sisa
waktu eksekusinya paling kecil dilayani dulu”.
Versi preemptive dari SJF.
Shortest Job First (SJF)
●
Waktu turnaround untuk (a): 8, 12, 16, 20,
dengan rata-rata 14.
●
Waktu turnaround untuk (b): 4, 8, 12, 20,
dengan rata-rata 11.
●
Hanya optimal untuk pakerjaan yang tersedia
semua secara simultan atau dalam waktu yang
bersamaan.
Shortest Remaining Time Next
●
Versi preemptive dari SJF.
●
Penjadwal memilih proses yang memiliki sisa waktu
ekskusi yang lebih sedikit.
●
Ketika ada proses baru datang, proses tersebut akan
dibandingkan dengan proses yang sedang berjalan.
Jika proses baru lebih sedikit waktu ekskusinya
dibandingkan sisa waktu proses yang sedang
berjalan, proses yang sedang berjalan ditahan dulu
dan proses baru akan dijalankan.
●
Proses-proses dengan waktu eksekusi sedikit akan
Penjadwalan pada Sistem Interaktif
●
Round-robin: interval waktu (kuantum).
●
Priority Scheduling: prioritas proses.
●
Multiple queue: kelas prioritas.
●
Shortest Process Next: seperti SJF.
●
Guaranteed Scheduling: CPU dibagi pengguna.
●
Lottery Scheduling: random.
●
Fair-share Scheduling: kombinasi penjadwal
Penjadwalan Round-robin (1)
●
Setiap proses diberikan interval waktu yang
disebut dengan kuantum.
●
Jika proses masih berjalan di akhir kuantum,
proses tersebut dihentikan dulu (preempt) dan
digantikan proses selanjutnya.
Penjadwalan Round-robin (2)
●
Terdapat pergantian proses atau context-switch yang
melibatkan waktu untuk menyimpan dan memuat register,
peta memori, memutakhirkan tabel dan daftar variabel,
membersihkan dan memuat ulang cache memori, dst.
●
Jika kuantum 4 milidetik dan waktu pergantian proses 1
milidetik, berarti 20% waktu CPU akan habis atau
terbuang untuk urusan “administrasi”.
●
Bagaimana cara meningkatkan efisiensi CPU?
●
Bagaimana jika terdapat 100 permintaan web pada sebuah
server web?
Penjadwalan di Sistem Waktu Nyata
●Umumnya sistem real-time atau waktu nyata memiliki satu atau lebih
perangkat eksternal yang menerima atau membangkitkan pemicu, dan
sistem akan bereaksi dalam waktu tertentu yang pasti.
➔
Contoh: pemutar CD, pemantau pasien, auto-pilot di pesawat terbang, robot
pengendali di pabrik.
●
Hard real-time vs. soft real-time.
●
Secara umum setiap proses memiliki waktu eksekusi yang pendek.
Penjadwal proses akan dipicu saat sebuah kejadian eksternal muncul.
●Semua proses harus sesuai dengan tenggat eksekusi (hard).
●