A major issue of the operation of distributed systems is the problem of allocating a number of processes to a network of processors, with the aim of fully utilizing their potential and flexibility. This paper presents a solution to the process allocation problem from a mathematical programming point of view, employing two heuristic algorithms . The first one is an adaptation of the simulated annealing heuristic algorithm, while the second one is based on an iterative improvement procedure. The characteristics of both heuristics are briefly examined, and in the sequel both algorithms are tested on a set of random problems having characteristics similar to a real world problem.