«

»

May 25

Keuntungan Real-Time Operating System

Embedded system sederhana biasanya menggunakan sebuah konsep super-loop dimana aplikasi menjalankan setiap fungsi dalam urutan yang pasti. Interrupt Service Routing (ISR) digunakan untuk bagian program yang time-critical. Pendekatan ini cocok untuk sistem kecil namun memiliki keterbatasan untuk aplikasi yang lebih rumit.

Kekurangan konsep super-loop:

  • Operasi time-critical harus diolah dalam ISR. ISR menjadi lebih kompleks dan memerlukan waktu yang lebih panjang untuk meng-eksekusinya.Percabangan ISR dapat membuat waktu eksekusi dan kebutuhan stack menjadi tidak dapat diperkirakan.
  • Pertukaran data antara super-loop dan ISR dilakukan melalui variabel yang di-share secara global. Ini berarti, pengembang aplikasi harus memastikan konsistensi data.
  • Sebuah super-loop dapat dengan mudah di-sinkronkan dengan system timer, namun:
  1. Bila sebuah sistem memerlukan siklus waktu yang berbeda, hal ini sulit untuk diwujudkan.
  2. Memecah fungsi yang boros waktu yang melebihi siklus super-loop akan menjadi kendala.
  3. Membuat kendala dalam software dan program menjadi sulit untuk dimengerti.
  • Aplikasi super-loop menjadi kompleks dan sulit untuk dikembangkan. Sebuah perubahan yang sederhana dapat menimbulkan efek samping yang tidak bisa diperkirakan.

Kekurangan dari konsep super-loop dapat diselesaikan dengan menggunakan Real-Time Operating System (RTOS).

RTOS memisahkan fungsi-fungsi program ke dalam self-contained task dan meng-implementasikan sebuah penjadwalan eksekusinya sesuai dengan permintaan.

Sebuah RTOS memberikan manfaat, seperti:

  • Task scheduling – task dipanggil ketika dibutuhkan menjamin aliran program dan respons event yang lebih baik.
  • Multitasking – penjadwalan task memberikan ilusi menjalankan sejumlah task secara simultan.
  • Deterministic behaviour – event dan interupsi ditangani dalam sebuah waktu yang ter-definisi.
  • Shorter ISR – memungkinkan perilaku interupsi yang lebih dapat ditentukan.
  • Inter-task communication – mengelola sharing data, memori dan sumber daya perangkat keras diantara beberapa task.
  • Defined stack usage – setiap task dialokasikan ruang stack, memungkinkan penggunaan memori yang dapat diperkirakan.
  • System management – memungkinkan kita untuk fokus pada pengembangan aplikasi daripada mengelola sumber daya.