A Survey of Geosensor Networks: Advances in Dynamic Environmental Monitoring <s> Computing Platforms <s> We present nesC, a programming language for networked embedded systems that represent a new design space for application developers. An example of a networked embedded system is a sensor network, which consists of (potentially) thousands of tiny, low-power "motes," each of which execute concurrent, reactive programs that must operate with severe memory and power constraints.nesC's contribution is to support the special needs of this domain by exposing a programming model that incorporates event-driven execution, a flexible concurrency model, and component-oriented application design. Restrictions on the programming model allow the nesC compiler to perform whole-program analyses, including data-race detection (which improves reliability) and aggressive function inlining (which reduces resource consumption).nesC has been used to implement TinyOS, a small operating system for sensor networks, as well as several significant sensor applications. nesC and TinyOS have been adopted by a large number of sensor network research groups, and our experience and evaluation of the language shows that it is effective at supporting the complex, concurrent programming style demanded by this new class of deeply networked systems. <s> BIB001 </s> A Survey of Geosensor Networks: Advances in Dynamic Environmental Monitoring <s> Computing Platforms <s> The operation of wireless sensor networks is fundamentally constrained by available energy sources. The underlying hardware determines the power draw of each possible mode of operation. System software attempts maximize the use of the lowest possible modes of each of the subsystems. This tutorial paper describes the system software techniques used at several levels. At the application sensing level, this includes duty-cycling, sensor hierarchy, and aggregation. At the communication level, it includes low-power listening, communication scheduling, piggybacking, post-hoc synchronization, and power-aware routing. At the node OS level, it includes event driven execution with split-phase operation and cooperative power management interfaces. At the lowest level, it includes management of primary and secondary energy storage devices coupled with intelligent charge transfer scheduling. All of these aspects must be integrated in a systematic software framework. <s> BIB002
Since the late 90s, via an DARPA-funded effort targeted research in the area of electrical and computer engineering has focused on the design of tiny computing platforms at the size of a penny  , as well as the development of operating systems that are appropriate to run on and manage these small, resource-constrained platforms (e.g., TinyOS, Contiki and nesC) BIB002 [6] BIB001 . Since then, rapid advances in miniature, low-cost microelectronic and mechanical systems (MEMS) with limited onboard processing capabilities, storage and short-range wireless communication links have been made. The Universities of California at Berkeley and Los Angeles as well as MIT developed the first computing platforms that are commonly used in sensor network research projects today. The Intel/UC Berkeley Mica Mote series is commercially distributed today by Crossbow [8] . Other commercially available platforms are the TMote Sky, formerly distributed by Moteiv, which has now become Sentilla [9] , a company co-founded by IBM, Texas Instruments and Sun Microsystems. The first Mica Motes did run on Texas Instruments processors and so both lines share some similarities. Table 1 provides an overview of the detailed specifications of currently available computing platforms. Ultimately, the objective is to develop truly miniature platforms at the size of sand grains, and create sensor networks consisting up of thousands or even millions of sensors sprinkled like "pixie dust" with microsensors at the size of a 1,000th of a millimeter, and set up collaboration in a self-organizing way and perform tasks in a decentralized way ("Smart Dust")  . These efforts are today also commercially pursued by Dust Networks [10] . Combining 'dust-sized motes' with tiny sensor will provide an 'environmental microscopic' view to geophysical phenomena. Computing platforms with such a significant reduction in size have required the rethinking and reimplementation of supporting software, too. One of the first software systems has been the development of an operating system, appropriately called TinyOS. This operating system has a very low memory footprint, i.e., a few kilobytes of code to store the entire operating system and a few hundred bytes of RAM to run it. It is available as open source software and further developed and extended in the community. Other operating systems and programming environments are Contiki [6] and Sentilla's Perk Java-compliant platform for embedded 8-bit and 16-bit microcontrollers [9] . Besides designing small-footprint code, much research has been done to develop low-power, robust, ad-hoc communication protocols between sensor nodes. Since each node has a very limited reliable communication range (10-100 m), sending of messages in a sensor network is performed in a multi-hop way relaying the messages between sensor nodes until they arrive at their destination  . The protocols focus on how to route messages from a node to a destination using the least amount of power. The general idea of geosensor networks is to deploy sensor nodes without wires, i.e., without power line and communication lines. Such untethered geosensor networks are easier to deploy in remote areas, but have the disadvantage that the energy supply is limited, and thus, they are currently better used for detecting and monitoring short-term events such as volcano tremors. For areas closer to a power infrastructure, wired sensor nodes are more reliable and less constrained and are more suitable for continuous monitoring.