TCP Vegas: new techniques for congestion detection and avoidance
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Fine-grained dynamic instrumentation of commodity operating system kernels
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Progress-based regulation of low-importance processes
Proceedings of the seventeenth ACM symposium on Operating systems principles
SETI@home: an experiment in public-resource computing
Communications of the ACM
Freeblock Scheduling Outside of Disk Firmware
FAST '02 Proceedings of the Conference on File and Storage Technologies
A Universal Dynamic Trace for Linux and Other Operating Systems
Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference
Transforming policies into mechanisms with infokernel
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
BOINC: A System for Public-Resource Computing and Storage
GRID '04 Proceedings of the 5th IEEE/ACM International Workshop on Grid Computing
TCP Nice: a mechanism for background transfers
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Idletime scheduling with preemption intervals
Proceedings of the twentieth ACM symposium on Operating systems principles
Dynamic instrumentation of production systems
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Towards higher disk head utilization: extracting free bandwidth from busy disk drives
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Traveling forward in time to newer operating systems using ShadowReboot
Proceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Agile middleware for scheduling: meeting competing performance requirements of diverse tasks
Proceedings of the 5th ACM/SPEC international conference on Performance engineering
Hi-index | 0.00 |
Idle resources can be exploited not only to run important local tasks such as data replication and virus checking, but also to make contributions to society by participating in open computing projects like SETI@home [2]. When executing background processes to utilize such valuable idle resources, we need to explicitly control them so that the user will not be discouraged from exploiting idle resources by foreground performance degradation. Unfortunately, common priority-based schedulers lack such explicit execution control. In addition, to encourage active use of idle resources, a mechanism for controlling background processes should not require modifications to the underlying operating system or user applications. If such modifications are required, the user may be reluctant to employ the mechanism. In this paper, we argue that we can reasonably detect resource contention between foreground and background processes and properly control background process execution at the user level. We infer the existence of resource contention from the approximated resource shares of background processes. Our approach takes advantage of dynamically instrumented probes, which are becoming increasingly popular, in estimating the resource shares. Also, it considers different resource types in combination and can handle varied workloads, including multiple background processes. We show that our system effectively avoids the performance degradation of foreground activities by suspending background processes in an appropriate fashion. Our system keeps the increase in foreground execution time due to background processes below 16.9%, or much lower in most of our experiments. Also, we extend our approach to address undesirable resource allocations to CPU-intensive processes that can occur in multiprocessor environments.