Visible to the public An End-to-end Quality of Time (QoT) Stack for Linux


Commodity operating systems manage time in a best effort fashion, where clock synchronization is performed independently of both application demand and resource constraints. The vision of the RoseLine project is to develop a Quality of Time (QoT) stack for Linux that enables developers to write distributed applications that perform computation with a common sense of time. Every application specifies a granularity and deviation from the timeline that is considered acceptable, and the QoT stack uses this information to configure the timing stack to meet these requirements, while balancing resources. The QoT stack is divided into three major components a userspace application programmer interface (API), a kernel module and a system service. Developers use the interface to bind to a shared sense of time, which we call a timeline. The developer can then query time and schedule events, as well as timestamp and generate hardware interrupts, along this timeline. The interface communicates directly with a kernel module, which is responsible for setting up timer hardware, keeping track of all timelines in the system, and the creation/destruction of logical clocks. The system service runs as a background service in Linux userspace, and is responsible for distributing information about the timelines and carrying out synchronization to discipline the logical clocks. We demonstrate how the QoT stack can be used to write a controller that stabilizes an inverted pendulum, where sensing and control/actuation are performed on two separate networked devices. The classic timeagnostic inverted pendulum controller neglects the delay between the sensor measurements being received and the point at which control is sent to the platform. In a distributed setting there may be delays in the order of milliseconds, which prevents the controller from inverting the pendulum. We show how the QoT stack can be used to develop a delaytolerant controller that executes sensing and control in lockstep across networked devices, resulting in a stable system. We are currently investigating hardware and software that enables the stack to switch between different oscillators, as well as an improved synchronization engine that takes into account factors like network topology to best configure synchronization. Work is also underway to construct a quadrotor test bed for experimentally evaluating time synchronization in the context of multiplatform robot navigation.

Creative Commons 2.5

Other available formats:

An End-to-end Quality of Time (QoT) Stack for Linux
Switch to experimental viewer