Cloud Computing: According to NIST definition of Cloud Computing, “Cloud Computing is a model for enabling ubiquitous, convenient and on demand network access to a shared pool of configurable computing resources like networks, storage, servers, applications and services that can be rapidly provisioned and released with minimal management effort or service provider’s interaction”.
Essential characteristics of Cloud Computing include:
- On demand self service
- Broad network access
- Resource pooling
- Rapid elasticity
- Measured service
Virtualization: The concept of Cloud Computing is based on the principle of Virtualization. Virtualization refers to the abstraction of resources across many aspects of computing. It plays an important role in providing resources to the users efficiently in the Cloud environment. It is a framework for dividing the resources of Computer into multiple execution environments. For this purpose, one physical machine supports multiple Virtual Machines that run in parallel.
Virtual Machine: Virtual Machines (VM’s) are designed to achieve Virtualization. A VM is a logical instance of a computer system that can operate in the same manner as a Computer 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 policies or specified constraints. For this purpose, VM Schedulers are used.
CLOUDSIM: CLOUDSIM (Cloud Simulator) is actually a software framework that supports modeling, simulation and experimentation of various Cloud Computing related phenomena.
It supports modeling and simulation of various cloud computing aspects like virtualization, energy efficient computing, networking in cloud computing, message passing, scheduling algorithms, user defined algorithms related to cloud and various other types of cloud computing simulations.
It was developed by the team of Prof. Raj Kumar Buyya at Cloud Computing and Distributed Systems Laboratory (earlier GRIDS LAB.), Department of Computer Science and Software Engineering, University of Melbourne, Australia.
It is an open source freeware software framework that can be downloaded through Internet and can be used to perform different simulations related to Cloud. Researchers and scientists can also add the new classes in the basic CLOUD SIM package and then the functionality of these classes in their simulations.
VM Scheduling: VM Schedulers are used to dynamically assign the VM to users through which they can perform their operation in the cloud environment. They perform the task of Load Balancing as well as improve the utilization of the resources to a certain extent.
It is a 3 step process, as:
- Resource discovering and filtering: Data Center Broker looks for the resource present in the system and takes information about those resources.
- Resource selection: It is the deciding state in which the specific resource is selected based on certain constraints.
- Task submission: Task is provided to the selected resource for completion.
Here, the Data Center consists of multiple Physical Hosts having specific number of Processing Elements in each Host. In normal scenarios, User can have direct access to these Physical Hosts to carry out their operation. But, due to Virtualization, there is a layer that separates the User from Physical systems.
The layer of virtualization allows creation of multiple VM’s. For initialization of these VM’s, computing resources are required like physical machines, such as RAM, Memory, Processing Element, etc. So, these VM’s runs over the physical machines.
So, for initialization of VM, PE from Physical Hosts are assigned to these VM’s. Once the VM’s are ready for execution, then Cloudlets (Tasks) are assigned to these VM’s for execution.
The process of assigning the Processing Elements (PE’s) to from Hosts to Virtual Machines for their execution / initialization is called VM Scheduling and the process of assigning the Cloudlets (Tasks) to VM’s is commonly called as Cloudlet Scheduling. In both these scheduling scenarios, CLOUD SIM supports 2 types of algorithms, viz. Space shared Scheduling and Time shared Scheduling.
In Space shared Cloudlet Scheduling, each Cloudlet will be assigned a specific PE for its execution. The assigned PE will only be used by that Cloudlet until its execution gets completed. In Time shared Cloudlet Scheduling, a number of Cloudlets will share a PE simultaneously for their execution.
In Space shared VM Scheduling, if a PE is allocated to a VM for its operation, then PE will not be released by the VM until the operation of that VM gets completed. In Time shared VM Scheduling, a PE is shared by a number of VM’s.
In general, we can say that Space shared Scheduling is a type of exhaustive (Non sharable) scheduling technique, while Time shared Scheduling is a type of shared scheduling technique.
Now, let us see the behavior of all these scenarios. Let, VM1 and VM2 be the two Virtual Machines and T1, T2, T3, T4, T5, T6, T7 and T8 be the eight Cloudlets to be executed in such a way that T1, T2, T3 and T4 will be executed by VM1 and T5, T6, T7 and T8 will be executed by VM2. Let us suppose that the available system has two Cores, i. e., two Processing Elements (PE’s).
Generally, there are 4 possibilities for implementing scheduling in Cloud environments, as:
- Space shared Cloudlet scheduling and Space shared VM scheduling
- Time shared Cloudlet scheduling and Space shared VM scheduling
- Space shared Cloudlet scheduling and Time shared VM scheduling
- Time shared Cloudlet scheduling and Time shared VM scheduling
At last, as every real world entity has its own advantages and disadvantages, same is the case here also. For any task or process, two parameters are important, viz. average Response Time and average Waiting Time. There is another parameter Turn around Time, but Turn around Time is mainly dependent on Waiting Time.
In case of Space shared Scheduling, average Response Time for a Cloudlet will be on higher side, while average Waiting Time will be on the lower side. But in case of Time shared scheduling, average Response Time is low as compared to Space shared scheduling, while average Waiting Time will be higher.
Prof. Kapil Dev Raghuwanshi
Asst. Professor, Dept. of CSE, SISTec, Bhopal