Efficient and effective scheduling of processes/tasks or applications is one of the most critical components for enhancing performance in distributed computing environments. Distributed computing environments are becoming more complicated as large numbers of geographically dispersed high-performance computers and high-speed networks are being interconnected with the advent of grid computing. Such environments have made the scheduling problem even more challenging. Process scheduling is a known to be an NP-complete problem, and as a result many heuristic algorithms have been proposed to tackle it. In this book, we investigate the scheduling problem and propose four algorithms, using task duplication, for scheduling processes in different computing environments - homogeneous, heterogeneous; and set of heterogeneous clusters. Employing duplication can considerably reduce the cost associated with inter-processor communication. The scheduling techniques, proposed in this book, should be useful to researchers and IT professionals already in the field, or anyone else who might be interested in or considering research in this area.