  With the increasing and elastic demand for cloud resources, finding an
optimal task scheduling mechanism become a challenge for cloud service
providers. Due to the time-varying nature of resource demands in length and
processing over time and dynamics and heterogeneity of cloud resources,
existing myopic task scheduling solutions intended to maximize the performance
of task scheduling are inefficient and sacrifice the long-time system
performance in terms of resource utilization and response time. In this paper,
we propose an optimal solution for performing foresighted task scheduling in a
cloud environment. Since a-priori knowledge from the dynamics in queue length
of virtual machines is not known in run time, an online reinforcement learning
approach is proposed for foresighted task allocation. The evaluation results
show that our method not only reduce the response time and makespan of
submitted tasks, but also increase the resource efficiency. So in this thesis a
scheduling method based on reinforcement learning is proposed. Adopting with
environment conditions and responding to unsteady requests, reinforcement
learning can cause a long-term increase in system's performance. The results
show that this proposed method can not only reduce the response time and
makespan but also increase resource efficiency as a minor goal.
