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
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
Post a Comment