In a distributed computing system (DCS), we need to allocate a number of tasks to different processors for execution. The problem of task assignment in heterogeneous computing systems has been studied for many years with many variations and to accomplish various objectives, such as throughput maximization, reliability maximization, and cost minimization. There are also exists a set of system constraints related to memory and communication link capacity. Most of the existing approaches for task allocation deal with a single objective only. In this project we construct the task allocation problem as a multi-objective optimization problem to consider system constraints. The goal programming technique is used with pre-emptive priority structure to find the optimal allocation that not only optimize system reliability but also optimize memory as well as path load. The genetic algorithm is used to find the optimal allocations. Genetic algorithm is used to find the optimal allocations.