Information and control in gray-box systems
Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau
Abstract
In modern systems, developers are often unable to modify the
underlying operating system. To build services in such an
environment, we advocate the use of gray-box techniques. When
treating the operating system as a gray-box, one recognizes that
not changing the OS restricts, but does not completely obviate,
both the information one can acquire about the internal state of
the OS and the control one can impose on the OS. In this paper, we
develop and investigate three gray-box Information and Control
Layers (ICLs) for determining the contents of the file-cache,
controlling the layout of files across local disk, and limiting
process execution based on available memory. A gray-box ICL sits
between a client and the OS and uses a combination of algorithmic
knowledge, observations, and inferences to garner information about
or control the behavior of a gray-box system. We summarize a set of
techniques that are helpful in building gray-box ICLs and have
begun to organize a ``gray toolbox'' to ease the construction of
ICLs. Through our case studies, we demonstrate the utility of
gray-box techniques, by implementing three useful ``OS-like''
services without the modification of a single line of OS source
code.