Tuesday, December 24, 2013

Real-Time Task Scheduling

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.

Continue Reading
No comments
Share: