Minggu, 20 Desember 2009

Penjadwalan Prioritas


Penjadwalan proses merupakan basis sistem operasi multiprogramming. Dengan mengalih–alihkan pemroses di antara proses–proses yang ada, sistem operasi membuat sistem komputer menjadi lebih produktif dan efisien. Sasaran multiprogramming adalah mempunyai proses yang berjalan (dieksekusi) disetiap waktu untuk memaksimumkan utilitasi pemproses. Untuk sistem komputer dengan pemroses tunggal (disebut sistem uniprocessor atau singleprocessor) maka tidak lebih dari satu proses yang berjalan (Running). Jika terdapat beberapa proses di sistem, satu proses berjalan sedangkan sisanya menunggu sampai pemroses bebas dan proses itu dijadwalkan untuk dijalankan.
Gagasan multiprogramming adalah sederhana, satu proses dieksekusi sampai proses itu menunggu sesuatu, biasanya pelaksanaan operasi I/O. Pada multiprogramming, beberapa proses disimpan proses disimpan di memori pada satu waktu. Tujuan dari multiprogramming adalah untuk menjalankan beberapa proses pada waktu tertentu sehingga bisa memaksimalkan penggunaan CPU. Tujuan dari time-sharing adalah untuk menggilir penggunaan CPU antara proses-proses sehingga user bisa berinteraksi dengan masing-masing program ketika program tersebut dijalankan. Ketika satu proses harus menunggu, sistem operasi mengambil pemroses darinya dan memberikan pemroses ke proses lain. Pola ini di lakukan terus menerus. Setiap kali proses menunggu, proses lain mengambil alih penggunaan pemroses. Mahsudnya disini adalah jika terdapat lebih dari satu proses, proses-proses lainnya harus menunggu sampai CPU bebas dan bisa dijadwalkan ulang.
Penjadwalan CPU adalah basis dari sistem operasi multiprogramming, yang dilakukan dengan men-switch CPU diantara proses. Disini sistem operasi dapat membuat komputer menjadi lebih produktif.
Penjadwalan adalah fungsi dasar dari sistem operasi. Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer. Penjadwalan bertugas memutuskan hal-hal berikut:
Proses yang harus berjalan, Kapan dan selama berapa lama proses berjalan. Hampir semua sumber daya komputer dijadwalkan sebelum digunakan. CPU merupakan salah satu sumber daya utama sistem komputer. Sehingga penjadwalan CPU merupakan pusat rancangan sistem operasi.
Dalam penjadwalan, proses yang belum mendapat jatah alokasi dari CPU akan mengantri di ready queue. Di sini algoritma diperlukan untuk mengatur giliran proses-proses tersebut. Ada beberapa algoritma untuk mengatur hal tersebut. Salah satu algoritma tersebut adalah Penjadwalan Prioritas.

PENGERTIAN PENJADWALAN PRIORITAS
Penjadwalan SJF(Shorthest Job First) adalah kasus khusus untuk algoritma penjadwalan Prioritas. Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan FCFS. Ide penjadwalan prioritas adalah tiap proses diberi prioritas dan proses berprioritas tertinggi running (mendapat jatah waktu pemroses).
Prioritas dapat diberikan secara:
Prioritas statis (static priorities).
Prioritas dinamis (dynamic priorities).
Prioritas Statis
Prioritas statis berarti prioritas tak berubah.
Contoh Penjadwalan Berprioritas
Proses-proses yang sangat banyak operasi masukan/ keluaran (I/ O bound) menghabiskan kebanyakan waktu menuggu selesainya operasi 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 bound berjalan parallel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/ O bound itu menunggu selesainya operasi DMA.
Proses-proses yang sangat banyak operasi masukan/ keluaran kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori karena harus disimpan tanpa perlu proses-proses itu di memori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.
ALGORITMA PENJADWALAN PRIORITAS
Adapun algoritma penjadwalam 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: proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU.
2. Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakaian time-slice habis.
SJF adalah contoh penjadwalan prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya.
Permasalahan yang muncul dalam penjadwalan prioritas adalah indefinite blocking atau starvation .Kadang-kadang untuk kasus dengan prioritas rendah mungkin tidak pernah dieksekusi. Solusi untuk algoritma penjadwalan prioritas adalah aging. Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.
ALGORITMA PRIORITAS DINAMIS
Algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan. Algoritma sederhana yang memberi layanan bagus adalah men-set prioritas dengan nilai 1/f dimana f adalah ratio kwanta terakhir yang digunakan proses.
Proses yang menggunakan 2 msec 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.
Kombinasi
Algoritma penjadwalan berprioritas dapat dikombinasikan yaitu mengelompokkan proses-proses menjadi kelas-kelas prioritas. Penjadwalan berprioritas diterapkan antar kelas-kelas prose itu. Penjadwalan round-robin atau FIFO deterapkan pada proses-proses di satu kelas.
Algoritma SJF (Shortest-Job-First) adalah kasus khusus umum algoritma penjadwalan prioritas-prioritas yang terkait dengan setiap proses, dan mengalokasikan CPU untuk proses dengan prioritas tertinggi. Proses prioritas sama dijadwalkan Dalam rangka FCFS( First Come First Serve).
Sebuah algoritma SJF hanyalah sebuah prioritas algoritma di mana prioritas adalah kebalikan dari (berpredikat) CPU berikutnya meledak. CPU yang lebih besar meledak, prioritas yang lebih rendah, dan sebaliknya.
Perhatikan bahwa kita membahas penjadwalan dalam hal prioritas tinggi dan prioritas rendah. Prioritas pada umumnya beberapa tetap kisaran angka, seperti 0 sampai 7, atau 0 sampai 4.095. Namun, tidak ada kesepakatan umum tentang apakah 0 adalah prioritas tertinggi atau terendah. Beberapa sistem menggunakan angka rendah untuk mewakili prioritas rendah penggunaan lainnya nomor rendah untuk prioritas tinggi perbedaan ini dapat menimbulkan kebingungan. Dalam teks ini, kita menggunakan angka yang rendah untuk mewakili prioritas tinggi

Tidak ada komentar:

Posting Komentar