Kamis, 11 Oktober 2018

Memahami Cara Penjadwalan Proses


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 : [Tan-92] [MIL-92]
– Adil (fariness)
– Efesiensi
– Waktu tanggap (response time)
– Turn Arround Time
– Throughtput

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.

Turn Arround Time
Turn arround time adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke system sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan dalam sistem, diekspresikan sebagai jumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu;

Turn Arround Time = waktu eksekusi + waktu tunggu
Sasaran penjadwalan adalah meminimalkan turn arround time.

Throughtput
Throughtput adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu. Sasaran penjadwalan adalah memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem. Kriteria-kriteria tersebut saling bergabung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan. Contoh :
Untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih diantara prosesproses itu. Cara ini meningkatkan overhead sistem dan mereduksi throughput. Kebijaksanaan perancangan penjadwalan melibatkan kompromi diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer.

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.

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.

 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)

Penjadwalan Round Robin (RR)
Penjadwalan ini merupakan:
– Penjadwalan preemptive, buka dipreempt oleh proses lain tapi terutama oleh penjadwal berdasarkan lama waktu berjalannya proses, disebut preempt-by-time.
– Penjadwalan tanpa protes.

Semua Proses dianggap penting dan diberi sejumlah waktu pemroses yang disebut kwata (quantum) atau time slice dimana proses itu berjalan.

Ketentuan
Ketentuan algoritma round robin adalah sebagai berikut:
1.Jika kwanta habis dan proses belum selesai maka proses menjadi runable dan pemroses dialihkan ke poses lain.
2.Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3.Jika kwanta belum habis tapi proses telah selesai maka proses diakhiri dan pemroses dialihkan ke proses lain.

Algoritma penjadwalan ini dapat diimplementasi sebagai berikut:
– Mengelola senarai proses ready (runnable) seusai urutan kedatangan.
– Ambil proses yang berada diujung depan antrian menjadi running.
– Bila kwanta belum habis dan proses selesai maka ambil proses diujung depan antrian proses ready.
– Jika kwanta habis dan proses belum selesai maka tempatkan proses running ke ekor antrian proses ready dan ambil proses diujung depan antrian proses ready.

Masalah penjadwalan ini adalah menentukan besar kwanta, yaitu:
–  Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
– Kwanta terlalu kecil mengakibatkan peralihan proses terlalu banyak sehingga menurunkan efesiensi pemroses.

Harus ditetapkan kwanta waktu yang optimal berdasar kebutuhan sistem terutama dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung beban sistem.

Berdasarkan kriteria penilaian penjadwalan:
– Fairness
Penjadwalan RR adil bila dipandang dari persamaan pelayanan oleh pemroses.

– Efesiensi
Penjadwalan RR cenderung efesien pada sistem interaktif.

– Waktu tanggap
Penjadwalan RR memuaskan untuk sistem interaktif, tidak memakai untuk sistem waktu nyata.

– Turn Arround Time
Penjadwalan RR cukup bagus.

– Throughput
Penjadwalan RR cukup bagus.

Penggunaan:
– Cocok untuk sistem interaktif-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian eksternal. Contoh ; text-editor, kebanyakan waktu program adalah menunggu keyboard, hingga dijalankan proses-proses lain.
– Tidak cocok untuk sistem real-time.
 
Penjadwalana FIFO

Penjadwalan ini merupakan:
– Penjadwalana non-preemptive
– Penjadwalan tidak berprioritas

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.



Walaupun mempunyai turn arround yang bagus, SJF mempunyai yaitu:
– Tidak dapat mengetahui ukuran job saat job masuk
– Proses yang tidak datang bersamaan, sehingga penetapannya harus dinamis.

Untuk mengetahui ukuran job agar dapat ditetapkan yang terpendek biasanya dilakukan pendekatan. Pendekatan yang biasa dilakukan adalah membuat estimasi berdasar kelakuan sebelumnya.

Penggunaan:
Jarang digunakan, merupakan kajian teoritis untuk pembandingan turn arround time.

Tidak ada komentar:

Posting Komentar