Embedded systems: “A special purpose computer built into a larger device”
“Special-purpose” : Embedded systems mepunyai tugas yang sangat spesifik
“Built into a larger device” : Embedded systems (biasanya) merupakan bagian dari piranti yang lebih besar, untuk meningkatkan kapabilitasnya
Embedded Systems saat ini
• Signal processing systems – Real-time video, set-top boxes, DVD players, medical equipment, residential gateways
• Distributed control – Network routers, switches, firewalls, mass transit systems, elevators
• “Small” systems – Mobile phones, pagers, home appliances, toys, smartcards, MP3 players, PDAs, digital cameras, sensors, smart badges
Karakteristik Embedded Systems
• Menjadi bagian dai sistem yang lebih besar
– Periferal terbatas
• Application-specific
– Baik hardware maupun software dirancang khusus untuk aplikasi yang spesifik – Tetapi, re-programmability merupakan suatu kebutuhan
– ‘HALT’ merupakan suatu bad state!
• Interaksi dengan dunia fisik
Embedded Systems Hardware
• Commercial off-the-shelf components (COTS)
– e.g. wireless radios, sensors, I/O devices
–Murah
• Application-Specific ICs (ASICs)
– ICs yang dirancang untuk keperluan/aplikasi khusus
– Kinerja yang sangat bagus pada aplikasi
– Embedded systems pada awalnya hanya ASICs
• Domain-specific processors
–DSPs
– Microcontrollers
– Microprocessors
Embedded Software
• Tugas utama: ‘Not transformation of data but interaction with physical world’
• Mengakuisisi sifat-sifat fisika/kimia lingkungan
–Perlu waktu
– Mengkonsumsi daya
– Tidak berhenti (kecuali gagal beroperasi)
Sifat-Sifat Embedded Software
• Timeliness
• Concurrency
•Liveness
• Interfaces
• Heterogeneity
• Reactivity
Timeliness
• Waktu: secara sistematik telah dibung dari teori komputasi
• RTOS seringkali mereduksi karakterisasi suatu task menjadi sebuah bilangan (yakni, prioritasnya)
• Tetapi: Komputasi memerlukan waktu
– Tetapi, bahkan pada komputer yang sangat cepat, waktu masih perlu dipertimbangkan
– Proses fisik memerlukan waktu
• Perlu ditemukan abstraksi yang memungkinkan kendali waktu!
Concurrency
• Di dunia fisik, banyak kejadian berlangsung pada waktu yang sama
• Tantangan: mengkompromikan sekuensialitas software dengan konsurensi dunia nyata
– Pendekatan klasik (semaphores, monitors, dsb) memberikan fondasi yang baik
• Tetapi : tidak mencukupi
– Pendekatan lain: kompilasikan konkurensi (Estrel)
• Estrel: synchronous/reactive language
– FSM based, deterministic behavior
• Keunggulan: program yang sangat dapat diandalkan
• Kekurangan: terlalu statik untuk sistem tertemtu
– Karena itu diperlukan pendekatan menengah
Liveness
• Program tidak boleh berakhir
– Tidak seperti model komputasi Turing tradisional, HALT tidak boleh terjadi
– Deadlock tidak dapat ditolerir
• Correctness bukan semata-mata menampilkan jawaban akhir yang benar
– Harus mempertimbangkan hal-hal seperti timing, power consumption, fault recovery, security and robustness
Reactivity
• Sistem disebut interaktif, bila:
– Bereaksi dengan kecepatannya sendiri (atau kecepatan manusia yang mengendalikannya)
• Sistem disebut transformatsional, bila:
– Mentransformasikan suatu input data menjadi suatu output data (misalnya perkalian dua buah matriks)
• Sistem disebut reaktif, bila:
– Bereaksi secara kontinu dengan lingkungan, selalu dengan kecepatan reaksi yang tetap
– Harus beradaptasi terhadap perubahan kondisi
• Sumberdaya dan permintaan dapat sering berubah
– Kendala waktu nyata
– Safety-critical
• Fault-tolerance dapat merupakan isu utama
Embedded Operating Systems
• Sistem Operasi Bergaya Office
–PalmOS
– WindowsCE
• Real-Time Operating Systems
– VxWorks
– QNX
• Linux
– Linux sudah bersifat ubiquitous
• Banyak piranti menggunakannya
• http://www.linuxdevices.com/articles/AT4936596231.html
– Banyak variasi dari ‘soft real time’ ke ‘hard real time’
– Terdapat banyak commercial + open source products
• Lainnya
–TinyOS
Teknik Penjadwalan pada Embedded Operating Systems
• Cyclic executive
– Static schedulability analysis
• Hasilnya digunakan pada saat runtime
– Hebat untuk tugas-tugas yang periodik
• Tetapi : tidak flexible
• Event-driven non-preemptive
– Tugas-tugas direpresentasikan dengan functions (event handlers)
–FIFO
– Aman, tetapi terbatas
Scheduling (cont’d)
• Static/dynamic priority preemptive scheduling
– Static schedulability analysis
– Tidak ada schedule eksplisit: pada saat run-time laksanakan highest priority task pertama kali
• Rate/deadline monotonic, earliest deadline first, least slack
– Flexible, tetapi berpotensi bahaya
• Priority inversion
• Deadlock
• Dynamic planning-based scheduling
– Schedulability di-check pada saat runtime untuk task yang datang secara dinamik
• Schedule yang dihasilkan menentukan kapan eksekusi
• Bila scheduling gagal, lakukan tindakan alternatif
– Flexible dan lumayan predictable
• Dynamic best-effort scheduling
– Tidak ada checking
• Kapan kendala timing dipenuhi hanya dapat diketahui sesudah task selesai atau deadline tidak terpenuhi
– System berusaha memenuhi deadline
• Tasks dapat di-preempted kapan saja
