Tiny OS merupakan sebuah operating system open-source yang ditujukan untuk jaringan sensor dan bersifat tergantung kepada aplikasi. Tiny os ini bersifat embedded dan component based. Tiny OS menggunakan Bahasa nesC, sebuah dialek dari Bahasa c yang dikembangkan dan dimaksimalkan agar sesuai dengan Batasan memori pada jaringan sensor. TinyOS hanya memiliki satu tumpukan panggilan dan sepenuhnya tidak memblokir. Akibatnya, setiap operasi input/output (I/O) dengan durasi lebih dari beberapa ratus ms tidak sinkron dan memiliki callback. TinyOS memanfaatkan fitur nesC untuk menautkan callback ini secara statis, yang disebut sebagai peristiwa, memungkinkan kompiler asli untuk mengoptimalkan secara lebih efektif melintasi batas panggilan. Arsitektur non-blocking TinyOS memungkinkannya untuk mempertahankan konkurensi tinggi dengan satu tumpukan, tetapi memaksa programmer untuk membuat logika kompleks dengan menghubungkan banyak event handler kecil. TinyOS menawarkan tugas, yang sebanding dengan Panggilan Prosedur yang Ditangguhkan dan bagian bawah pengendali interupsi, untuk mendukung komputasi yang lebih besar. Tugas dapat diposting oleh komponen TinyOS, dan OS akan menjadwalkannya untuk dijalankan nanti. Urutan tugas adalah yang pertama masuk, pertama keluar dan mereka tidak mendahului. Model konkurensi langsung ini biasanya bekerja dengan baik untuk aplikasi yang berfokus pada I/O, tetapi karena kesulitan dengan aplikasi intensif CPU.

TinyOS tidak memiliki kekuatan pemrosesan untuk mendukung aplikasi multithread. Tugas, peristiwa, perintah, dan data adalah elemen utama TinyOS. Informasi dikumpulkan dari lingkungan luar. Misalnya, sensor perangkat pendeteksi asap membuat peristiwa ketika asap terdeteksi, dan informasi yang terkait dengan peristiwa itu adalah data. Kemudian perintah untuk memisahkan air atau bahan kimia apa pun yang memadamkan api atau asap diberikan.

Sangat kontras dengan sebagian besar sistem tertanam yang digerakkan oleh peristiwa, TinyOS menyusun konkurensi menjadi komponen modular daripada pengiriman monolitik yang dibangun dengan pemahaman luas tentang aplikasi. Akibatnya, protokol perangkat lunak penting antar komponen telah dibuat, termasuk akuisisi data fase terpisah, pompa data yang ditemukan di antara komponen dalam tumpukan jaringan, dan idiom manajemen daya yang memungkinkan komponen perangkat keras dimatikan dengan cepat dan mudah. Sering kali, dengan memperhatikan protokol ini memungkinkan pemrosesan lapisan terintegrasi berlangsung sambil tetap mempertahankan modularitas yang bersih. TinyOS masih belum menjadi produk jadi dan masih dapat dikembangkan lagi.

Tiny OS bisa menggunakan Bahasa pemrograman lainnya untuk optimasi seluruh sistem. Karena protokol perangkat lunak saat ini bersifat implisit, menjadikannya entitas eksplisit akan memungkinkan kompiler untuk memeriksa apakah komponen digunakan dengan benar.

Contoh penerapan Tiny OS:

  • Perangkat pendeteksi asap
  • Digunakan dalam kegiatan militer
  • Kontrol suhu seperti AC di dalam ruangan atau di dalam mobil
  • Sistem keamanan di bank
  • Pemantauan sumber daya
  • Pemantauan lingkungan
  • Pengukuran industri
  • Mendukung perangkat Bluetooth
  • Digunakan dalam oven microwave
  • Digunakan dalam pertanian untuk mendeteksi kesalahan tanaman
  • Habitat monitoring
  • Object tracking
  • TINY DB

Berikut merupakan TIMELINE dari perkembangan Tiny OS :

  • 1999: Platform TinyOS (WeC) dan implementasi OS pertama dikembangkan di Berkeley.
  • 2000: Berkeley mendesain platform rene dan bermitra dengan Crossbow, Inc., yang memproduksi perangkat keras secara massal. TinyOS versi 0.43 tersedia untuk umum melalui SourceForge. TinyOS versi pra-1.0 adalah campuran skrip C dan Perl.
  • 2001: Berkeley mengembangkan platform mika dan merilis TinyOS versi 0.6.
  • Februari 2002: Berkeley mendistribusikan 1000 node mika ke peserta lain dalam proyek NEST.
  • April 2002: Pengerjaan bahasa pemrograman nesC dimulai sebagai kolaborasi antara Intel Research dan UC Berkeley.
  • September 2002: TinyOS versi 1.0, diimplementasikan di nesC, dirilis.
  • Agustus 2003: TinyOS versi 1.1 dirilis, yang menyertakan fitur nesC baru termasuk deteksi ras data.
  • September 2003 – Desember 2005: TinyOS memulai proses rilis minor berkala.
  • Juni 2004: Bentuk kelompok kerja pada langkah selanjutnya untuk TinyOS, berdasarkan pengalaman porting ke platform baru. Kelompok setuju untuk mulai bekerja pada 2.0.
  • Juli 2005: Proyek NEST selesai.
  • Desember 2005: TinyOS 1.1.15, versi 1.1 terakhir, dirilis.
  • Februari 2006: TinyOS 2.0 beta1 dirilis di TinyOS Technology Exchange ke-3 di Stanford, CA.
  • Juli 2006: TinyOS 2.0 beta2 dirilis.
  • November 2006: TinyOS 2.0 dirilis pada konferensi SenSys di Boulder, CO.
  • April 2007: TinyOS 2.0.1 dirilis di 4th TinyOS Technology Exchange di Cambridge, MA.
  • Juli 2007: TinyOS 2.0.2 dirilis. Bekerja pada TinyOS 2.1, yang melibatkan sedikit perubahan pada beberapa antarmuka, dimulai.
  • Agustus 2008: TinyOS 2.1.0 dirilis.
  • April 2010: TinyOS 2.1.1 dirilis.
  • Agustus 2012: TinyOS 2.1.2 dirilis

Reference :

https://people.eecs.berkeley.edu/~culler/papers/ai-tinyos.pdf

https://www.iottechtrends.com/tinyos-operating-system-for-wireless-sensors/

https://www.itrelease.com/2018/07/what-is-tinyos-and-its-applications/

https://www.win.tue.nl/~mholende/interesting/tinyos-retrospective-osdi2012.pdf