A principle challenge in operating system design is enabling optimal process behavior while maximizing system utilization. System calls are usually the default mechanism for user processes to get access to operating system services, and therefore determine process behavior but also affect system utilization directly. However, many system calls are typically executed immediately upon invocation without any deliberation either until completion, or else partially until detecting some form of resource contention possibly deep in the kernel. We propose a simple kernel-space mechanism for explicit, per-process system call scheduling already at kernel entry in order to control the time and rate at which system calls are executed. We have developed a high-performance, SMP-ready Linux 2.6 kernel patch that implements the mechanism for system call scheduling and, as a prototype, policies that resemble traffic shaping in network routers for network- and disk-related I/O calls. Our experiments show that already simple policies may provide strong I/O-related process isolation with low overhead, and may reduce thrashing in certain overload scenarios. While system call scheduling may still not be able to outperform resource management systems that use specifically tuned kernel subsystems, our experiments indicate that it may sufficiently support relevant soft real-time applications yet using a vastly simpler and more generic approach.


This project is funded by the Austrian Science Fund project nummer P18913


S.S. Craciunas, C.M. Kirsch, and H. Röck. I/O Resource management through system call scheduling. ACM Operating Systems Review (OSR), Special Issue on Research and Developments in the Linux Kernel , July 2008.
C. M. Kirsch. Threading by Appointment. In Proc. Monterey Workshop. CRC Press, 2004. 


C. M. Kirsch and Harald Röck. Shaping Process Sematics. In Monterey Workshop 2006.


S.S. Craciunas, C.M. Kirsch, and H. Röck. Shaping process semantics. Technical Report 2007-01, Department of Computer Sciences, University of Salzburg, April 2007.
Traffic shaping system calls with TAP: SBG05
The first technical report about TAP: SBG04