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.
|
1825
|
Congestion avoidance and control
– Jacobson
- 1988
|
|
1738
|
Random Early Detections Gateways for Congestion Avoidance
– Floyd, Jacobson
- 1993
|
|
840
|
Condor - a hunter of idle workstations
– Litzkow, Livny, et al.
- 1988
|
|
701
|
Scale and Performance in Distributed File Systems
– Howard, Kazar, et al.
- 1988
|
|
684
|
The Design and Implementation of a Log-Structured File System
– Rosenblum, Ousterhout
- 1991
|
|
621
|
A Comparison of Mechanisms for Improving TCP Performance over
– Balakrishnan, Padmanabhan, et al.
- 1996
|
|
506
|
Exokernel: an Operating System Architecture for Application-Level Resource Management
– Engler, Kaashoek, et al.
- 1995
|
|
444
|
A Fast File System for UNIX
– McKusick, Joy, et al.
- 1983
|
|
441
|
Theory of games and economic behavior
– Neumann, Morgenstern
- 1947
|
|
390
|
Scheduler activations: Effective kernel support for the user-level management of parallelism
– Anderson, Bershad, et al.
- 1991
|
|
363
|
Measurements of a Distributed File System
– Baker, Hartman, et al.
- 1991
|
|
326
|
Differential power analysis
– Kocher, Jaffe, et al.
- 1999
|
|
236
|
Scheduling Techniques for Concurrent Systems
– Ousterhout
- 1982
|
|
223
|
Dealing with disaster: Surviving misbehaved kernel extensions
– Seltzer, Endo, et al.
- 1996
|
|
153
|
Hints for computer system design
– Lampson
- 1983
|
|
143
|
Interposition Agents: Transparently Interposing User Code at the System Interface
– Jones
- 1992
|
|
127
|
Disco: Running commodity operating systems on scalable multiprocessors
– Bugnion, Devine, et al.
- 1997
|
|
108
|
A delay-based approach for congestion avoidance in interconnected heterogeneous computer networks
– Jain
- 1989
|
|
75
|
SLIC: An Extensibility System for Commodity Operating Systems
– Ghormley, S, et al.
- 1998
|
|
70
|
Glunix: a global layer unix for a network of workstations. Software—Practice and Experience
– GHORMLEY, PETROU, et al.
- 1998
|
|
58
|
Girshick. Theory of Games and Statistical Decisions
– Blackwell, Abraham
- 1954
|
|
56
|
Measuring Cache and TLB Performance and Their Effect on Benchmark Runtimes
– Saavedra, Smith
- 1995
|
|
53
|
EELRU: Simple and Effective Adaptive Page Replacement
– Smaragdakis, Kaplan, et al.
|
|
47
|
Empirical Evaluation of the CRAY-T3D: A Compiler Perspective
– Arpaci, Culler, et al.
- 1995
|
|
46
|
Microbenchmark-based Extraction of Local and Global Disk Characteristics
– Talagala, Arpaci-Dusseau, et al.
- 1999
|
|
41
|
Exterminate All Operating System Abstractions
– Engler, Kaashoek
- 1995
|
|
39
|
An Adaptive Hash Join Algorithm for Multiuser Environments
– Zeller, Gray
|
|
38
|
Progress-based regulation of low-importance processes
– Douceur, Bolosky
- 1999
|
|
36
|
Converting a swap-based system to do paging in an architecture lacking page-referenced bits
– Babaoglu, Joy
- 1981
|
|
35
|
A super scalar sort algorithm for risc processors
– Agarwal
- 1996
|
|
35
|
Implicit coscheduling: Coordinated scheduling with implicit information in distributed systems
– Arpaci-Dusseau
- 2001
|
|
31
|
Beyond micro-kernel design: Decoupling modularity and protection in Lipto
– Druschel, Peterson, et al.
- 1992
|
|
22
|
A comparison of FFS disk allocation policies
– Smith, Seltzer
- 1996
|
|
21
|
Memory-adaptive external sorting
– Pang, Carey, et al.
|
|
17
|
mhz: Anatomy of a micro-benchmark
– Staelin, McVoy
- 1998
|
|
16
|
Scheduler activations: Eective kernel support for the user-level management of parallelism
– Anderson, Bershad, et al.
- 1992
|
|
15
|
Latency management in storage systems
– Meter, Gao
- 2000
|
|
14
|
G.M.: The UVM Virtual Memory System
– Cranor, Parulkar
- 1999
|
|
9
|
Visual proxy: Exploiting OS customizations without application source code
– Satyanarayanan, Flinn, et al.
- 1999
|
|
7
|
File System Aging
– Smith, Seltzer
- 1997
|
|
1
|
The UNIX Time-Shaxing System
– Ritchie, Thompson
- 1974
|