We have implemented resource containers for Linux by making minimal changes to the existing kernel which is designed under the assumption that a process is a resource principal. We have modified only two kernel data structures, task_struct and file. We have changed a total of 12 .c files, 3 .h files and 1 .S file in the kernel, fs, net, init and arch directories.
The statistics information that is maintained for disk accesses and network packets can be used for taking better CPU and I/O scheduling decisions. A detailed study has to be conducted to find out the influence these have on the priority computations.
We have not looked into memory management subsystem in this resource container framework. When a group of processes are performing related activities, the working set of each process may depend on the working set of the other processes in the group. So better paging decisions may be possible if resource container framework is added to the memory management subsystem. We have also not looked into multiprocessor related issues in our design.
Acknowledgements: We thank N.Ganesh for his help in running lmbench on RCLinux and Linux-2.2.5 and Stephen Tweedie, our shepherd, for his many suggestions on improving the paper. Financial support from Veritas Software, Pune is also gratefully acknowledged.