Kronos controlled execution

Linux processes can be added to Kronos’s control with API calls. Once a process is added to Kronos’s schedule queue, its execution order and duration is controlled by Kronos. We refer to these processes as dilated processes. All new threads and processes which may be spawned by any exiting dilated process is automatically detected and added to Kronos’s control.

In this section, we briefly discuss the stages involved in dilating a process and subsequently advancing all dilated processes in virtual synchrony. For each stage, either APIs or helper binaries are provided.

In any Kronos controlled execution, a central orchestrator script is written by the user. The orchestrator script should accept as input a set of processes to dilate. These processes are expressed as linux commands with arguments. It should then invoke kronos specific APIs or helper binaries for each stage. All the involved stages are listed in the correct order below:

In subsequent sections, we describe each stage in more detail.