120 likes | 143 Views
TinyOS. CSE466 Final Project Presentation. Group members: Iliana Avila-Campillo Jason Dougherty Sze Ying Kong. Motivation. Real-time w/ high level of concurrency High level of modularity Low power consumption Limited memory and CPU speed. Network Sensor. App_init.
E N D
TinyOS CSE466 Final Project Presentation Group members: Iliana Avila-Campillo Jason Dougherty Sze Ying Kong
Motivation • Real-time w/ high level of concurrency • High level of modularity • Low power consumption • Limited memory and CPU speed
Network Sensor App_init Processor One instance of OS Application Sonar_start_read Sonar_read_done Active Messaging Component Sonar Component Echo (from HW)
Component Commands Signals Command Handler A Command Handler B Frame Task A Task C Event Handler A Task B Task D Event Handler B Commands Events
Frames • One per component • Fixed size – allocated at compile time • Persists across commands, events, tasks • Stores state for component
Tasks • Scheduled by OS • Run to completion • May be pre-empted by events (interrupts) • Operate on frames • Perform intensive computation
Event Handlers • Respond to events – HW or SW • Must execute quickly • Operate on frames • May post tasks • May call commands • May signal events
Commands • Must execute reasonably quickly • Operate on frames • May call other commands • May post tasks • May NOT signal events
Implementation • OS is comprised of a scheduler and some macros • Scheduler is implemented as a circular FIFO queue • Posting a task is effected by passing a function pointer to the OS
Implementation – 2 • Component interface (events, commands) is described in a *.comp file • Perl script generates a C header file from component file • Component is implemented in a C source file • OS and components are built together
Implementation – 3 • Interconnections between components are described in *.desc files • A Perl script generates a top-level header file from all description files • A Java program uses all description files to generate a C file which performs the dynamic event dispatch
Larry’s Objectives • Macros for use with static verification tools(not yet implemented, according to their slides) • Run-time checking – none • Exception Handling – none • Semantic Checking – none