Ini Tujuh Alasan Mengapa Real Time Operating System Diperlukan

0 453

Saat anda memprogram sebuah mikrokontroler atau perangkat embedded lain, pada umumnya anda sedang memprogram sistem bare-metal. (artinya sebuah perangkat embedded yang tidak memiliki sistem operasi). Sistem bare-metal memiliki program yang berasitektur super loop, yaitu arsitektur program yang disertai dengan sebuah iterasi tak terbatas.

 

Bare metal is a computer system without a base operating system (OS) or installed applications. It is a computer’s hardware assembly, structure and components that is installed with either the firmware or basic input/output system (BIOS) software utility or no software at all.

Misalnya saat anda memprogam menggunakan platform arduino, anda sudah pasti akan menjumpai fungsi loop(), atau while(1) jika  memprogram menggunakan CodeVision AVR, Atmel Studio, atau CooCox IDE yang memiliki basis pemrograman C/C++

Jika program yang dibuat masih sederhana maka arsitektur tersebut akan mudah diimplementasikan dan dipelihara. Namun biasanya seiring dengan waktu, dan penambahan kebutuhan terhadap sebuah aplikasi untuk bekerja secara tepat waktu, membuat arsitektur super loop  yang kian rumit dan tidak bisa memenuhi kebutuhan sebuah aplikasi untuk bekerja secara realtime.

Untuk menjawab kebutuhan akan manajemen aplikasi yang rumit, muncul yang disebut sebagai Real Time Operating System sering disingkat RTOS, meskipun topik apakah penggunaan RTOS perlu atau tidak, masih menjadi perdebatan populer diantara para developer Sistem Embedded.

Pendukung pemrograman bare metal scheduling berasalan bahwa penggunan kombinasi interrupt yang berbasis prioritas dan timer dapat menggantikan perilaku RTOS dengan performa lebih baik dan penggunaan memori yang lebih kecil. Sedangkan, di sisi pendukung RTOS, lebih menekankan kemudahan penjadwalan dan integrasi sistem, terutama bagi pemula.

Terlepas perdebatan yang tak kunjung selesei tersebut. embeddednesia akan mengulas mengapa developer memilih menggunakan RTOS ketimbang bare metal scheduler.

Alasan 1 – Konkurensi

Sistem berbasis mikrokontroler biasanya hanya memiliki satu inti tunggal pemrosesan, namun  sebuah aplikasi terkadang dibutuhkan untuk mengeksekusi lebih dari satu tugas secara konkuren. Jika demikian, maka penggunaan RTOS adalah solusi yang masuk akal, dikarenakan RTOS dapat melakukan banyak tugas secara simultan di memori dan bisa berpindah diantara pemrograman berbasis prioritas atau event. Solusi bare metal scheduler sebenarnya  juga bisa digunakan namun, tugas di dalam sistem bare metal biasanya tetap dieksekusi satu tugas setiap waktu dan tidak konkuren.

Alasan 2 – Pre-emption

Pre-emption adalah kemampuan sistem operasi untuk secara sementara menunda sebuah tugas dengan tujuan untuk menjalankan tugas yang memiliki prioritas lebih tinggi. Jika sebuah software embedded yang dikembangkan memerlukan prioritas tugas dan interupsi tugas yang sedang berlangsung, RTOS adalah sistem operasi yang harus dipilih. Dasar dari  sebagian besar sistem RTOS adalah menentukan tugas mana yang sebaiknya dieksekusi pada suatu waktu berdasarkan prioritas dari tugas dan kondisi sistem. Memang,  bare-metal scheduling juga bisa membuat perilaku serupa menggunakan fitur interupsi berbasis prioritas, namun penggunaan RTOS dipadang lebih cocok untuk situasi tesebut.





Alasan 3 – Kapasitas RAM

Jumlah RAM yang tersedia pada mikrokontroler dapat dijadikan faktor penentu apakah solusi RTOS atau bare metal scheduler yang akan digunakan. Sistem dengan sumber daya yang terbatas seperti pada mikrokontroler dengan RAM kurang dari 4 kB akan sangat sulit untuk menggunakan RTOS. Setidaknya diperlukan 4 kB RAM atau direkomendasikan 8 kB agar RTOS bisa digunakan.

Alasan 4 – Ukuran Flash

Selain harus melihat prasyarat RAM yang tersedia, seorang developer juga harus melihat seberapa besar ruang Flash yang tersedia. Sistem RTOS memerlukan ruang Flash berkisar 8 sampai dengan 10 kB. Jika mikrokontroler hanya memiliki ruang Flash 16 kB,  praktis tidak ada ruang tersisa yang cukup untuk menaruh program aplikasi. Mikrokontroler setidaknya harus memiiki ruang Flash sebesar 32kB untuk bisa menginstall RTOS. Jika kurang dari itu, maka pilihannya adalah memakai bare metal scheduler atau mengupgrade hardware.

Alasan  5 – Tool Sinkronisasi

Salah satu masalah ketika menggunakan bare-metal scheduler adalah tidak adanya perangkat sinkronisasi yang secara default dimiliki RTOS. Misalnya, RTOS memiliki mutexes yang dapat melindungi resource bersama, dan semaphore yang digunakan untuk persinyalan dan sinkronisasi antrian tugas dan pesan untuk mentransfer data diantara tugas.  Merancang dan mengimplementasikan fitur – fitur pada software utama tersebut bukanlah perkara mudah. Menambahkan fungsi tersebut pada sistem bare metal dari nol, kemungkinan besar akan menyebabkan terjadinya hal yang tidak dapat diprediksi. Jika sebuah sistem memiliki banyak tugas dan sumber daya yang terlindungi memerlukan sinkroniksasi maka penggunaan RTOS adalah pilihan yang bijaksana.





Alasan  6 – Software Pihak Ketiga

Salah satu masalah yang dihadapi seorang programmer adalah bagaimana mengintegrasikan kumpulan software pihak ketiga ke dalam sistem embedded yang sedang dibangunnya. Sangat jarang programmer yang mau membuat program TCP/IP atau USB dari awal. Sementara banyak software  dari pihak ketiga yang tersedia di pasar yang kompatibel dengan berbagai RTOS. Penggunaan RTOS membuat komponen – komponen tersebut dapat diintegrasikan lebih mudah dan dengan begitu, dapat  mempercepat  pengembangan sebuah software embedded.

Keputusan untuk menggunakan software pihak ketiga dapat menjadi indikator utama apakah seorang perancang memutuskan menggunakan RTOS atau tidak.

Alasan  7 – Kemudahan Penggunaan

Sistem RTOS kini tersedia untuk hampir semua jenis mikrokontroler dan hampir semua aplikasi yang bisa dibayangkan. Membuat tugas dan menggunakan fungsi pada RTOS sangat mudah dan berdaya guna tinggi, namun developer harus berhati – hati  menggunakannya, karena salah – salah bisa didapatkan hasil yang tidak diinginkan.

 

%d blogger menyukai ini: