Penjadwalan / Scheduling
Penjadwalan/scheduling dilakukan agar proses antrian dapat dilakukan dengan benar dan efisien. contohnya proses bound dengan I/O bound apabila tidak dilakukan penjadwalan maka pada saat I/O bisa saja akan menunggu proses bound terlalu lama. Namun dengan adanya penjadwalan proses bound dapat ditahan sebentar agar bisa melakukan I/O karena I/O relative lebih cepat diselesaikan dibandingkan proses bound.
CPU Scheduler
Memilih proses pada suatu memory yang sudah siap untuk dijalankan, lalu alokasikan CPU (berarti proses dijalankan) ke salah satu dari mereka.
Desisi dari CPU scheduling mungkin terjadi ketika melakukan proses :
- Berpindah dari berjalan menjadi state menunggu.
- Berpindah dari berjalan jadi state ready.
- Berpindah dari menunggu jadi state ready.
- Berhenti
Terdapat beberapa tipe scheduler yaitu :
Long-term scheduling desisi yang berguna untuk menambahkan proses baru kedalam antrian.
Medium-term scheduling desisi untuk menambahkan sejumlah proses yang sebagian atau seutuhnya yang ada di dalam memory utama.
Short-term scheduling desisi untuk menentukan proses mana yang akan dijalankan di dalam CPU.
I/O scheduling desisi untuk menjalankan perintah I/O dengan menggunakan device I/O yang tersedia.
Dispatcher
Modul dispatcher memberikan kendali pada CPU untuk proses yang dipilih dari short-term scheduler; hal yang dimaksud seperti saat melakukan switching. Dispatch latency merupakan waktu yang dibutuhkan untuk dispatcher memberhentikan suatu proses lalu menjalankan proses lainnya atau biasa kita kenal sebagai delay.
Sheduling Criteria
Suatu scheduling juga mempunyai kriteria/aturan tersendiri yaitu :
CPU utilization – menjaga agar CPU tetap sibuk sebisa mungkin, Max CPU utilization.
Throughput – Memaksimalkan jumlah proses yang diselesaikan, Max throughput.
Turnaround time – meminimalkan waktu yang dibutuhkan untuk menjalankan proses, Min turnaround time.
Waiting time – meminimalkan waktu tunggu suatu proses yang sudah siap dijalankan, Min waiting time.
Response time – meminimalkan waktu untuk membuat respon terhadap request, Min response time.
Goals of scheduling
Masing-masing system memiliki tujuannya tersendiri saat melakukan scheduling:
All systems :
- Fairness – memberikan pembagian CPU yang merata terhadap setiap proses
- Policy enforcement – dapat menjalakan sesuai kebijakan/peraturan yang sudah dibuat
- Balance – dapat membuat setiap bagian pada proses dapat pekerjaan
Batch Systems :
- Memaksimalkan Throughput.
- Meminimalkan Turnaround time.
- Memaksimalkan CPU utilization.
Interactive Systems :
- Meminimalkan Response time.
- Proportionality, harus sesuai dengan ekspektasi user.
Real-time Systems :
- Meeting deadline – memenuhi deadline untuk menghindari kehilangan data.
- Predictability – harus bisa diprediksi agar tidak menurunkan kualitas dari systems multimedia.
Untuk melakukan penjadwalan/scheduling tersendiri pastinya ada beberapa algortima yang dapat digunakan:
Batch scheduling algorithm
- First-Come First-Serve : Proses dijalankan sesuai urutan proses tersebut direquest. (mirip cara kerja queue)
Keuntungan : Mudah untuk dimengerti dan membuat programnya juga mudah.
Kerugian : proses singkat harus menunggu lama ketika proses di depannya merupakan proses panjang.
- Shortest Job First : Proses yang dijalankan merupakan proses yang paling singkat (paling cepat selesai) terlebih dahulu.
Keuntungan : memberikan waktu tunggu rata-rata yang minimum untuk sekumpulan proses yang diberikan..
Interactive Scheduling Algorithm
- Round Robin Scheduling : Merupakan algoritma scheduling yang menjalankan suatu proses dengan batas waktu tertentu, apabila suatu proses yang dijalankan sudah melewati batas waktu, maka proses tersebut akan “dipause” lalu dimasukkan ke queue(antrian proses) paling belakang kemudian menjalankan lagi dari proses dari queue paling depan.
- Priority Scheduling : setiap antrian diberikan prioritas masing-masing, sehingga proses yang dijalankan dari yang prioritas yang paling tinggi. Dan pada umumnya untuk proses yang memiliki prioritas yang sama dijalankan Round Robin Scheduling.
- Multiple Queue : antrian diberikan kuantum dengan nilai 2^n, hal ini dilakukan untuk mengurangi jumlah swapping sehingga dispatch latency berkurang.
- Shortest Process next : mengestimasi waktu untuk proses selanjutnya dengan menggunakan suatu persamaan aT0 + (1–a)T1 .
- High Response Ratio Next : menjalankan proses dari antrian yang memiliki ratio R paling besar, dimana R = (w+s)/s, R = response time, w = waktu yang dibutuhkan untuk menuggu di prosesor, dan s = expected service time.
- Feedback : Menggabungkan beberapa algoritma prioritas antrian, sehingga proses yang singkat lebih diutamakan dibandingkan proses yang panjang.
Real Time Scheduling
Untuk memastikan bahwa CPU dapat menjalankan suatu scheduling. Contoh : Diberikan m periode event, dan untuk event i muncul pada periode Pi dan butuh Ci waktu untuk diselesaikan maka scheduling bisa dilakukan apabila,
Thread Scheduling : Apabila suatu proses diambil oleh suatu kernel, maka kernel tersebut hanya bisa melakukan scheduling pada proses yang diambil tersebut.
Author : Rico Filberto; Bayu Kanigoro