I/O resource management through system call scheduling

  • Authors:
  • Silviu S. Craciunas;Christoph M. Kirsch;Harald Röck

  • Affiliations:
  • University of Salzburg, Austria;University of Salzburg, Austria;University of Salzburg, Austria

  • Venue:
  • ACM SIGOPS Operating Systems Review - Research and developments in the Linux kernel
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

A principal challenge in operating system design is controlling system throughput and responsiveness while maximizing resource utilization. Unlike previous attempts in kernel resource management, which often involve non-trivial changes in kernel subsystems, we focus on the kernel's edge. System calls are usually the default mechanism for user processes to get access to operating system services. System calls can therefore be used to control throughput and responsiveness and thus also affect resource utilization directly. We propose a simple, non-intrusive 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, and, as a result, the per-process utilization of the involved resources. We have developed a high-performance Linux 2.6 kernel patch with SMP support that implements system call scheduling for network- and disk-related I/O calls with policies that resemble traffic shaping in network routers. Our experiments show that already simple and easy-to-use policies provide effective I/O-related process isolation with low overhead, and 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.