Pada tulisan kali ini, saya akan membahas mengenai Penjadwalan Task pada sistem Real-Time.
A. Istilah-istilah Dasar
1. Task Instance, adalah task pada saat itu, munculnya sporadis (random). Penyebab munculnya task adalah dari Event.
2. Relative Deadline & Absolute Deadline
Absolute Deadline di eksekusi dari awal (dihitung dari waktu 0) sampai terjadi deadline. Sedangkan Relative deadline adalah task yang tiba-tiba muncul, biasanya lebih keci ari absolute.
3. Response Time (Waktu Tanggap)
waktu yang dibutuhkan (yang diukur dari waktu kedatangan tugas) agar task dapat menjalankan tugasnya.
4. Task Precedence, adalah task yang saling mendahului.
5. Data Sharing, ada beberapa task yang memiliki data yang sama. Jika suatu task menerapkan data sharing maka tidak mungkin ada task precendence.
B. Tipe Task Real Time
1. Periodik Task, maksudnya task di jalankan secara periodik (berurutan) misal setiap 20 ms.
2. Sporadis Task, adalah task yang munculnya tidak tentu(kadang setiap 20 ms kadang setiap 40ms).
3. Aperiodik Task, adalah task yang sudah dibuat Hard Real-Time.
C. Task Scheduling
Scheduling digunakan untuk menentukan urutan eksekusi. Berikut adalah beberapa scheduling di Real-Time.
1. Valid Scheduler, artinya schedule yang valid/benar. Valid disini maksudnya jika ada task yang mendapat prioritas dari prosesor maka tidak ada task lain yang mendahului.
2. Feasible Scheduler, Sebuah jadwal yang valid disebut jadwal yang feasible (layak),
hanya jika serangkaian tugas memenuhi masing-masing konstrain waktu (deadline) dalam
jadwal tersebut.
3. Proficient Scheduler, Shcedule 1 lebih proficient dari yang lain, sehingga schedule 2 dll ikut menjadi proeficient.
4. Optimal Scheduler, dikatakan optimal jika dapat melakukan scheduler dengan benar (feasibly)
5. Scheduler Point, Titik penjadwalan pada scheduler (penjadwal) adalah titik pada garis
waktu di mana penjadwal membuat keputusan mengenai mana tugas yang akan dijalankan
berikutnya.
6. Preemptive Scheduler adalah Sebuah penjadwal preemptive adalah salah satu penjadwal yang
ketika sebuah tugas dengan prioritas yang lebih tinggi tiba, maka akan menunda semua tugas
dengan prioritas yang lebih rendah yang kemudian mengeksekusi dan mengambil tugas
prioritas yang lebih tinggi untuk dieksekusi.
7. Utilization, rata-rata waktu yang digunakan untuk mengeksekusi task.
8. Jitter adalah deviasi (penyimpangan) tugas periodik dari perilaku ketepatan
periodik-nya. Jadi jika ada proses yang waktunya 10 ms tapi belum selesai di eksekusi.
Klasifikasi Scheduling dari Real Time
1. Clock Driven
- Simple dan Efisien
- Proses penjadwalannya berbasis pada waktu
2. Even Driven
- Lebih canggih dari Clock Driven
- Proses penjadwalannya berbasis pada event
3. Hibrid
-Gabungan dari Clock dan Even Driven
Penjadwalan Event Driven
Penjadwalan event-driven merupakan proses penjadwalan berdasarkan kejadian. Kelas penjadwalan ini biasanya preemptive, yaitu, ketika sebuah tugas prioritas yang lebih tinggi dapat menghentikan proses dengan perioritas yang lebih rendah.
Tipe penjadwalan Event-Driven
1. Simple priority-based
Contoh nyata dari Simple priority-based adalah foreground-background. Penjadwalan foreground-background merupakan proses penjadwalan dengan perioritas tinggi (preemptive). Dalam penjadwalan foreground-background, real -time task dalam aplikasi dijalankan pada foreground. Sporadis, aperiodik, dan non -real -time tugas dijalankan di background. Pada penjadwalan foreground-background, proses dapat berjalan bersama-sama namun task dengan perioritas yang lebih tinggi dijalankan pada foreground dan task dengan perioritas rendah dijalankan pada background.
2. Rate Monotonic Analysis (RMA)
Penjadwalan dilakukan berdasarkan deadline, yaitu semakin dekat deadline-nya maka semakin tinggi prioritasnya, dan demikian pula sebaliknya. Ketentuan yang berlaku, ketika proses akan mulai jalan, maka proses akan mengumumkan syarat deadline-nya pada sistem. Prioritas harus ditentukan untuk menggambarkan deadline dari proses yang baru dapat berjalan.
3. Earliest Deadline First (EDF)
Earliest deadline first (EDF) merupakan algoritma penjadwalan dinamis yang digunakan dalam sistem operasi real-time untuk menempatkan proses dalam antrian prioritas. Setiap kali acara penjadwalan terjadi (selesai tugas, tugas baru dirilis, dll) antrian akan dicari untuk proses yang paling dekat dengan tenggat waktu. Proses ini adalah berikutnya yang akan dijadwalkan untuk eksekusi. Dikatakan dinamis berarti sangat dimungkinkan untuk menentukan nilai prioritas yang tepat untuk suatu task pada suatu waktu dan bias juga menunjukkan bagaimana bias berubah sepanjang waktu.