Keywords: Cloud computing, adaptive scheduling, feedback, preemptable scheduling

In cloud computing, a cloud is a cluster of distributed computers providing on-demand computational resources or services to the remote users over a network [79]. In an Infrastructure-as-a-Service (IaaS) cloud, resources or services are provided to users in the form of leases. The users can control the resources safely thanks to the free and efficient virtualization solutions, e.g., the Xen hypervisor [195]. One of the advantages of the IaaS clouds is that the computational capacities provided to end-users are flexible and efficient. The virtual machines (VMs) in Amazon’s Elastic Compute Cloud are leased to users at the price of 10 cents per hour. Each VM offers an approximate computational power of a 1.2 GHz Opteron processor, with 1.7 GB memory and 160 GB disk space. For example, when a user needs to maintain a database with a certain disk space for a month, he/she can rent a number of VMs from the cloud, and return them after that month. In this case, the user can minimize the costs. And the user can add or remove resources from the cloud to meet peak or fluctuating service demands and pay only the capacity used. To further take advantage of the huge computation capacities the clouds provide, we can execute the intensive computation applications with parallel processing to achieve high performance.