468c5df2512adc033b6206779d59f9f1.ppt
- Количество слайдов: 9
reecpmio. C tu ne c. S sn. Bench: A Programming and Runtime Framework for Sensor Networks Michael Ocean with Azer Bestavros and Assaf Kfoury
Motivation (sensing change) reecpmio. C tu ne c. S Traditional Sensor Networks : Homogeneous nodes Highly constrained (e. g. , computation, communication, power, etc. ) Nodes programmed for a single common goal “Embedded” Sensor Networks (Sensoria) : Heterogeneous nodes/Hybrid networks Varied constraints on devices/networks Program the network to achieve multiple (potentially conflicting) goals running simultaneously
Requirements? reecpmio. C tu ne c. S Program the SN, top down Forget the trees, program the forest Resources should be homogenized/virtualized (each resource is a collection of shared virtual resources) A SN program should be a series of “atomic” tasks to be supported/executed by constituent resources Runtime support within the SN to schedule and deploy programs (send partial tasks to different resources)
reecpmio. C tu ne c. S sn. Bench: Programming Cycle Program SNAFU language high-level “glue” Compile A SNAFU program is compiled into a Sensorium Task Execution Plan (STEP) Map and Link STEPs are decomposed in smaller dispatch-able (baby) STEPs which are linked to resources Load and Execute Linked STEPs are dispatched to sensor runtime/execution environments (SXEs)
reecpmio. C tu ne c. S SNet Apps as FUnctions SNAFU: functional specification language Glue together the basic “blocks” fundamentals of sensor programs: computation, sensing, communication, storage, values, etc. e. g. , identify the face seen through camera 1 Why use a functional style ? the abstract syntax tree easily maps to a tree-like task dependency diagram concurrency/serialization is opaque makes task dissection (e. g. , dispatch) easier
reecpmio. C tu ne c. S Iteration/Recursion in SNAFU does not allow traditional recursion Repetitive or persistent computation is achieved through the (cycle-safe) “trigger” construct Two types of triggers Transient – expires naturally trigger(A, B): evaluate A until it results to true, then evaluate and return B Persistent – runs “forever” level_trigger(A, B): evaluate A indefinitely, evaluate and return B whenever A is true edge_trigger(A, B): evaluate A indefinitely, evaluate and return B whenever A transitions to true LAST_TRIGGER_EVAL token lets a trigger access the previous iterations value
reecpmio. C tu ne c. S Sensorium Task Execution Plan SNAFU is compiled into STEP “Instruction Set Architecture” Serialized as XML to describe both: Sensorium-scoped tasks (whole program) resource-scoped tasks (sub-program) Directed Acyclic Graph values percolate up toward root
reecpmio. C tu ne c. S Infrastructure support Sensorium Resource Manager (SRM) Manages “local”-area Sensorium resources Sensorium Service Dispatcher (SSD) STEP scheduling, deployment and monitoring: Accept a new STEP graph Detect if any task (STEP node) reuse is possible Link/Schedule the STEP (Fragment into resource specific STEPs) (add socket nodes within STEP fragments to repair data flow) Dispatch the STEP fragments to SXEs
reecpmio. C tu ne c. S Sensor e. Xecution Environment Shares local (virtual) resources with the Sensorium Abstraction of local resources through STEP program abstraction Advertises computational and sensing capabilities to SSD Accepts STEPs from SSD STEP interpreter can be dynamically tasked with new functionalities via the network
468c5df2512adc033b6206779d59f9f1.ppt