|
Home People Publications |
Resources Lab Tour |
| SWAP: AUTOMATIC DEPENDENCY DETECTION AND SCHEDULING |
|
Cooperating processes are increasingly used to structure modern
applications in common client-server computing environments.
This cooperation among processes often results in dependencies
such that a certain process cannot proceed until other processes
finish some tasks. Despite the popularity of using cooperating
processes in application design, operating systems typically
ignore process dependencies and schedule processes independently.
This can result in poor system performance due to the actual
scheduling behavior contradicting the desired scheduling policy.
To address this problem, we have developed SWAP, a system that automatically detects process dependencies and accounts for such dependencies in scheduling. SWAP uses system call history to determine possible resource dependencies among processes in an automatic and fully transparent fashion. Because some dependencies cannot be precisely determined, SWAP associates confidence levels with dependency information that are dynamically adjusted using feedback from process blocking behavior. SWAP can schedule processes using this imprecise dependency information in a manner that is compatible with existing scheduling mechanisms and ensures that actual scheduling behavior corresponds to the desired scheduling policy in the presence of process dependencies. We have implemented SWAP in Linux and measured its effectiveness on microbenchmarks and real applications. Our experiment results show that SWAP has low overhead and can provide substantial improvements in system performance in scheduling processes with dependencies. More Information:
|