Penjadwalan proses adalah keputusan sistem operasi tentang proses siap mana yang mendapat CPU berikutnya. Secara sederhana, ini adalah aturan untuk memilih siapa yang berjalan sekarang dan siapa yang menunggu. Aturan itu memengaruhi waiting time, response time, fairness, dan throughput secara keseluruhan.
Penjadwalan proses penting karena kumpulan proses yang sama bisa selesai dalam urutan yang sangat berbeda di bawah FCFS, SJF, atau round robin. Jika Anda memahami satu gagasan ini, sebagian besar contoh di buku teks akan jauh lebih mudah dibaca.
Apa Arti Penjadwalan Proses dalam Sistem Operasi
Dalam model sistem operasi yang umum, proses berpindah di antara status seperti ready, running, dan waiting. Scheduler memilih di antara proses-proses yang ready.
Itulah sebabnya penjadwalan proses sering juga disebut CPU scheduling. Ini tidak menciptakan pekerjaan baru. Ini menentukan urutan pekerjaan yang menunggu untuk mendapatkan layanan CPU.
Dalam sistem modern, kernel sering menjadwalkan thread secara langsung, tetapi istilah klasik "penjadwalan proses" masih menjadi istilah standar dalam pengajaran.
Apa yang Ingin Dioptimalkan oleh Scheduler
Scheduler biasanya berusaha menyeimbangkan beberapa tujuan:
- waiting time yang rendah
- respons cepat untuk tugas interaktif
- throughput yang baik
- fairness
- perilaku yang dapat diprediksi
Tujuan-tujuan ini bisa saling bertentangan. Kebijakan yang menurunkan rata-rata waiting time dalam satu contoh sederhana tetap bisa terasa tidak adil dalam praktik, dan kebijakan time-sharing yang adil bisa menunda selesainya pekerjaan singkat.
Penjadwalan Preemptive vs Non-Preemptive
Scheduler non-preemptive membiarkan proses yang sedang berjalan tetap memegang CPU sampai burst CPU-nya selesai atau proses tersebut terblokir. First-come, first-served adalah contoh standarnya.
Scheduler preemptive dapat menginterupsi proses yang sedang berjalan dan memberikan CPU kepada proses lain. Round robin dan banyak scheduler prioritas melakukan ini.
Perbedaan ini penting karena response time sering membaik ketika sistem diizinkan untuk melakukan preemption pada pekerjaan yang berjalan lama.
Algoritma Penjadwalan Proses yang Umum
First-Come, First-Served
First-come, first-served, atau FCFS, menjalankan proses berdasarkan urutan kedatangan. Algoritma ini mudah dipahami dan sederhana untuk diimplementasikan, tetapi pekerjaan panjang di depan dapat membuat semua pekerjaan singkat di belakangnya menunggu.
Shortest Job First
Shortest job first, atau SJF, mengutamakan proses dengan burst CPU paling kecil. Dalam kondisi sederhana ketika panjang burst diketahui dengan akurat, algoritma ini dapat mengurangi rata-rata waiting time. Dalam sistem nyata, panjang burst itu biasanya harus diperkirakan.
Round Robin
Round robin memberi setiap proses ready jatah waktu kecil yang disebut quantum. Jika proses tidak selesai dalam jatah waktu itu, proses kembali ke ready queue. Ini biasanya meningkatkan fairness dan responsivitas untuk beban kerja interaktif.
Priority Scheduling
Priority scheduling menjalankan proses ready dengan prioritas tertinggi terlebih dahulu. Ini bisa berguna ketika beberapa tugas lebih penting daripada yang lain, tetapi jika tugas berprioritas rendah menunggu terlalu lama, starvation menjadi risiko.
Satu Contoh Lengkap dengan Waiting Time
Misalkan tiga proses semuanya datang pada waktu dan masing-masing hanya membutuhkan waktu CPU:
- :
- :
- :
Asumsikan:
- ada satu CPU
- tidak ada blocking I/O
- biaya context switch diabaikan
Dalam kondisi tersebut, waiting time berarti waktu yang dihabiskan di ready queue sebelum suatu proses berjalan. Turnaround time adalah
FCFS
Jika FCFS digunakan, urutannya adalah .
Timeline:
Waiting time:
Rata-rata waiting time:
SJF
Jika SJF non-preemptive digunakan, urutannya adalah .
Timeline:
Waiting time:
Rata-rata waiting time:
Contoh ini menunjukkan intuisi utamanya. Beban kerjanya tidak berubah, tetapi aturannya mengubah hasilnya. Di sini, SJF memberikan rata-rata waiting time yang lebih rendah karena pekerjaan singkat tidak tertahan di belakang pekerjaan yang panjang.
Itu tidak berarti SJF selalu menjadi pilihan terbaik di dunia nyata. Artinya, berdasarkan asumsi dalam contoh ini, urutan penjadwalan sangat berpengaruh.
Intuisi yang Perlu Diingat
Anggap penjadwalan proses sebagai disiplin antrean untuk CPU. Ready queue mungkin berisi pekerjaan yang sama, tetapi aturan untuk melayani antrean itu mengubah apa yang dirasakan pengguna.
Jika Anda paling peduli pada respons awal yang cepat, Anda mungkin lebih memilih pembagian waktu yang sering. Jika Anda paling peduli pada penyelesaian banyak pekerjaan singkat dengan cepat, Anda mungkin lebih memilih kebijakan yang mengutamakan burst pendek. Jika Anda peduli pada ketepatan waktu yang ketat, Anda mungkin memerlukan scheduler yang berbeda lagi.
Kesalahan Umum dalam Soal Penjadwalan
Menganggap satu kebijakan selalu terbaik
Tidak ada satu pemenang untuk setiap beban kerja. Suatu kebijakan bisa terlihat sangat baik pada rata-rata waiting time tetapi tetap buruk untuk fairness atau deadline.
Tertukar antara waiting time, response time, dan turnaround time
Metrik-metrik ini saling berhubungan tetapi tidak sama. Secara khusus, response time biasanya berarti waktu sampai layanan CPU pertama atau respons terlihat pertama, sedangkan turnaround time mengukur seluruh pekerjaan dari kedatangan sampai selesai.
Mengabaikan kondisi di balik rumus
Metrik hanya bermakna di bawah asumsi yang dinyatakan. Jika suatu soal mencakup blocking I/O, waktu kedatangan yang berbeda, atau overhead context switch, timeline dan hasilnya akan berubah.
Lupa apakah kebijakannya preemptive
SJF dan shortest remaining time first bukan aturan yang sama. Priority scheduling juga berperilaku berbeda tergantung pada apakah pekerjaan dengan prioritas lebih tinggi dapat menginterupsi pekerjaan yang sedang berjalan.
Di Mana Penjadwalan Proses Digunakan
Penjadwalan proses penting di mana pun sistem operasi harus membagi waktu CPU:
- sistem desktop dan mobile yang membutuhkan aplikasi responsif
- server yang menangani banyak permintaan
- sistem batch yang mementingkan throughput
- sistem real-time yang mementingkan jaminan waktu
Scheduler nyata biasanya lebih kompleks daripada versi di buku teks, tetapi tradeoff yang sama tetap muncul.
Coba Versi Anda Sendiri
Ubah contoh sehingga datang lebih lambat, atau ganti FCFS dengan round robin menggunakan quantum , lalu lihat bagaimana pola waiting berubah. Jika Anda ingin satu langkah lagi setelah mengerjakannya dengan tangan, coba versi Anda sendiri di GPAI Solver dan bandingkan timeline yang Anda prediksi dengan hasil yang dihitung.
Butuh bantuan mengerjakan soal?
Unggah pertanyaanmu dan dapatkan solusi terverifikasi langkah demi langkah dalam hitungan detik.
Buka GPAI Solver →