Due to the development of new applications and the increasing number of users with diverse needs who are exposed to heterogeneous computing (HQ, providing users with quality of service (QoS) guarantees while executing applications has become a crucial problem that needs to be addressed. Motivated by this fact, this paper investigates the problem of scheduling a set of independent tasks with multiple QoS needs. which may include timeliness, reliability, security, data accuracy, and priority, in a HC system. This problem is referred to as the QoS-based scheduling problem and proved to be NP-hard. In the first part of this study, we formulate the QoS-based scheduling problem by using utility and penalty functions, where a utility function associated with a task is used to measure how much the owner of this task will benefit from a given scheduling decision, while penalty functions associated with resources are used to provide incentives to users to set their QoS requirements in accordance with their needs. In order to solve the QoS-based scheduling problem, a computationally efficient static scheduling algorithm (QSMTS_IP) which assumes time-invariant penalty functions is developed. We later extend the QSMTS_IP to the case where penalty functions are time varying. Furthermore, it is shown that the QSMTS_IP can be modified to run as a dynamic scheduling algorithm. The simulation studies carried out show that the QSMTS_IP is capable of meeting diverse QoS requirements of many users simultaneously, while minimizing the number of users whose tasks cannot be scheduled due to the scarcity of machines. (c) 2005 Elsevier Inc. All rights reserved.