Scheduling in Cloud Computing - by Siddhant and Shreya


WHAT IS SCHEDULING?

Scheduling in cloud computing refers to the method of arranging a set of tasks to a set of VMs or allocating VMs to run on the available resources in order to fulfill user's demands.

WHY IS SCHEDULING NECESSARY?

To improve the system's output and load balance, maximize resource utilization, save energy, reduce costs, and minimize the total processing time. Scheduling is the major issue in establishing a cloud computing system in order to minimize the execution time and the cost and maximize resource utilization.
Each scheduling technique should be based on one or more strategies. The most important strategies or objectives commonly that are used are time, cost, energy, QoS, and fault tolerance.
Resources in cloud computing is scheduled at two levels: VM-level and Host-level.
Task Scheduling is when tasks are mapped for execution for the allocated virtual machines at virtual machine level
At the host-level, a virtual machine scheduler is used to allocate the VMs into physical hardware. This type is generally called as VM Scheduling.

TYPES OF SCHEDULING

Task scheduling focuses on arranging tasks to appropriate VMs
Tasks can be of two types dependent and independent. Independent tasks are not dependent on other tasks and they need not to follow any order in the scheduling process. However dependent tasks have precedence order based on dependencies of tasks and need to be followed during scheduling.
Task dependency is a factor that decides appropriate task scheduling and its main objective is to minimize makespan. If tasks are dependent makespan can be minimized by decreasing computation cost which is the time taken to transfer data between the two nodes. Independent tasks can be scheduled independently without any order.
VM scheduling is the allocating of VMs to run on the appropriate physical machines to ensure the implementation of tasks, it improves the utilization of resources as well as load balancing of systems.
It is important to ensure Quality of Service (QoS) and Service Level Agreements (SLA) agreed by the cloud service providers and customers.

Decentralized / Centralized scheduling

In centralized scheduling, decisions are made in the central node which ensures ease of monitoring resources. However, it is a lack of scalability and fault tolerance. Decentralized or distributed scheduling is more applied in a real cloud environment.

Static / Dynamic scheduling

In static scheduling, all timing information about tasks are available before so the execution schedule of each task is computed before executing any task. The consumer makes an agreement with the cloud provider for services and the cloud provider prepares the required resources before the initiation of the required service.
In dynamic scheduling, at runtime the timing information about the tasks is unknown. So, the execution schedule of a task may change as per the user demand. It allocates and removes resources as needed.

Preemptive / Non-Preemptive scheduling

Preemptive scheduling allows interrupting each task during the execution and migrating the task to another resource.
For example, when a task has a higher priority than another task and needs to be executed although it is running in the virtual machine. Therefore, this type of scheduling is mandatory if constraints need to be imposed such as deadline, and cost.
In non-preemptive scheduling, the virtual machine cannot be taken away until the task running on it completes. It does not allow the task to be interrupted while it is executing.

Immediate mode / Batch mode scheduling

Immediate/Batch mode scheduling are two methods used for scheduling in the computational environment.
When tasks are scheduled to resources immediately and that too without any delay then it is called immediate mode it is also sometimes called online mode. Tasks are scheduled only once and cannot be changed.
On the other hand, in batch mode tasks are collected into sets are examined for 
mapping at prescheduled times. It is called also offline mode.

Heuristic/metaheuristic scheduling

Metaheuristic based techniques are proved to achieve optimal solutions within a reasonable time for such problems. Metaheuristic techniques are high-level problem-independent techniques. In this master, strategies are provided to solve general problems and can be applied to a wide range of problems.
Heuristic scheduling techniques are problem dependent that can solve specific problems.

SCHEDULING POLICIES

To schedule the cloud computing we have two methods as follows:
1)Time Shared
2)Space Shared

In space-shared scheduling policy, at a given instance of time only one VM/task is allowed to be executed on host/VM.
In Time-Shared scheduling policy allows multiple VMs/tasks to multitask and run at the same time within a host/VM.
To understand the difference between these two policies and their impact on the application performance, suppose a host with two CPU cores hosts two VMs. Each VM requires two cores for running four tasks. T1, T2, T3, and T4 will run on VM1, while T5, T6, T7, and T8 will run in VM2. Four cases show the use of scheduling policies in this example.

1. Space-Shared type is useful in both Vm Scheduling as well as task scheduling. As we know already, Vm requires two cores, only one VM can be assigned to the core in a specific time. So VM2 cannot run and use the cores until VM1 finishes. To host every task within VM we need one core, therefore T3 and T4 will wait to execute until then T1 and T2 will run simultaneously to complete the task. The same happens for tasks running in VM2.
Space-Shared the technique is usually used for VM scheduling, on the other hand, Time-shared the policy is used for task scheduling. While VM1 is being assigned first to the cores at a specific time and T1, T2, T3, and T4 are being assigned to VM1 simultaneously. VM2 can run after VM1 finishes all the tasks. Then T5 to T8 are all assigned to it at the same time.

2. Time-shared policy is used for VM scheduling, but the space-shared policy is used for task scheduling. Hence, VM1 and VM2 share a time slice of each core. Then each slice will be assigned only one task while others will wait until those tasks are completed.
Time-shared the policy is used for both VM and task scheduling, therefore it can be said correctly that VM1 and VM2 with each core share a time slice with every core. Also, every task shares this time slice at the same time.
AZURE SCHEDULER

 It specifies when to run tasks, it keeps the history of task results that you can review, and then predictably and reliably schedules workloads to run other azure scheduling capabilities.
Also use Scheduler in the background, for example, Azure web jobs, which is a web application feature in Azure App Service. We can maintain and control communication for these actions by using the Scheduler REST API.
Daily maintenance should be performed like pruning logs, performing backups and maintenance tasks.

AZURE SCHEDULER REVIEW

Advantages
The interface is very easy to use.
With scheduler like HTTP or HTTPs job they are offered different types of jobs with by Azure Scheduler Review and this can enforce actions that are to implement on both old and new endpoints.
It does not matter whether it is inside or outside the environment of Azure Cloud.
It also offers a job overview page which provides a very graphical throughput of the task statuses that are running.

Disadvantages
Azure scheduler has very limited disadvantages.
At first, its interface seems difficult to understand as it has many applications which we do not know how to use and also communication with the support is sometimes a little slow.


REFERENCES

Comments