Embedded System

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

By Sudarmawan

Tinggalkan Balasan

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 / Ubah )

Twitter picture

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

Facebook photo

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

Connecting to %s