International journal of Computer Science & Network Solutions Jul.2015-Volume 3.No.7 http://www.ijcsns.com ISSN 2345-3397 21 Scheduling and resource allocation on cloud computing: Survey Amin Kamalinia, Ali Ghaffari Department of Computer Engineering, Urmia Branch, Islamic Azad University, Urmia, Iran amin.kamalinia@gmail.com Department of Computer Engineering, Tabriz Branch, Islamic Azad University, Tabriz, Iran a.ghaffari@iaut.ac.ir Abstract Cloud computing is a novel technology which aims to handles and provides online services to the consumers. In order to have an efficient cloud environment and to use resources properly,task scheduling is the one of the issues which researchers attempt to propose applicable scheduling algorithms in this environment. Scheduling in distributed systems such as cloud computing and grid computing are considered to be an NP-complete. Hence, many heuristic and meta-heuristic algorithms are proposed to optimize the solutions.In this paper we survey several scheduling algorithms and issues related to the cloud computing. Keywords: cloud computing, task scheduling, load balancing, makespan I. Introduction Recently cloud computing is considered as one of the most important issues(Chen, Liang, & Hsu, 2015). Cloud computing is a new paradigm which emerged to change the manner of accessing both hardware and software to produce, price, provide and deliver services and computationalresources to consumers. Also, consumers be able to run their applications without paying for software licenses, using well supplied machines (hosts) and high performance computational resources (Grandinetti, Pisacane, & Sheikhalishahi, 2013). On the other hand, scheduling is regarded as a decision-making process which is regularly used in the majority of production and serviceprovidingindustriesandisusedtoenhance efficiency optimization (Pinedo, 2012). Indeed, scheduling refers to the allocation of limited resources to tasks throughout time (Robert & Vivien, 2010).Scheduling in cloud computing is the complicated problem; hence, a centralized scheduling is required (Magoulès, Pan, & Teng, 2012). Scheduling in distributed systems such as cloud computing refers to the allocation of multiple tasks to multiple resources which wants to enhance optimization. Ifassigning tasks to resources is donecorrectly, this assigning helps to minimize makespan in applications, thereforethe computer loads and communication overheads will be well balanced(Pacini, Mateos, & García Garino, 2014). In this paper, the scheduling algorithms which recently proposed to better makespan, load balancing in resources, minimize monetary cost and other aspect in cloud environments are reviewed.