Mechanisms for Precise Virtual Time Advancement in Network Emulation

Vignesh Babu, David Nicol

Research output: Contribution to journalArticlepeer-review


Network emulators enable rapid prototyping and testing of applications. In a typical emulation, the execution order and process execution burst lengths are managed by the host platform's operating system, largely independent of the emulator. Timerbased mechanisms are typically used, but the imprecision of timer firings introduces imprecision in the advancement of time. This leads to statistical variation in behavior that is not due to the model.This article describes an open-source tool called Kronos, which provides a set of mechanisms for precise instruction-level tracking of process execution and control over execution order of containers, thus improving the mapping of executed behavior to advancement in time. This, and control of execution and placement of emulated processes in virtual time make the behavior of the emulation independent of the CPU resources of the platform that hosts the emulation. Under Kronos each process has its own virtual clock that is advanced based on a count of the number of 86 assembly instructions executed by its children. Two types of instruction counting techniques are discussed: (1) hardware-assisted mechanisms that are transparent to the executing application and (2) binary instrumentation-assisted mechanisms that modify the executing binary. We analyze the overheads associated with each approach and experimentally demonstrate the impact of Kronos' time advancement precision by comparing it against emulations that, like Kronos, are embedded in virtual time, but unlike Kronos rely on Linux timers to control virtual machines and measure their progress in virtual time. We present two useful applications where Kronos aids in generating high-fidelity emulation results at low hardware costs: (1) analyzing protocol performance and (2) enabling analysis of cyber physical control systems. We also discuss limitations associated with simple linear conversions between instruction counts and ascribed virtual time and develop and evaluate more accurate virtual time conversion models.

Original languageEnglish (US)
Article number9
JournalACM Transactions on Modeling and Computer Simulation
Issue number2
StatePublished - Apr 2022


  • Instruction counting
  • Kronos
  • Network emulation
  • Virtual time
  • Virtualization

ASJC Scopus subject areas

  • Modeling and Simulation
  • Computer Science Applications

Cite this