PENJADWALAN PROSES
A. Pengertian
Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme
di ssistem operasi yang berkaitan dengan urutan kerja yang dilakkan sistem
komputer. Penjadwalan bertugas memutuskan :
– Proses yang harus berjalan
– Kapan dan selama berapa lama proses itu berjalan.
Sasaran Utama Penjadwalan Proses
Optimasi kerja menurut kriteria tertentu
Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
– Adil (fariness)
– Efesiensi
– Waktu tanggap (response time)
Adil (Fairness)
Adil adalah proses-proses diperlukan sama yaitu mendapatkan
jatah waktu pemroses yang sama dan tak ada proses yang tidak kebagian layanan
pemroses sehingga mengalami startvision. Sasaran pendjadwalan seharusnya
menjamin tiap proses mendapat pelayanan dari pemroses yang adil.
Efesiensi
Efesiensi atau utilisasi pemroses dihitung dengan
perbandingan (rasio) waktu sibuk pemroses. Sasaran penjadwalan adalah menjaga
agar pemroses tetap dalam keadaan sibuk sehingga efesiensi mencapai maksimum.
Sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk
mengeksekusi program pemakai dan sistem operasi.
Waktu Tanggap (Response Time)
Waktu tanggap berbeda untuk :
– Sistem interaktif
– Sistem waktu nyata
Waktu tanggap pada sistem interaktif (Interaktif)
Waktu tanggap dalam sistem interaktif didefinisikan sebagai
waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau
transaksi sampai hasil pertama muncul dilayar (terminal). Waktu tanggap ini
disebut terminal response time.
Waktu tanggap pada sistem waktu nyata(Real Time)
Pada sistem waktu nyata, waktu tanggap didefinisikan sebagai
waktu dari saat kejadian (internal atau
eksernal) sampai instruksi pertama rutin layanan yang
dimaksud dieksekusi, disebut event response
time. Sasaran pendjadwalan adalah meminimalkan waktu
tanggap.
B. Tipe-Tipe Penjadwalan
Terdapat tiga tipe penjadwalan berada secara bersama-sama
pada sistem operasi yang kompleks, yaitu :
1. Penjadwal jangka pendek (short-tem scheduller)
2. Penjadwal jangka menengah (medium-term scheduller)
3. Penjadwal jangka panjang (long-term scheduller)
Penjadwal Jangka Pendek
Penjadwal ini bertugas menjadwalkan alokasi pemroses
diantara proses-proses ready di memori utama. Sasaran utama penjadwal ini
memaksimalkan kinerja untuk memenuhi satu kumpulan kriteria yang diharapakan.
Penjadwal ini dijalankan setiap terjadi pengalihan proses untuk memilih proses
berikutnya yang harus dijalankan.
Penjadwal Jangka Menengah
Setelah eksekusi selama suatu waktu, proses mungkin ditunda
karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system
call. Proses-proses tertunda tidak dapat membuat suatu kemajuan selesai sampai
kondisi-kondisi yang menyebabkan tertunda dihilangkan.
Agar ruang memori dapat bermanfaat, maka proses dipindah
dari memori utama ke memori sekunder agar tersedia ruang untuk
proses-proseslain. Kapasitas memori utama terbatas untuk sejumlah proses aktif.
Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder
disebutswapping.
Penjadwal jangka menengah adalah menangani proses-proses
swapping. Proses-proses mempunyai kepentingan kecil saat itu sebagai proses
yang tertunda. Tetapi, begitu kondisi yang membuatnya terunda hilang dan proses
dimasukkan kembali ke memori utama dan ready. Penjadwal jangka menengah
mengendalikan transisi dari suspended-ready (dari keadaan suspend ke ready)
proses-proses swapping.
Penjadwal Jangka Panjang
Penjadwal jangka panjang bekerja terhadap antrian batch dan
memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah
proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu proses,
memori, perangkat I/O), program-program ini berprioritas rendah, digunakan
sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job
interaktif rendah. Sasaran utama penjadwal jangka pangjang adalah memberi
keseimbangan job-job campuran. Dikaitkan dengan state-state proses.
C. Strategi Pendjadwalan
Terdapat dua strategi penjadwalan, yaitu:
1. Penjadwalan nonpreemptive (run – to – completion)
2. Penjadwalan preemptive
Penjadwalan Nonpreemptive
Begitu proses diberi jatah waktu pemroses maka pemroses
tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
Penjadwalan Preemptive
Saat proses diberi jatah waktu pemroses maka pemroses dapat
diambil alih proses lain sehingga proses disela sebelum selesai dan harus
dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu.
Penjadwalan preemptive berguna pada sistem dimana
proses-proses yang mendapat perhatian tanggapan pemroses secara cepat. Misalnya
:
– Pada sistem waktu nyata, kehilangan interupsi (yaitu
interupsi tidak segera dilayani) dapat berakibat fatal.
– Pada sistem interaktif/time-sharing, penjadwalan
preemptive penting agar dapat menjamin
waktu tanggap yang memadai.
Penjadwalan preemptive bagus, tapi tidak tanpa ongkos.
Perlaihan proses (yaitu proses beralih ke proses lain) memerlukan overhead
(karena banyak tabel yang dikelola). Agar preemptive efektif, banyak proses
harus berada di memori utama sehingga proses-proses tersebut dapat segera
running begitu diperlukan. Menyimpan banyak proses tak running benar-benar di
memori merupakan suatu overhead tersendiri.
D. Algoritma Penjadwalan
Terdapat banyak algoritma penjadwalan ,baik nonpreemptive
maupun preemptive.
Algoritma-algoritma yang menerapkan strategi nonpreemptive
diantaranya:
– FIFO (Frist In First Out)
– SJF (Shortest Job First)
– HRN (Highest Ratio Net)
– MFQ (Multiple Feedback Queues).
Algoritma-algoritma yang menerapkan strategi preemptive
diantaranya:
– RR (Round Robin)
– SRF (Shortest remaining First)
– PS (Priority Schedulling)
– GS (Guaranteed Schedulle)
Penjadwalana FIFO
Penjadwalan ini merupakan:
– Penjadwalana non-preemptive
– Penjadwalan tidak berprioritas
Ketentuan:
Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu:
– Proses-proses diberi jatah waktu pemroses berdasarkan
waktu kedatangan.
– Begitu proses mendapat jatah waktu pemroses, proses
dijalankan sampai selesai.
Penjadwalan ini dikatakan adil dalam arti resmi (dalam
semantik/arti antrian, yaitu proses yang datangduluan, dilayani duluan juga),
tapi dinyatakan tak adil karena job-job yang perlu waktu lama membuat job-job
pendek menunggu. Job-job tak penting dapat membuat job-job penting menunggu.
FIFO jarang digunakan secara mandiri tapi dikombinasikan
dengan skema lain, misalnya :
–keputusan berdasarkan prioritas proses. Untuk proses-proses
berprioritas sama diputuskan berdasarkan FIFO.
Berdasarkan kriteria penilaian penjadwalan :
– Fairness
Penjadwalan FIFO adil bila dipandang dari semantik antrian.
– Efesiensi
Penjadwalan FIFO sangat efesien
– Waktu tanggap
Penjadwalan FIFO sangat jelek, tidak cocok untuk sistem
interaktif apalagi waktu nyata.
– Turn arround time
Penjadwalan FIFO jelek
– Throughput
Penjadwalan FIFO jelek.
Penggunaan:
– Cocok untuk sistem batch yang sangat jarang interaksi
dengan pemakai. Contoh aplikasi analisis numerik, pembuatan tabel.
– Penjadwalan ini sama sekali tak berguna untuk sistem
interaktif karena tidak memberi waktu tanggap yang bagus.
– Tidak dapat digunakan untuk sistem waktu nyata.
Penjadwalan Berprioritas (PS)
Ide penjadwalan adalah tiap proses diberikan prioritas dan
proses berprioritas tinggi running (mendapat jatah waktu proses).
Prioritas dapat diberikan secara :
– Prioritas statis
– Prioritas dinamis
Prioritas Statis
Prioritas statis berarti rioritas tak berubah
Keunggulan
– mudah diimplementasikan
– mempunyai overhead relatif kecil
Kelemahan
– Penjadwalan tak tanggap perbuhana lingkungan yang mungkin
menghendaki penyesuaian prioritas.
Prioritas Dinamis
Prioritas dinamis merupakan mekanisme menanggapi perubahan
lingkungan sistem beroperasi. Prioritas awal diberikan ke proses mungkin hanya
berumur pendek setelah disesuaikan ke nilai yanglebih tepat sesuai lingkungan.
Kelemahan
Implementasi mekanisme prioritas dinamis lebih kompeks dan
mempunyai overhead lebih besar. Overhead ini diimbangi dengan peningkatan daya
tanggap sistem.
Contoh penjadwalan berprioritas
Proses-proses yang sangat banyak operasi I/O menghabiskan
kebanyakan waktu menunggu selesainya operasi I/O. Proses-proses ini diberi
prioritas sangat tinggi sehingga begitu proses memerlukan pemroses segera
diberikan, proses akan segera memulai permintaan I/O berikutnya hingga
mengakibatkan proses blocked menunggu selesainya operasi I/O. Dengan demikian
pe mroses dapat dipergunakan proses-proses lain. Proses-proses I/O bound
berjalan paralel 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 I/O kalau harus
menuggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan
membebani meori karena harus disimpan tanpa perlu prosesproses itu dimemori
karena tidak selesai-selesai menunggu operai I/O dan menunggu jatah pemroses.
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.
Keunggulan Algoritma Penjadwalan Berprioritas
Biasanya memenuhi kebijaksanaan yang ingin mencapai
maksimasi suatu kriteria diterapkan.
Kombinasi
Algoritma penjadwalan berprioritas dapat dikombinasikan yaitu
mengelompokan proses-proses menjadi kelas-kelas prioritas. Penjadwalan
berprioritas diterapkan antar kelas-kelas proses itu. Penjadwalan round-robin
atau FIFO diterapkan pada proses-proses di satu kelas.
Penjadwalan dengan Banyak Antrian (MFQ)
Penjadwalan ini merupakan:
– Penjadwalan preemptive (by-time)
– Penjadwalan berprioritas dinamis.
Penjadwalan ini untuk mencegah banyaknya swapping dengan
proses-proses yang sangat banyakmenggunakan pemroses (karena menyeelesaikan
tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak
dalam satu waktu.
Penjadwalan ini menghendaki kelas-kelas prioritas bagi
proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas
berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta,
dan seterusnya. Ketentuan yang berlaku adalah sebagai berikut:
– Jalankan proses pada kelas tertinggi
– Jika proses menggunakan seluruh kwanta yang dialokasikan
maka diturunkan kelas prioritasnya.
– Proses yang masuk untuk pertama kali ke sistem langsung
diberi kelas tertinggi.
Mekasnime ini dapat mencegah proses yang perlu berjalan lama
swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus
menunggu lama.
Penggunaan
Sistem dengan banyak proses lambat, memerlukan waktu dan
juga terdapat banyak proses singkat.
Penjadwalan Terpendek, Duluan (SJF)
Penjadwalan ini merupakan :
– Penjadwalan non-preemptive
– Penjadwalan tak berprioritas
Penjadwalan ini mengasumsikan waktu jalan proses(sampai
selesai) diketahui sebelumnya. Mekanisme penjadwalan adalah menjadwalkan proses
dengan waktu jalan terpendek lebih dulu sampai selesai.
Penjadwalan mempunyai efesien tinggi dan turn arround time
rendah.
Contoh :
Terdapat empat proses A,B,C,D dengan jalam selama 8,7,6,5
kwanta.
Gambar 5.2a menunjukkan cara I, dengan proses-proses
dijadwalkan berurutan sebagai A,B,C,D. Gambar 5.2b menunjukkan bila
proses-proses dijadwalkan secara SJF yaitu berurutan B,C,D,A
Kedua cara menghasilkan turn arround time ditunjukan gambar
5.2c. Cara I trun arround time rata-rata adalah 17,5 kwanta sedang cara II
adalah 15 kwanta.
Komentar
Posting Komentar