Check out the new USENIX Web site. next up previous
Next: CPU Resources Up: User-level Resource-constrained Sandboxing Previous: Background and Related Work

Enforcing Quantitative Restrictions

Our strategy manages the allocation of system resources to an application by relying upon techniques for instrumenting the application, monitoring its progress, and as necessary, controlling its progress of execution. Progress metrics represent estimates of an application's resource consumption. Instrumenting (using tools such as  [BG99,HB99]) allows us to inject code into the application and intercept its API calls on the fly. Since some system resources such as CPU and memory can be accessed without going through a high-level API call that can be intercepted, we control the resources available to the application both at the point of the request (e.g., when sending a message), and between resource requests (e.g., between memory allocations). These techniques leverage a core set of user-level mechanisms that are provided by most modern OSes such as priority-based process scheduling, page-based memory protection, and fine-grained timers.

In the rest of this section, we describe how this strategy can be used to control application consumption of three representative resources: CPU, memory, and network. The goal of controlling resource consumption can be twofold: to simply prevent an application from overusing system resources and starving other applications, or to provide a soft guarantee of and weighted fair sharing of resources to the controlled applications. The latter goal can create, for each application, a virtual execution environment that simulates a physical machine with the prescribed resource limitations. However, meeting this goal requires that extra resources cannot be given to the constrained application even if available. The techniques described in the rest of this paper address this more general goal.




next up previous
Next: CPU Resources Up: User-level Resource-constrained Sandboxing Previous: Background and Related Work
Fangzhe Chang, Ayal Itzkovitz, and Vijay Karamcheti
2000-05-15