34 research outputs found

    Analysis of Petri Nets and Transition Systems

    Full text link
    This paper describes a stand-alone, no-frills tool supporting the analysis of (labelled) place/transition Petri nets and the synthesis of labelled transition systems into Petri nets. It is implemented as a collection of independent, dedicated algorithms which have been designed to operate modularly, portably, extensibly, and efficiently.Comment: In Proceedings ICE 2015, arXiv:1508.0459

    Bounding the End-to-End Execution Time in Distributed Real-Time Systems: Arguing the case for Deterministic Networks in Lingua Franca

    Get PDF
    Designing and implementing distributed systems with real-time requirements quickly reveal the complexity of handling time and logic across multiple systems. As data traverse a network, it is subjected to variable delay due to interfering traffic and variable load on network components. This introduces an element of non-determinism in execution time for distributed algorithms, which translates into increased error logic and pessimistic worst-case estimates. Over the next few years, it is expected that Cyber-Physical Systems will see many new use cases, and the network connecting these will play an ever more important role. Combined with the onset of the fourth industrial revolution, IEEEs Time Sensitive Networking, IETFs Deterministic Networking, and 3GPPs Ultra Reliable Low Latency profile will play a vital role in realizing these systems. Coordination languages such as Lingua Franca can offer a substantial contribution to the design process and implementation of distributed systems such as Cyber-Phyiscal Systems, both through its model of computation which elevates time to a first-class citizen and with its support for distributed models. In this paper, we show that by introducing deterministic network channels with a fixed delay, the worst-case execution time is not increased whereas the variance in total execution time from start to finish is greatly reduced. For a coordination language such as LF, this means that we can analyze a system using much tighter delay bounds for network traffic, which in turn can yield better resource utilization.publishedVersio

    Beyond the Threaded Programming Model on Real-Time Operating Systems

    Get PDF
    The use of a real-time operating system (RTOS) raises the abstraction level for embedded systems design when compared to traditional bare-metal programming, resulting in simpler and more reusable application code. Modern RTOSes for resource-constrained platforms, like Zephyr and FreeRTOS, also offer threading support, but this kind of shared memory concurrency is a poor fit for expressing the reactive and interactive behaviors that are common in embedded systems. To address this, alternative concurrency models like the actor model or communicating sequential processes have been proposed. While those alternatives enable reactive design patterns, they fail to deliver determinism and do not address timing. This makes it difficult to verify that implemented behavior is as intended and impossible to specify timing constraints in a portable way. This makes it hard to create reusable library components out of common embedded design patterns, forcing developers to keep reinventing the wheel for each application and each platform. In this paper, we introduce the embedded target of Lingua Franca (LF) as a means to move beyond the threaded programming model provided by RTOSes and improve the state of the art in embedded programming. LF is based on the reactor model of computation, which is reactive, deterministic, and timed, providing a means to express concurrency and timing in a platform-independent way. We compare the performance of LF versus threaded C code - both running on Zephyr - in terms of response time, timing precision, throughput, and memory footprint

    A Meta-Level Framework for Recording and Utilizing Communication Histories in Maude

    Get PDF
    The thesis is part of the Creol research project, and considers objects that communicate asynchronously through message passing. Objects and messages are represented by a global state called a configuration. The configuration is a multiset that models a highly non-deterministic system with concurrent objects. This model is well suited for both standard object based Maude specifications and Creol programs executed in Maude by the Creol interpreter. The objects' interaction can be recorded by an external observer in a communication history. By specifying predicates on this history, we can define invariants for an object's behavior, as well as an object's assumptions with regards to the behavior of its surrounding environment. The main goal for this thesis is to develop a formal framework in Maude for executing specifications modeling distributed systems, that can record and utilize a communication history. More specifically, the following points are addressed: - How can we execute Maude specifications and transparently, in the sense that the original specification remains unchanged, build a communication trace as the execution proceeds? - How can we define predicates on this trace, and use such predicates to control and test the behavior of objects? - How can these techniques be applied to the Creol language, and more specifically, to the Creol interpreter developed in Maude? - How can we execute models of highly non-deterministic concurrent systems, such as Creol programs, in the deterministic rewrite tool Maude

    Efficient Parallel Reinforcement Learning Framework using the Reactor Model

    Full text link
    Parallel Reinforcement Learning (RL) frameworks are essential for mapping RL workloads to multiple computational resources, allowing for faster generation of samples, estimation of values, and policy improvement. These computational paradigms require a seamless integration of training, serving, and simulation workloads. Existing frameworks, such as Ray, are not managing this orchestration efficiently, especially in RL tasks that demand intensive input/output and synchronization between actors on a single node. In this study, we have proposed a solution implementing the reactor model, which enforces a set of actors to have a fixed communication pattern. This allows the scheduler to eliminate work needed for synchronization, such as acquiring and releasing locks for each actor or sending and processing coordination-related messages. Our framework, Lingua Franca (LF), a coordination language based on the reactor model, also supports true parallelism in Python and provides a unified interface that allows users to automatically generate dataflow graphs for RL tasks. In comparison to Ray on a single-node multi-core compute platform, LF achieves 1.21x and 11.62x higher simulation throughput in OpenAI Gym and Atari environments, reduces the average training time of synchronized parallel Q-learning by 31.2%, and accelerates multi-agent RL inference by 5.12x.Comment: 10 pages, 11 figure

    High-level Programming on Low-level Platforms: Two Domain-specific Languages based on Haskell

    Get PDF
    In this thesis, we describe our research on how to program low-level platforms with high-level languages.As an example, consider applications that run on microcontrollers. Such applicationsmay need to specify precise temporal behavior, carefully manage power usage, and handle cryptographic keys.Low-level platforms are programmed using low-level languages such as C/C++, where the lack of expressiveness canlead to error-prone code.We investigate whether we can use high-level languages to program these platforms, by embedding domain-specific languagesin a host language, Haskell. A high-level language offers better expressivity and shields the developer from low-leveldetails, yielding code that more concretely describes what the application is supposed to do. Furthermore, a richer runtimesystem could ease the burden of e.g. memory management and scheduling of coroutines.The papers in this thesis indicate that it is possible to program these devices using a high-level language. We developtwo domain-specific languages, Scoria and HasTEE. Scoria is evaluated on NRF52 microcontrollers, where we run applicationsthat require precise, temporal behavior and perform I/O. HasTEE is evaluated on machines whose processor has supportfor Intel Software Guard Extension and shows that the type system of Haskell can be used to automatically partition a Haskellapplication and run it in a trusted execution environment

    Behavior Trees with Dataflow: Coordinating Reactive Tasks in Lingua Franca

    Full text link
    Behavior Trees (BTs) provide a lean set of control flow elements that are easily composable in a modular tree structure. They are well established for modeling the high-level behavior of non-player characters in computer games and recently gained popularity in other areas such as industrial automation. While BTs nicely express control, data handling aspects so far must be provided separately, e. g. in the form of blackboards. This may hamper reusability and can be a source of nondeterminism. We here present a dataflow extension to BTs that explicitly models data relations and communication. We provide a combined textual/graphical approach in line with modern, productivity-enhancing pragmatics-aware modeling techniques. We realized and validated that approach in the recently introduced polyglot coordination language Lingua Franca (LF)
    corecore