Chapter 3 PowerPoint

Planning and Scheduling





A job can be made up of a number of smaller tasks that
can be completed by a number of different
“processors.”
The processors can be machines, robots, humans, or a
combination of any of these, depending on the job.
Each task is associated with an amount of time that is
required to complete the tasks.
In addition, some tasks will need to be complete
before others.
The problem is scheduling: which processor should
work on which job at which time?





To simplify the problem, we will make some assumptions.
If a processor starts a task, it will work on that task until the
task is complete.
No processor will be voluntarily idle: if there is a processor
free and a task ready, that processor will immediately begin
work on that task.
There is an order-requirement graph that indicates which
tasks must be completed before others.
The tasks are arranged in a priority list that is independent
of the order requirements. The priority list indicates which
tasks are “most important” and is used to break ties when
multiple tasks are ready at a given time.


Usually, the goal of the scheduling problem is to
schedule the processors so that all tasks are complete
as early as possible.
However, sometimes we will be interested in
minimizing idle time, or minimizing the number of
processors needed to finish all tasks by a given
deadline.


Consider the order-requirement graph shown below.
There are 8 tasks to be completed.
Suppose there are 2 processors, and the priority list is
T8, T7, T6, …, T1, so that T8 is the most important task,
and T1 is the least important.
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4


The job starts at time 0. There are two processors, and both
are available. Processor 1 gets to choose first, but it needs to
choose a ready task.
Tasks 1, 7, and 8 are ready, since they have no prerequisites.
The other tasks are not ready since their prerequisites have
not been completed.
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4


Which of the three ready tasks should Processor 1 work on?
Task 8 comes first on the priority list, so it is the most
important. Processor 1 chooses Task 8.
Processor 2 is also available at time 0. Task 8 has already
been chosen, so Processor 2 chooses the ready task with the
highest priority: Task 7.
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4



In order to keep track of which tasks have been completed at
any given time, we draw a timeline.
Whenever a processor performs a task, we draw a box labeled
with the task name on that processor’s line.
The left side of the box is lined up with the start time on the
timeline, and the right side is lined up with the end time.
Processor 1
Processor 2
0



Processor 1 works on Task 8
from time 0 to time 7.
Processor 2 works on Task 7
from time 0 to time 5.
In our diagrams, red tasks are
being worked on, grey tasks
are complete, and green tasks
have not yet begun.
Task 8
Processor 1
Processor 2 Task 7
0
5 7
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4

At time 5, Processor 2 is
available. The only ready
task is Task 1.
Task 8
Processor 1
Processor 2 Task 7
0
Task 1
5 7
13
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4

At time 7, Processor 1
becomes available. However,
there is no ready task! Task 2
is not ready because task 1
must be complete before
Task 2 can begin.
Task 8
Processor 1
Processor 2 Task 7
0
Task 1
5
7
13
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4

At time 13, both processors
are available, and Task 2 is
ready. Processor 1 gets to
choose first, and works on
Task 2. However, there is no
other remaining task for
Processor 2.
Task 8
Processor 1
Processor 2 Task 7
0
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 2
Task 1
5 7
13
19
5
3
Task 5
Task 6
9
4
Task 3
Task 4

At time 19, Task 2 is complete,
and both processors are
available. Tasks 3 and 5 are
ready, and Processor 1 gets first
pick. Since Task 5 is more
important, Processor 1 chooses
it. Processor 2 works on Task 3.
Task 8
Processor 1
Processor 2 Task 7
0
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 2
Task 5
Task 1
5 7
Task 3
13
19
28
5
3
Task 5
Task 6
9
4
Task 3
Task 4

At time 24, Processor 1
completes Task 5. Task 6 is
the only ready task, so
Processor 1 begins work on
it.
Task 8
Processor 1
Processor 2 Task 7
0
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 2
Task 5
Task 1
5 7
Task
6
Task 3
13
19
24
2728
5
3
Task 5
Task 6
9
4
Task 3
Task 4

At time 27, Processor 1
completes Task 6. Since Task
3 still is not complete, Task 4
is not ready, so Processor 1
must be idle.
Task 8
Processor 1
Processor 2 Task 7
0
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 2
Task 5
Task 1
5 7
Task
6
Task 3
13
19
24
2728
5
3
Task 5
Task 6
9
4
Task 3
Task 4


At time 28, Processor 2
completes Task 3, and both
processors are available.
Processor 1 gets to choose
first, and chooses the only
task remaining: Task 4.
Task 8
Processor 1
Processor 2 Task 7
0
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 2
Task 5
Task 1
5 7
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task
4
Task
6
Task 3
13
19
24
2728
32

At time 32, all tasks are
complete!
Task 8
Processor 1
Processor 2 Task 7
0
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 2
Task 5
Task 1
5 7
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task
4
Task
6
Task 3
13
19
24
2728
32


You may have noticed that our solution had a lot of
idle time. Since we were following the priority list, we
were forced to complete the tasks in that order.
However, watch what happens when we use a different
priority list: T1, T2, T3, …, T8.
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
5
8
5
3
Task 5
Task 6
9
4
Task 3
Task 4
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 8
5
8
12
5
3
Task 5
Task 6
9
4
Task 3
Task 4
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
12 14
5
3
Task 5
Task 6
9
4
Task 3
Task 4
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
12 14
5
3
Task 5
Task 6
9
4
Task 3
Task 4
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task 3
Task 5
12 14
19
23
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task 3
Task 5
12 14
Task
6
19
2223
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task 3
Task 5
12 14
Task
6
19
2223
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task
4
Task 3
Task 5
12 14
Task
6
19
2223
27
5
7
Task 7
Task 8
8
6
Task 1
Task 2
Task 1
Processor 1
Processor 2 Task 7
0
Task 2
Task 8
5
8
5
3
Task 5
Task 6
9
4
Task 3
Task 4
Task
4
Task 3
Task 5
12 14
Task
6
19
2223
27

This method for assigning tasks is known as the listprocessing algorithm. The basic rule for the algorithm
is:
◦ At any given time, assign to a processor the first task on the
priority list that is ready.

Note that the critical path (indicated in red on the
diagram) has a total length of 27 time units. This
means that all eight tasks could not have been
completed in less than 27 time units, no matter how
many processors we use.
5
7
Task 7
Task 8
8
6
Task 1
Task 2
5
3
Task 5
Task 6
9
4
Task 3
Task 4