International Journal of Computer Applications (0975 – 8887) Volume 120 – No.6, June 2015 1 Comparative Analysis of VM Scheduling Algorithms in Cloud Environment Puneet Himthani M. E. Scholar Department of CSE TIEIT, Bhopal Amit Saxena Asso. Prof. & H. O. D. Department of CSE TIEIT, Bhopal Manish Manoria, PhD Professor Department of CSE TIEIT, Bhopal ABSTRACT Cloud computing is a pay per use model for providing convenient and on demand network access to sharable and configurable computing resources like networks, servers and applications that can be easily managed with minimal effort or service provider interaction. The various characteristics provided by cloud systems are Internet based computing, heterogeneity, on demand self service, pay per use model, location independent resource pooling, availability, scalability and ubiquitous network access. Virtualization is a way of abstracting the physical resources to improve their utilization. It logically divides the resources between different users. A virtual machine is a logical implementation of a computer that operates in the similar manner as the computer system. A cloud computing environment requires a suitable algorithm for executing the various jobs provided to the system in a cost effective manner based on certain constraints. This task is performed by a VM scheduler using a suitable scheduling algorithm. VM scheduling plays an important role in balancing the load of the system so that the utilization of the resources should be optimum. Better the scheduling policy, more the efficient operation of the cloud system. General Terms Cloud Computing, Virtualization, Virtual Machines, etc. Keywords Cloudlet Scheduling Algorithms, VM Scheduling Algorithms, Processor Scheduling Algorithms, etc. 1. INTRODUCTION Cloud Computing is a modified form of distributed computing, parallel computing or grid computing. It is a convenient model for providing services and resources to its users through Internet. It is highly reliable, scalable and efficient model for sharing resources and services between users. It is a pay per use model of computing means you have to pay only for what you have taken. Cloud models can be classified into a number of different categories. Commonly, there are two ways to categorize them, as: 1. Service Models 2. Deployment Models 1.1 Cloud Service Models: In this category, the cloud architectures are classified according to the services provided by them. It is also called as SPI model [14] . It can be further classified as: 1.1.1. Software as a Service (SaaS): The user can access the applications provided by the cloud service provider. 1.1.2. Platform as a Service (PaaS): The user can develop applications that can be provided to other users of the cloud environment and can deploy those applications on cloud through cloud service provider. 1.1.3. Infrastructure as a Service (IaaS): The user can get access over hardware resources provided by the cloud service provider and can use those resources for their own work. It includes services like storing the data on cloud. 1.2 Cloud Deployment Models: In this category, the cloud systems are classified on the basis of environment in which the users can access the services and resources deployed over the cloud. It can be categorized as: 1.2.1. Private Cloud: A cloud architecture that has been developed for specific organization or user. It is totally managed by the organization or user. 1.2.2. Community Cloud: A cloud architecture that has been developed in order to provide services to predefined number of organizations or a specific group of users. It is managed by a member of the participating organization or any specific user of the system. 1.2.3. Public Cloud: A cloud organization that has been developed to provide services and resources to any user that can become a member of that system. It can be managed by a third party organization that provides the cloud services or that has developed the cloud system. 1.2.4. Hybrid Cloud: A hybrid cloud is a combination of private cloud and public cloud. 2. VM SCHEDULING Virtualization plays an important role in providing resources to the users efficiently in cloud environment. Virtualization can be done in various ways like server virtualization, memory virtualization, storage virtualization, etc. For efficiently achieving virtualization, virtual machines (VM) are designed. VM is a logical instance of a computer system that can operate similarly to a system. The request of a user to access the physical resource in a cloud environment is first received by the VM and then VM assign that resource to the user based on the suitable policy or constraints specified. For this, VM schedulers are used. VM schedulers are used to dynamically