6 research outputs found

    Controlled virtual time advancement in conjoined emulation and network simulation

    Get PDF
    Emulations of network services are more accurate than simulated models. However this is achieved at an increased computational cost. Combining emulation with simulation allows more accurate, controllable and repeatable evaluation of applications but such hybrid systems are generally not scalable. Virtual time systems attempt to provide a feasible solution by defining and controlling a virtual clock to alter an experiment’s notion of time. Previous works have motivated and explored the benefits of virtual time systems in improving the scalability of combined emulation-simulation testbeds. One such endeavor resulted in the development of TimeKeeper, an open source virtual time system for Linux. TimeKeeper has been integrated with popular network simulators ns-3, CORE and S3FNet. In this thesis, we extend it further by integrating TimeKeeper with the Extensible Mobile AdHoc Network Emulator (EMANE). We also demonstrate the broad applicability of TimeKeeper by implementing a Programmable Logic Controller (PLC) network emulation tool which can be used to emulate industrial Supervisory Control and Data Acquisition (SCADA) systems. Over the course of the design of these two case studies, we unearthed and fixed a subtle design flaw in TimeKeeper’s scheduling mechanism which could potentially starve some processes of CPU time during execution. The purpose of this thesis is twofold (1) to describe improvements to TimeKeeper’s design including the logic to ensure fair scheduling and (2) to describe two case studies which demonstrate the scalability and fidelity benefits of running emulations/simulations in close virtual synchrony under the control of TimeKeeper

    TimeKeeper: a lightweight and scalable virtual time system for the Linux Kernel

    Get PDF
    The ability to embed certain processes in virtual time is very useful to the Linux Kernel. Each process may be directed to advance in virtual time either more quickly or more slowly than actual (real) time. This allows interactions between processes and physical devices to be artificially scaled. For example, a network may appear to be ten times faster within a process than it actually is. Virtual time is also useful in the context of mixing emulation with a network simulator, in order to reduce the overall workload on the simulator. If virtual time is progressing more slowly than real time, the simulator will have additional time to process events. This allows for more precise packet timing, thus improving the fidelity of the experiment. The purpose of this thesis is to present TimeKeeper, a lightweight and scalable virtual time system for the Linux Kernel. TimeKeeper consists of a simple patch to the 3.10.9 Linux Kernel and a Linux Kernel Module. With TimeKeeper, a user is able to assign a specific time dilation factor to any process, as well as freeze/unfreeze a process (where virtual time will not advance when a process is frozen). In addition, TimeKeeper supports synchronized (in virtual time) emulation, by grouping processes together into an experiment where the virtual times of the processes remain synchronized, even when their virtual time advances at different rates. This thesis explores the motivation for TimeKeeper, as well as potential use cases. TimeKeeper’s API and design goals are discussed. With the various design goals in mind, this paper explores the implementation of Timekeeper, including specific file modifications to the Linux Kernel in conjunction with the underlying algorithms. Additionally, various experiments conducted with TimeKeeper are reviewed. These experiments include synchronization efficiency, TimeKeeper overhead, and scalability. Finally, integration and utilization of TimeKeeper with different network simulators is examined. TimeKeeper allows the virtual times of multiple processes to be tightly synchronized, plus scaling to a very large number of processes. This creates the ability to execute far more complex simulations than previously possible utilizing the same hardware

    A study into concurrent advancement of simulation and emulation using composite synchronization.

    Get PDF
    Simulating a communication network is often a necessity before deploying it into the real world. However, behavior of purely simulated models is limited by the functionality of the network simulator. Instead, emulation can be combined with simulation to simulate real traffic generated by real applications. This integration of simulation and emulation is done in virtual time thanks to TimeKeeper, a recent open source tool that brings Linux processes to virtual time. Previous work involved integration of TimeKeeper with simulators such as CORE and ns-3. The purpose of this thesis is to explore and analyze the integration of TimeKeeper and S3FNet and closely couple simulation and emulation. Previously, S3FNet was combined with emulation via OpenVZ containers and synchronized simulation and emulation using stop-and-go barrier based synchronization. This work combines S3FNet with Linux containers and utilizes composite synchronization to achieve a tighter coupling between simulation and emulation. This thesis explores the challenges and limitations of emulation with Linux containers after their integration with S3FNet

    A fine-grain time-sharing Time Warp system

    Get PDF
    Although Parallel Discrete Event Simulation (PDES) platforms relying on the Time Warp (optimistic) synchronization protocol already allow for exploiting parallelism, several techniques have been proposed to further favor performance. Among them we can mention optimized approaches for state restore, as well as techniques for load balancing or (dynamically) controlling the speculation degree, the latter being specifically targeted at reducing the incidence of causality errors leading to waste of computation. However, in state of the art Time Warp systems, events’ processing is not preemptable, which may prevent the possibility to promptly react to the injection of higher priority (say lower timestamp) events. Delaying the processing of these events may, in turn, give rise to higher incidence of incorrect speculation. In this article we present the design and realization of a fine-grain time-sharing Time Warp system, to be run on multi-core Linux machines, which makes systematic use of event preemption in order to dynamically reassign the CPU to higher priority events/tasks. Our proposal is based on a truly dual mode execution, application vs platform, which includes a timer-interrupt based support for bringing control back to platform mode for possible CPU reassignment according to very fine grain periods. The latter facility is offered by an ad-hoc timer-interrupt management module for Linux, which we release, together with the overall time-sharing support, within the open source ROOT-Sim platform. An experimental assessment based on the classical PHOLD benchmark and two real world models is presented, which shows how our proposal effectively leads to the reduction of the incidence of causality errors, as compared to traditional Time Warp, especially when running with higher degrees of parallelism

    Computer Aided Verification

    Get PDF
    The open access two-volume set LNCS 11561 and 11562 constitutes the refereed proceedings of the 31st International Conference on Computer Aided Verification, CAV 2019, held in New York City, USA, in July 2019. The 52 full papers presented together with 13 tool papers and 2 case studies, were carefully reviewed and selected from 258 submissions. The papers were organized in the following topical sections: Part I: automata and timed systems; security and hyperproperties; synthesis; model checking; cyber-physical systems and machine learning; probabilistic systems, runtime techniques; dynamical, hybrid, and reactive systems; Part II: logics, decision procedures; and solvers; numerical programs; verification; distributed systems and networks; verification and invariants; and concurrency

    Computer Aided Verification

    Get PDF
    The open access two-volume set LNCS 11561 and 11562 constitutes the refereed proceedings of the 31st International Conference on Computer Aided Verification, CAV 2019, held in New York City, USA, in July 2019. The 52 full papers presented together with 13 tool papers and 2 case studies, were carefully reviewed and selected from 258 submissions. The papers were organized in the following topical sections: Part I: automata and timed systems; security and hyperproperties; synthesis; model checking; cyber-physical systems and machine learning; probabilistic systems, runtime techniques; dynamical, hybrid, and reactive systems; Part II: logics, decision procedures; and solvers; numerical programs; verification; distributed systems and networks; verification and invariants; and concurrency
    corecore