125 research outputs found

    Atomicity and visibility in tiny embedded systems

    Get PDF
    ManuscriptVisibility is a property of a programming language's memory model that determines when values stored by one concurrent computation become visible to other computations. Our work exploits the insight that in nesC, a C-like language with explicit atomicity, the traditional way of ensuring timely visibility-volatile variables-can be entirely avoided. This is advantageous because the volatile qualifier is a notorious source of programming errors and misunderstandings. Furthermore, the volatile qualifier hurts performance by inhibiting many more optimizations than are necessary to ensure visibility. In this paper we extend the semantics of nesC's atomic statements to include a visibility guarantee, we show two ways that these semantics can be implemented, and we also show that our better implementation has no drawbacks in terms of resource usage

    Intermittent Computing: Challenges and Opportunities

    Get PDF
    The maturation of energy-harvesting technology and ultra-low-power computer systems has led to the advent of intermittently-powered, batteryless devices that operate entirely using energy extracted from their environment. Intermittently operating devices present a rich vein of programming languages research challenges and the purpose of this paper is to illustrate these challenges to the PL research community. To provide depth, this paper includes a survey of the hardware and software design space of intermittent computing platforms. On the foundation of these research challenges and the state of the art in intermittent hardware and software, this paper describes several future PL research directions, emphasizing a connection between intermittence, distributed computing, energy-aware programming and compilation, and approximate computing. We illustrate these connections with a discussion of our ongoing work on programming for intermittence, and on building and simulating intermittent distributed systems

    THAWS: automated wireless sensor network development and deployment

    Get PDF
    This research focuses on the design and implementation of a tool to speed-up the development and deployment of heterogeneous wireless sensor networks. The THAWS (Tyndall Heterogeneous Automated Wireless Sensors) tool can be used to quickly create and configure application-specific sensor networks. THAWS presents the user with a choice of options, in order to characterise the desired functionality of the network. With this information, THAWS generates the necessary code from pre-written templates and well-tested, optimized software modules. This is then automatically compiled to form binary files for each node in the network. Wireless programming of the network completes the task of targeting the wireless network towards a specific sensing application. THAWS is an adaptable tool that works with both homogeneous and heterogeneous networks built from wireless sensor nodes that have been developed in the Tyndall National Institute

    THAWS: automated design and deployment of heterogeneous wireless sensor networks

    Get PDF
    This research focuses on the design and implementation of a tool to speed-up the development and deployment of heterogeneous wireless sensor networks. The THAWS (Tyndall Heterogeneous Automated Wireless Sensors) tool can be used to quickly create and configure application-specific sensor networks, based on a list of application requirements and constraints. THAWS presents the user with a choice of options, in order to gain this information on the functionality of the network. With this information, THAWS uses code generation techniques to create the necessary code from pre-written templates and well-tested, optimized software modules from a library, which includes an implementation of novel plug-and-play sensor interface. These library modules can also be modified at the code generation stage. The application code and necessary library modules are then automatically compiled to form binary instruction files for each node in the network. The binary instruction files then wirelessly propagate through the network, and reprogram the nodes. This completes the task of targeting the wireless network towards a specific sensing application. THAWS is an adaptable tool that works with both homogeneous and heterogeneous networks built from wireless sensor nodes that have been developed in the Tyndall National Institute. Its advantage over traditional methods of WSN development is simplification of development

    Runtime Systems for Persistent Memories

    Full text link
    Emerging persistent memory (PM) technologies promise the performance of DRAM with the durability of disk. However, several challenges remain in existing hardware, programming, and software systems that inhibit wide-scale PM adoption. This thesis focuses on building efficient mechanisms that span hardware and operating systems, and programming languages for integrating PMs in future systems. First, this thesis proposes a mechanism to solve low-endurance problem in PMs. PMs suffer from limited write endurance---PM cells can be written only 10^7-10^9 times before they wear out. Without any wear management, PM lifetime might be as low as 1.1 months. This thesis presents Kevlar, an OS-based wear-management technique for PM, that requires no new hardware. Kevlar uses existing virtual memory mechanisms to remap pages, enabling it to perform both wear leveling---shuffling pages in PM to even wear; and wear reduction---transparently migrating heavily written pages to DRAM. Crucially, Kevlar avoids the need for hardware support to track wear at fine grain. It relies on a novel wear-estimation technique that builds upon Intel's Precise Event Based Sampling to approximately track processor cache contents via a software-maintained Bloom filter and estimate write-back rates at fine grain. Second, this thesis proposes a persistency model for high-level languages to enable integration of PMs in to future programming systems. Prior works extend language memory models with a persistency model prescribing semantics for updates to PM. These approaches require high-overhead mechanisms, are restricted to certain synchronization constructs, provide incomplete semantics, and/or may recover to state that cannot arise in fault-free program execution. This thesis argues for persistency semantics that guarantee failure atomicity of synchronization-free regions (SFRs) --- program regions delimited by synchronization operations. The proposed approach provides clear semantics for the PM state that recovery code may observe and extends C++11's "sequential consistency for data-race-free" guarantee to post-failure recovery code. To this end, this thesis investigates two designs for failure-atomic SFRs that vary in performance and the degree to which commit of persistent state may lag execution. Finally, this thesis proposes StrandWeaver, a hardware persistency model that minimally constrains ordering on PM operations. Several language-level persistency models have emerged recently to aid programming recoverable data structures in PM. The language-level persistency models are built upon hardware primitives that impose stricter ordering constraints on PM operations than the persistency models require. StrandWeaver manages PM order within a strand, a logically independent sequence of PM operations within a thread. PM operations that lie on separate strands are unordered and may drain concurrently to PM. StrandWeaver implements primitives under strand persistency to allow programmers to improve concurrency and relax ordering constraints on updates as they drain to PM. Furthermore, StrandWeaver proposes mechanisms that map persistency semantics in high-level language persistency models to the primitives implemented by StrandWeaver.PHDComputer Science & EngineeringUniversity of Michigan, Horace H. Rackham School of Graduate Studieshttps://deepblue.lib.umich.edu/bitstream/2027.42/155100/1/vgogte_1.pd

    Trailer Reverse Assist. Optical Follow Me

    Get PDF
    Backing-up a trailer is a difficult task even for experienced users, and thus, solutions exist for assisting the steering of a vehicle-trailer system by just requiring the input of the desired trailer’s trajectory. Nevertheless, the problem is not entirely solved as the selected trajectory clearance while reversing a trailer is not completely available due to visibility obstructions, making reversing a trailer an unsafe maneuver. The objective of this work is to perform a proof-of-concept of a system which aids the user in the process of backing up a trailer through the desired trajectory where limited visibility is present. This was accomplished by developing an add-on feature capable of tracking a helping person. The new feature provides the required information so that existing compatible trailer reversing solutions can steer and accelerate the vehicle to follow the tracked person while also keeping a safe distance. Moreover, potential collisions are prevented by the addition of a close proximity object detection functionality. For this, a scaled prototype of the proposed system was developed by applying the “Vee Model” methodology where the requirements, architecture, solution design, implementation, and validation steps were followed. A successful proof-of-concept was accomplished after validating the capacity of the prototype to both identify and follow a person, while maintaining a safe distance, and to detect objects in the vehicle’s path. In addition, the documentation of the system’s design, development, and validation was achieved rendering the feature ready for full scale development. In conclusion, the “Trailer Reverse Assist - Optical Follow Me” system add-on can further assist in the process of backing-up a trailer safely in environments where the visibility is limited while also preventing collisions with nearby objects.ITESO, A. C.ContinentalConsejo Nacional de Ciencia y Tecnologí
    • …
    corecore