Inferring Scheduling Behavior with Hourglass

John Regehr

University of Utah, School of Computing
50 South Central Campus Drive, Room 3190
Salt Lake City, Utah 84112-9205


Although computer programs explicitly represent data values, time values are usually implicit. This makes it difficult to analyze and debug real-time programs whose correctness depends partially on the time at which results are computed. This paper shows how to use Hourglass, an instrumented, synthetic real-time application, to make inferences about what is happening on a computer at millisecond and microsecond granularities. These inferences are possible because Hourglass records a very fine-grained map of when each of its threads runs, and because Hourglass supports a variety of thread execution models that model the properties and requirements of non-synthetic real-time applications. We conclude that between measurements and inferences, surprisingly detailed knowledge about scheduling behavior can be obtained without modifying, or even explicitly interacting with, the operating system kernel.

In Proceedings of the USENIX 2002 Annual Technical Conference FREENIX track, pages 143-156, Monterey, CA, June 10-15 2002.

Note: Hourglass runs on Linux, FreeBSD, and Windows 2000. It is free software and can be obtained from the Hourglass web page.

Citation information:

  author =       "John Regehr",
  title =        "Inferring Scheduling Behavior with Hourglass",
  booktitle =    "Proc.\ of the USENIX Annual Technical Conf.\ FREENIX
  pages =        "143--156",
  month =        jun,
  year =         "2002",
  address =      "Monterey, CA",

John Regehr <>
Last modified: Fri May 31 10:45:28 MDT 2002