Free Real Time Operating Systems (FreeRTOS)

FreeRTOS (Free Real-time operating systems) adalah sebuah rela time operating system untuk embeded devices. freeRTOS ini banyak digunakan oleh microcontrollers untuk kebutuhan sistem operasinya. FreeRTOS didistribusikan secara gratis lewat GPL dengan beberapa pengecualian untuk kalangan industri tertentu. Beberapa varian microcontrollers yang menggunakan FreeRTOS antara lain: ARM architechture, Atmel AVR, AVR32, PIC Microcontrollers, MicroBlaze dan masih banyak lagi.

Yang dimaksud dengan RTOS (Real Time Operating System) adalah sistem operasi yang digunakan untuk memenuhi kebutuhan aplikasi yang bersifat real time. Real time disini berarti ia membutuhkan waktu kinerja setiap saat dimana ia dibutuhkan saat itu juga. Salah satu kunci dari keberhasilan RTOS adalah kemampuannya untuk melakukan kerja secara konsisten baik secara waktu yang ia butuhkan maupun secara task aplikasi yang mampu ia kerjakan.

RTOS memiliki kemampuan algoritma untuk proses penjadwalan. Penjadwalan memungkinkan fleksibilitas dalam melakukan orchestration dari proses dan melakukan proses prioritas dari sistem komputer.

Desain yang sering digunakan untuk RTOS biasanya menggandung:

Event driven, pemrograman di dalam FreeRTOS dan RTOS pada umumnya berlandaskan pada event-driven, yaitu program berjalan berdasarkan event-event yang ada dan telah didefinisikan sebelumnya. Event-driven erat kaitannya dngan sensor dan interaksi user dalam pengerjaannya.

Time-sharing, yang bertugas melakukan kontrol terhadap clock interrupt dan on event atau yang lebih sering disebut dengan round robbin (sebuah algoritma penjadwalan yang sering digunakan pada FreeRTOS adalah sebuah sistem operasi yang dibuat dalam skala kecil dan sederhana. Kernel FreeRTOS hanya terdiri dari tiga atau empat file C (biasanya kernel FreeRTOS dibangun dari bahasa C). Penggunaan bahasa C digunakan agar memudahkan untuk code readable, memudahkan koneksi ke port, dan mudah dalam melakukan perawatan.

Beberapa kemudahan yang didapatkan dengan menggunakan freeRTOS antara lain:

1. Berukuran kecil dan simpel

Karena ukurannya yang kecil dan cenderung mudah untuk dioperasikan tersebut, maka sangat baik bagi para pemula dan hobbyist yang ingin melakukan modifikasi pada OS.

2. Scheduler routines

Scheduler routine dapat dilakukan baik pada fase preemtive maupun pada operasi kooperatif.

3. Memiliki support terhadap coroutine

Support terhadap courotine ini sangat mudah untuk digunakan selain karena kapsitas yang dibutuhkannya juga tidak terlalu besar.

Dengan menggunakan kernel di dalam FreeRTOS maka beberapa kelebihan penggunaan FreeRTOS antara lain:

1. Dapat Memberikan Abstraksi Informasi tentang Pewaktuan

Kernel bertanggung jawab untuk melakukan eksekusi pewaktuan dan menyediakan real time API pada aplikasi. Hal  tersebut memungkinkan kode aplikasi semakin sederhana dan secara umum kode menjadi lebih ringkas.

2. Mudah Melakukan Maintenance

Mampu memberikan gambaran tentang detail pewaktuan dalam hubungannya antar modul dan memungkinkan software untuk terlibat di dalam pengontrolan dan pemrekdikksian kinerja.kernel seperti diatas telah disebutkan, bertanggung jawab kepada kinerja timing, jadi aplikasi dapat berjalan dengan lebih baik jika berada pada kemampuan hardware yang lebih rendah.

3. Modularity

Task adalah modul yang independen, setiap task harus mempunyai definisi tugas yang khusus.

4. Team Development

Task memungkinkan adanya pendefinisian yang jelas dari masing-masing perintah. Sehingga sebuah aplikasi dapat dibuat dengan skala team dengan mudah.

5. Mudah Dalam Melakukan Testing

Task dapat di test dalam sebuah interaksi yang terisolasi. Sehingga mudah untuk melakukan perbaikan kesalahan jika dimungkinkan. Interaksi isolasi maksudnya adalah task dapat dilakukan test secara terpisah antara satu modul dengan modul yang lain sehingga memperkecil proses.

6. Reuse Code

Code yang dibangun dengan model modularitas membuatnya mudah untuk digunakan kembali dengan mudah. Seperti kebanyakan bahasa pemrograman modern yang telah ada sekarang ini, kode yang dituliskan dapat digunakan kembali dalam modul-modul yang lain. Sehingga memudahkan pengguna dalam membangun sebuah aplikasi.

7. Meningkatkan Efisiensi

Kernel membuat software mampu melakukan event-driven, jadi tidak ada waktu terbuang yang digunakan untuk melakukan polling untuk event yang tidak akan pernah muncul. Kode dieksekusi hanya pada saat sebuah pekerjaan muncul dan harus diselesaikan oleh compiler.

8. Idle Time

Task Idle akan muncul seketika setelah saat kernel mulai beroperasi. Idle time dieksekusi saat tidaka ada aplikasi task yang akan dieksekusi. Idle task digunakan untuk mengukur spare processing capacity, untuk menampilkan background checks atau membuat prosesor untuk bekerja pada tenaga yang lebih rendah.

9. Interrupt Handling yang Flexible

Interupr handler dapat dibuat sangat singkat dengan menempatkan sebagian besar proses yang diinginkan untuk handler task.

10. Penggabungan Kebutuhan Procesing

Dengan desain yang lebih sederhana, namun dapat mencapai penggabungan antara periode, kontinuitas dan event-driven pada proses aplikasi. Dengan penggabungan itu akan meningkatkan efisiensi dalam kebutuhan menggunakan unit pemrosesan yang ada dalam peripheral.

11. Kontrol Peripheral yang Lebih mudah

Kontrol peripheral dilakukan dengan menggunakan gatekeeper. Dengan model ini, kontrol aplikasi terhadap peripheral dirasa akan lebih mudah daripada menggunakan mode-mode akses yang lain.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s