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 . 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 prioritybased 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.