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 00 dan masing-masing hanya membutuhkan waktu CPU:

  • P1P_1: 6 ms6\ \mathrm{ms}
  • P2P_2: 2 ms2\ \mathrm{ms}
  • P3P_3: 1 ms1\ \mathrm{ms}

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

turnaround time=completion timearrival time\text{turnaround time} = \text{completion time} - \text{arrival time}

FCFS

Jika FCFS digunakan, urutannya adalah P1P2P3P_1 \rightarrow P_2 \rightarrow P_3.

Timeline:

06:P1,68:P2,89:P30 \to 6: P_1,\qquad 6 \to 8: P_2,\qquad 8 \to 9: P_3

Waiting time:

  • P1=0P_1 = 0
  • P2=6P_2 = 6
  • P3=8P_3 = 8

Rata-rata waiting time:

0+6+83=143 ms\frac{0 + 6 + 8}{3} = \frac{14}{3}\ \mathrm{ms}

SJF

Jika SJF non-preemptive digunakan, urutannya adalah P3P2P1P_3 \rightarrow P_2 \rightarrow P_1.

Timeline:

01:P3,13:P2,39:P10 \to 1: P_3,\qquad 1 \to 3: P_2,\qquad 3 \to 9: P_1

Waiting time:

  • P3=0P_3 = 0
  • P2=1P_2 = 1
  • P1=3P_1 = 3

Rata-rata waiting time:

0+1+33=43 ms\frac{0 + 1 + 3}{3} = \frac{4}{3}\ \mathrm{ms}

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 P2P_2 datang lebih lambat, atau ganti FCFS dengan round robin menggunakan quantum 2 ms2\ \mathrm{ms}, 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 →