Reliability is one of the important issues in the design of distributed computing systems (DCSs). This paper deals with the problem of task allocation in heterogeneous DCSs for maximizing system reliability with several resource constraints. Memory capacity, processing load and communication rate are major constraints in the problem. Reliability oriented task allocation problem is NP-hard, thus many algorithms were presented to find a near optimal solution. This paper presents a Hybrid of Simulated Annealing and Tabu Search (HSATS) that uses a non-monotonic cooling schedule to find a near optimal solution within reasonable time. The HSATS algorithm was implemented and evaluated through experimental studies on a large number of randomly generated instances. Results have shown that the algorithm can obtain optimal solution in most cases. When it fails to produce optimal solution, deviation is less than 0.2 percent. Therefore in terms of solution quality, HSATS is significantly better than pure Simulated Annealing.