Proses
penjadwalan adalah proses yang dilakukan oleh sistem operasi dalam mengatur
proses yang dijalankan bersama-sama, baik dalam proses program mana yang akan
di dahulukan ataukah program mana yang harus diselesaikan prosesnya terlebih
dahulu.
Dikatakan
dalam sebuah sumber “The scheduling
algorithm of traditional Unix operating systems must fulfill several
conflicting objectives: fast process response time, good throughput for
background jobs, avoidance of process starvation, reconciliation of the needs
of low- and high-priority processes, and so on. The set of rules used to
determine when and how selecting a new process to run is called scheduling
policy.”
Dapat
disimpulkan bahwa dalam algoritma penjadwalan yang digunakan oleh sistem
operasi linux masih mengacu kepada aturan dasar dari suatu penjadwalan ataupun
algoritma penjadwalan yaitu adil, efisien dan dapat memaksimalkan jumlah job
yang diproses dalam satu satuan waktu.
Disebutkan
dalam beberapa sumber bahwa pada kernel linux, mulai dari versi 2.5 menggunakan
algoritma penjadwalan preemptive. Kita tau bahwa dalam algoritma penjadwalan preemptive dikatakan bahwa ada sistem
penjadwalan yang memungkinkan sebuah proses dihentikan ataupun dirubah
statusnya menjadi ready jika terdapat proses lain yang memiliki tingkat
kepentingan lebih tinggi, berdasarkan ukuran kepentingan yang telah ditetapkan.
Di kernel
Linux, dikatakan sebuah sumber bahwa “The
Linux kernel implements two separate priority ranges. The first is the nice
value, a number from –20 to 19 with a default of zero. Larger nice values correspond
to a lower priority—you are being nice to the other processes on the system.
Processes with a lower nice value (higher priority) run before processes with a
higher nice value (lower priority). The nice value also helps determine how
long a timeslice the process receives. A process with a nice value of –20
receives the maximum timeslice, whereas a process with a nice value of 19
receives the minimum timeslice. Nice values are the standard priority range
used in all Unix systems.”
Jadi kita
bisa mengetahui bahwa dalam kernel Linux dagolongkan berdasarkan angka, mulai
dari nice value(from -20 to 19 with
default zero). Proses dengan nice value yang lebih kecil akan mendapatkan
prioritas yang lebih tinggi daripada proses dengan nice value yang tinggi. Dari
sumber lain, dikatakan bahwa ada ukuran(range) kedua selain nice value, yaitu
range yang didasarkan pada real-time priority . Default range nya adalah 0 - 99.
Contoh kasus yang diberikan adalah saat kita menjalankan dua program, yaitu
text editor dan compiler bersama-sama. Text editor adalah program interaktif,
sehingga memiliki prioritas yang lebih besar daripada compiler. Namun dalam
input data di text editor, terkadang user berhenti untuk berpikir ataupun untuk
menekan tombol. Namun, saat user mulai menekan tombol kembali, maka akan
terjadi proses interrupt lalu kernel akan mulai kembali mendahulukan proses di
text editor.
Algoritma penjadwalan yang dimiliki Linux bekerja
dengan membagi CPU time menjadi epochs. Dalam
sebuah epochs, semua proses memiliki waktu quantum sendiri-sendiri dimana durasinya
di atur(computed) saat epochs dimulai. Umumnya proses berbeda
memiliki durasi quantum yang berbeda juga. Saat proses
kehabisan/kekurangan time quantum nya
maka akan digantikan dengan proses yang berjalan lainnya. Sistem penjadwalan
ini biasa kita kenal juga dengan sistem penjadwalan Round Robn SchedulingUntuk lebih lengkapnya silahkan cek di link di bawah ini :
http://www.informit.com/articles/article.aspx?p=101760
http://oreilly.com/catalog/linuxkernel/chapter/ch10.html
http://rini1983.blogspot.com/2010/12/proses-penjadwalan-di-linux.html
http://ubuntu-minez.blogspot.com/2008/12/penjadwalan-proses-linux.html
pranala lain -> Konsep Penjadwalan Prioritas Menggunakan Terminal Linux
ReplyDelete