«

»

May 25

Super Loop vs 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.

Dalam implementasinya, RTOS memerlukan resources ekstra, terutama dalam hal processing power (CPU) dan RAM.

Mikrokontroler 32-bit ARM Cortex-M menjawab kebutuhan ini, dengan menyediakan CPU yang powerful serta ketersediaan RAM yang cukup besar. Sebagai contoh, STM32F401 yang tertanam dalam board STM32 Nucleo, dapat bekerja pada frekuensi 84 MHz dan memiliki RAM 96k. Bandingkan dengan mikrokontroler AVR 8-bit, misal ATmega2560 yang tertanam dalam board Arduino Mega, yang bekerja pada frekuensi 16 MHz dan memiliki RAM 4k.

Memahami konsep dan implementasi Real Time Operating System tidak sesulit dan serumit yang dibayangkan. Satu hal yang perlu kita ingat, perkembangan teknologi pasti membawa kemudahan, guna mendorong peningkatan produktivitas. Bila sudah menggunakan teknologi namun produktivitas tidak meningkat, berarti ada yang salah – salah pilih teknologi đŸ™‚

Terkait dengan implementasi Real Time Operating System, Padepokan Robot NEXT SYSTEM Bandung menyelenggarakan satu topik pelatihan yang menarik:

  • Mikrokontroler ARM Cortex-M dan Aplikasi Real Time Operating System (5 Hari)

Untuk informasi lebih lanjut mengenai pelatihan ini, silahkan menghubungi NEXT SYSTEM – (022) 4222062 – email: info at nextsys.web.id