Penjadwalan merupakan aktivitas untuk mengalokasi waktu dari CPU ke proses yang berbeda-beda dalam sebuah sistem operasi. Tidak hanya running proses dan interrupt proses, ada aspek lain yang penting pada Linux, yaitu running dari beberapa tugas kernel. Tugas kernel meliputi tugas yang diminta oleh running proses dan tugas yang dieksekusi secara internal untuk kepentingan device driver.
Linux memiliki
dua algoritma proses penjadwalan. Yang pertama adalah
time-sharing algoritma untuk penjadwalan yang adil dan preemptive diantara
beberapa proses, sedangkan yang lain di desain untuk tugas-tugas realtime, dimana
absolut prioritas adalah hal yang paling penting.
Algortima
penjadwalan Linux adalah preemptive,
berdasarkan prioritas yang ada dengan dua range prioritas yang terpisah (range
real time dari 0-99, dan range lainnya dari 100-140). Dua range ini memetakan
skema prioritas global dimana semakin kecil angka prioritasnya semakin tinggi
prioritasnya.
Linux
memberikan quantum waktu yang lebih panjang pada proses dengan prioritas tinggi
dan sebaliknya. Sebuah proses dapat berjalan pada CPU jika proses tersebut
memiliki waktu sisa pada slot waktu. Saat slot waktunya habis, proses tersebut
dianggap kadaluarsa dan tidak akan dieksekusi sampai seluruh proses slot
waktunya habis juga. Saat ini terjadi, list proses aktif akan menjadi kosong,
maka list proses kadaluarsa akan menjadi aktif dan eksekusi akan dimulai
kembali.
Penjadwalan
real-time Linux mengimplementasikan dua penjadwalan real-time, yaitu First-Come, First-Served (FCFS) dan Round-Robin (RR). Setiap proses
memiliki prioritasnya masing-masing. Penjadwal akan memilih proses dengan
prioritas paling tinggi pada penjadwalan real-time. Jika ada dua proses dengan
prioritas yang sama, maka penjadwal akan menjalankan proses yang telah menunggu
paling lama.
Penjadwalan
real-time Linux bersifat soft real-time. Pada algoritma soft real-time, fitur
yang paling penting adalah merespon dengan segera sebuah proses real-time
secepat proses yang dibutuhkan oleh CPU. Algoritma penjadwalan berdasarkan
prioritas memberikan prioritas kepada masing-masing proses berdasarkan tingkat
kepentingannya; proses yang lebih penting di berikan prioritas lebih tinggi
daripada proses lain yang dianggap kurang penting. Apabila penjadwalan yang
digunakan juga mendukung preemption dan tersedia sebuah proses berprioritas
tinggi, maka proses ini akan dijalankan lebih dahulu mengingat prioritasnya
yang tinggi.
No comments:
Post a Comment