Thursday, January 7, 2010

Penjadwalan Prioritas

Hampir semua sumber daya komputer dijadwalkan sebelum digunakan. Salah satu sumber daya utama sistem komputer adalah CPU. Sehingga pusat rancangan sistem operasi akan berpatokan pada penjadwalan CPU.

Dalam penjadwalan, proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready queue. Dalam situasi ini, sangatlah diperlukan algoritma untuk mengatur giliran proses-proses tersebut. Terdapat beberapa algoritma untuk mengatur hal tersebut, dalam hal ini salah satunya adalah algoritma Priority Scheduling (Penjadwalan Prioritas).

1. Pengertian Penjadwalan Prioritas

Penjadualan prioritas adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:

 a. Batas waktu
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses


Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan kebanyakan waktu menunggu selesainya operasinya masukan/keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses Memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O itu menunggu selesainya operasi DMA. Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.

2. Algoritma Penjadwalan Prioritas

Adapun algoritma penjadwalan prioritas adalah sebagai berikut :

* Setiap proses akan mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas tertinggi.
*  CPU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi). Dalam algoritma ini ada dua skema yaitu :

1. Preemptive: jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi daripada proses yang sedang dijalankan, maka proses yang sedang berjalan tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang tersebut
2. Nonpreemptive: Ketika proses diberi rentang waktu penggunaan processor, maka proses tersebut dapat diambil alih proses lain, sehingga proses tersebut disela sebelum selesai, dan harus dilanjutkan menunggu sampai waktu processor dari proses yang menyela habis dan tiba untuk proses sebelumnya lagi.
3 SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya.

3. Penentuan Prioritas

Setiap proses akan mempunyai prioritas (bilangan integer). Bilangan integer inilah yang akan menunjukkan apakah prioritas dari masing-masing proses yang ada. Integer terkecil merupakan proses yang memiliki prioritas tertinggi.

SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya. Semakin cepat waktu yang diperlukan untuk memproses maka proses itulah yang menjadi prioritas tertinggi.


Adapun penentuan prioritas dalam Priority Scheduling didasarkan pada :

1. Secara internal maupun eksternal. Prioritas yang ditentukan secara internal menggunakan beberapa kuantitas atau jumlah yang terukur untuk menghitung prioritas dari suatu proses. Sebagai contoh :

*  Time limit (batas waktu)
* Memory requirement (kebutuhan memori)
*  Akses file
*  Perbandingan antara I/O burst dengan CPU burst
*  Tingkat kepentingan proses
*  Umur proses (aging)
* % waktu CPU yg telah digunakan pd x jam terakhir

Prioritas eksternal ditentukan oleh kriteria yang bersifat eksternal untuk sistem operasi, sebagai contoh :

* Pentingnya proses
*  Jenis dan jumlah dana yang dibayar untuk penggunaan komputer
*  Departemen yang mensponsori kerja dan lainnya
*  Politik
*  Biaya terhadap user
*  Tingkat kepentingan user


2. Prioritas statis (static priorities) dan Prioritas dinamis (dynamic priorities).

Pada prioritas statis penentuan prioritas proses menggunakan sistem dengan perilaku aplikasi yg teratur dan telah diketahui, namun sebaliknya, pada prioritas dinamis, algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan. Algoritma sederhana yang men-set prioritas dengan nilai 1/f dimana f adalah ratio kwanta terakhir yang digunakan proses.

* Proses yang menggunakan 2 ms kwanta 100 ms maka prioritasnya 50.
* Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
* Proses yang menggunakan seluruh kwanta berprioritas 1.

Kebijaksanaan yang diterapkan adalah jaminan proses-proses mendapat layanan adil dari pemroses dalam arti jumlah waktu pemroses yang sama.

No comments:

Post a Comment