Wednesday, October 8, 2014

Algoritma Penjadwalan Sistem Operasi Linux



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 Scheduling
 

Untuk 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

1 comment: