Computer networks (3rd ed.)
Resource containers: a new facility for resource management in server systems
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
httperf—a tool for measuring web server performance
ACM SIGMETRICS Performance Evaluation Review
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Hierarchical disk sharing for multimedia systems
NOSSDAV '05 Proceedings of the international workshop on Network and operating systems support for digital audio and video
Linux Kernel Development (2nd Edition) (Novell Press)
Linux Kernel Development (2nd Edition) (Novell Press)
Making RCU safe for deep sub-millisecond response realtime applications
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Connection scheduling in web servers
USITS'99 Proceedings of the 2nd conference on USENIX Symposium on Internet Technologies and Systems - Volume 2
The eclipse operating system: providing quality of service via reservation domains
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
The design and implementation of an operating system to support distributed multimedia applications
IEEE Journal on Selected Areas in Communications
Programmable temporal isolation in real-time and embedded execution environments
Proceedings of the Second Workshop on Isolation and Integration in Embedded Systems
Support for enterprise consolidation of I-O bound services
Software—Practice & Experience - Focus on Selected PhD Literature Reviews in the Practical Aspects of Software Technology
Hi-index | 0.00 |
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.