The next aspect of batch job systems that has been
extensively studied in the literature is partition speci-
fications. Batch jobs are executed on processors
which are architected in multiple ways. These archi-
tectures have a major bearing on the scheduling. Feit-
elson et al (1997) roughly classifies partition specifi-
cations into four types – fixed, variable, adaptive and
dynamic. While fixed partitions (Feldmann et al,
1994) can only be altered by a system reboot, variable
partition sizes can be determined at the time of job
submission. Adaptive partitions (Turek et al, 1992)
consider the job’s request for partition along with the
overall system load and allot the best possible parti-
tion based on a preset distribution policy. Dynamic
partition (Deng et al, 2000) sizes can change even
during the execution of jobs. Some batch job systems
have memory along with processing power as a re-
source constraint. Parsons and Sevcik (1996) and Se-
tia (1995) have taken memory into account in sched-
uling algorithms. As discussed earlier, our model
does not consider the spatial dimension (processor
space). The ever dropping costs combined with the
ease of leasing processing power and memory over
the cloud have made this constraint redundant over
the years (Bahl et al, 2007, Singh et al, 2013, Agarwal
et al, 2011 and Suter 2014).
Like processors, jobs too are categorized into four
kinds (Feitelson et al, 1997) depending on how they
are programmed. A rigid job has a processor(s) as-
signed and it runs on the same processor in every
batch. Also the processor requirement is not expected
to change during its execution. Moldable job’s pro-
cessor allotment is dynamic and is decided by the sys-
tem scheduler right before its execution. However,
the processor requirement remains constant through-
out the execution, similar to a rigid job. An evolving
job, as the name suggests, goes through multiple
phases where the processor requirement varies based
on the incoming workload. A malleable job is low on
criticality (Ex: maintenance jobs). It can be starved of
processors, if more critical jobs are in need of proces-
sors. Turek et al (1994) have studied the aggregate
impact of having more rigid jobs on the scheduling
efficiency. Mason et al (2002) have studied the posi-
tive impact of presence of moldable jobs and the de-
lay in the onset of a bottleneck like scenario. For this
study, we consider the first two kinds of jobs – Rigid
and Moldable jobs. Rigid jobs are referred to as criti-
cal jobs in this paper. Another aspect of batch job
scheduling is level of pre-emption supported by the
scheduler. No pre-emption indicates that once a job
starts its execution, it finishes without interruptions
while holding its assigned processors. With local pre-
emption, threads of a job may stop and resume their
execution albeit on the same processor unlike migrat-
able pre-emption (Deng et al, 2000), where threads
may be suspended on one processor and resumed on
another. Gang scheduling (Schwiegelshohn, 2004)
refers to suspension and resumption of all the threads
of a job simultaneously.
Most of the scheduling studies have not consid-
ered pre-emption in their models. Motwani et al
(1994) and Schwiegelshohn (2004) have studied the
overheads associated with pre-emption due to which
pre-emption is not often seen in actual batch job sys-
tems. In our study, we too have assumed that jobs
would finish their execution without any pre-emption.
Feitelson et al (1997)’s last characteristic to clas-
sify studies on batch job scheduling is the amount of
job related data used in models. While some of the
above mentioned aspects such as level of rigidity and
pre-emption support are job characteristics that are vi-
tal, any additional details about job can improve the
overall scheduling efficiency. Literature has seen the
use of job characteristics such as workload, parallel-
ism level and ‘run time’ in various studies (Agnetis et
al, 2004, Janiak et al, 2005). Our model incorporates
job characteristics such as ‘run time’, SLA definitions
and ‘start time’ constraints.
2 THE MODEL
The schema in figure 2 shows the four components of
the model - inputs, pre-processing, post processing,
modelling & solving and post-processing.
2.1 Inputs
Inputs to the model include job dependencies, run his-
tory, SLA definitions, and batch schedule. Job de-
pendencies describe a graph that captures the depend-
ency relationship among jobs. These relationships are
defined by underlying business logic and cannot be
changed arbitrarily. Run history data comprises of job
‘start time’, ‘end time’, ‘from time’ and ‘run time’.
‘Start time’ is the time when job execution starts
while ‘end time’ is the time when job execution ends.
‘From time’ is a constraint that restricts the ‘start
time’ of a job and ‘run time’ is the amount of time
taken to complete the job execution. These data are
very important for efficient and feasible scheduling of
jobs. Batch schedule tells us what jobs of a batch are
scheduled to be executed on a particular day. Busi-
ness critical jobs in a given batch have SLA definition
and these jobs should be completed within the speci-
fied definition. Failure to do so results in non-compli-
ance.
SLA Non-compliance Detection and Prevention in Batch Jobs
399