SILK Research

The research ideas of SILK address the problem of providing resource isolation between slices in PlanetLab. In PlanetLab's distributed environment of over 160 nodes world-wide, this problem is complicated by the following dimensions:

Faced with these practical problems, we have developed techniques for scheduling CPU and network resources, and imposing additional resource isolation structures on the kernel, from within a Linux kernel module. This allows SILK development, deployment, and maintenance on PlanetLab without kernel patches. Conversely, PlanetLab kernel changes require only a recompilation of the SILK module as long as the key internal interfaces used by SILK remain unchanged. SILK is structured so that tracking future versions of Linux with modified internal interfaces will involve rewriting only a few well-defined components.

SILK's resource isolation mechanisms span the following research areas:

CPU and Network Scheduling
The goal of SILK's scheduling framework is to generalize scheduling along two dimensions: those of the resource scheduled (e.g., CPU cycles or network bits) and the discipline used to schedule it. The framework is designed to be "dropped in" to any context where such scheduling is needed (e.g., application, OS kernel, device driver). Multiple schedulers are provided, including round-robin, priority, and several proportional sharing disciplines; new disciplines can be created by writing a self-contained object and plugging it into the framework. This framework is currently used to provide CPU isolation between slices on PlanetLab.

PathKit
The PathKit overlays Scout-path-like structures onto the Linux protocol stack, providing the resource isolation and accounting of Scout paths with the full functionality of Linux. Currently, each TCP, UDP, and safe raw socket corresponds to a path within the Linux kernel provided by SILK's PathKit. A future goal of the PathKit is to allow easy extensibility of the Linux protocol stack through assembling simple, reusable components into new path structures.


Copyright © 2003 Andy Bavier