Download presentation
Presentation is loading. Please wait.
1
Planning and Scheduling
Chapter 3 Planning and Scheduling
2
A New Kind of Problem Many tasks are complex and are made up of smaller, easier tasks Examples Making a pizza Building a house Each of the tasks is worked on by “processors”: machines, robots, humans, or a combination of any of these, depending on the job
3
Serial vs. Parallel When a job is made up of many separate tasks, it makes sense for different tasks to be worked on at the same time Serial processing occurs one task at a time, and you can’t work on a different task until you are finished with the one you are on Parallel processing divides up the work among many processors. Each individual processor still works serially, but overall the job gets done faster This video shows the advantage of parallel processing
4
Assumptions No processor will be voluntarily idle
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 doesn’t override the order requirements; it is only used to break “ties”
5
Goals 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.
6
An Example 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 8 6 3 9 4 Task 7 Task 8 Task 1 Task 2 Task 5 Task 6 Task 3 Task 4
7
Assigning the First Task
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 8 6 3 9 4 Task 7 Task 8 Task 1 Task 2 Task 5 Task 6 Task 3 Task 4
8
Breaking the Tie: Priority
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 8 6 3 9 4 Task 7 Task 8 Task 1 Task 2 Task 5 Task 6 Task 3 Task 4
9
The Timeline 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
10
Time 0 5 7 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 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Processor 2 Task 7 5 7
11
Time 5 5 7 At time 5, Processor 2 is available. The only ready task is Task 1. Task 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Processor 2 Task 7 Task 1 5 7 13
12
Time 7 5 7 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 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Processor 2 Task 7 Task 1 5 7 13
13
Time 13 5 7 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 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Task 2 Processor 2 Task 7 Task 1 5 7 13 19
14
Time 19 5 7 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 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Task 2 Task 5 Processor 2 Task 7 Task 1 Task 3 5 7 13 19 28
15
Time 24 5 7 At time 24, Processor 1 completes Task 5. Task 6 is the only ready task, so Processor 1 begins work on it. Task 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Task 2 Task 5 Task 6 Processor 2 Task 7 Task 1 Task 3 5 7 13 19 24 27 28
16
Time 27 5 7 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 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Task 2 Task 5 Task 6 Processor 2 Task 7 Task 1 Task 3 5 7 13 19 24 27 28
17
Time 28 5 7 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 7 Task 8 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4 Processor 1 Task 8 Task 2 Task 5 Task 6 Task 4 Processor 2 Task 7 Task 1 Task 3 5 7 13 19 24 27 32 28
18
Time 32 5 7 At time 32, all tasks are complete! 5 3 8 6 9 4 Task 7
Processor 1 Task 8 Task 2 Task 5 Task 6 Task 4 Processor 2 Task 7 Task 1 Task 3 5 7 13 19 24 27 32 28
19
Priority Makes a Difference
You may have noticed that our solution had a lot of idle time. Since we were following the priority list, we were forced to make some bad decisions. However, watch what happens when we use a different priority list: T1, T2, T3, …, T8.
20
Time 0 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Processor 2 Task 7 5 8
21
Time 5 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Processor 2 Task 7 Task 8 5 8 12
22
Time 8 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Processor 2 Task 7 Task 8 5 8 12 14
23
Time 12 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Processor 2 Task 7 Task 8 5 8 12 14
24
Time 14 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Task 3 Processor 2 Task 7 Task 8 Task 5 5 8 12 14 19 23
25
Time 19 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Task 3 Processor 2 Task 7 Task 8 Task 5 Task 6 5 8 12 14 19 22 23
26
Time 22 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Task 3 Processor 2 Task 7 Task 8 Task 5 Task 6 5 8 12 14 19 22 23
27
Time 23 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Task 3 Task 4 Processor 2 Task 7 Task 8 Task 5 Task 6 5 8 12 14 19 22 27 23
28
Time 27 5 7 5 3 8 6 9 4 Task 7 Task 8 Task 5 Task 6 Task 1 Task 2
Processor 1 Task 1 Task 2 Task 3 Task 4 Processor 2 Task 7 Task 8 Task 5 Task 6 5 8 12 14 19 22 27 23
29
List-Processing Algorithm
This method for assigning tasks is known as the list-processing 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.
30
Critical-Path Analysis
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 5 3 Task 5 Task 6 8 6 Task 1 Task 2 9 4 Task 3 Task 4
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.