Heuristic Algorithms for Process Assignment in Distributed Computing Systems