Planning and Scheduling

Slides:



Advertisements
Similar presentations
Math for Liberal Studies. There is a list of numbers called weights These numbers represent objects that need to be packed into bins with a particular.
Advertisements

Introduction to Algorithms Quicksort
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 19: November 21, 2005 Scheduling Introduction.
Some Graph Algorithms.
Chapter 3: Planning and Scheduling Lesson Plan
Chapter 8: Scheduling “Science is organized knowledge. Wisdom is organized life.” -Immanuel Kant.
SCHEDULING Critical Activities are: B, F, I, M, Q.
Scheduling Two people are camping out and wish to cook a simple supper consisting of soup and hamburgers. In order to prepare the supper, several tasks.
Lecture 1: Introduction to the Course of Optimization 主講人 : 虞台文.
1 Greedy Algorithms. 2 2 A short list of categories Algorithm types we will consider include: Simple recursive algorithms Backtracking algorithms Divide.
Sequencing Problem.
A processor is a person, machine, computer, or robot etc., which works on a task. To solve a scheduling problem typically the tasks are scheduled to minimize.
Key Stone Problem… Key Stone Problem… next Set 22 © 2007 Herbert I. Gross.
CPU-Scheduling Whenever the CPU becomes idle, the operating system must select one of the processes in the ready queue to be executed. The short term scheduler.
 Jim has six children.  Chris fights with Bob,Faye, and Eve all the time; Eve fights (besides with Chris) with Al and Di all the time; and Al and Bob.
Critical Path Analysis
Excursions in Modern Mathematics, 7e: Copyright © 2010 Pearson Education, Inc. 8 The Mathematics of Scheduling 8.1The Basic Elements of Scheduling.
Planning and Scheduling Chapter 3 Jennifer Holland February 2, 2010.
Spring 2015 Mathematics in Management Science Machine Scheduling Problem Statement of MSP Assumptions & Goals Priority Lists List Processing Algorithm.
Scheduling policies for real- time embedded systems.
Implementing Parallel Graph Algorithms: Graph coloring Created by: Avdeev Alex, Blakey Paul.
Excursions in Modern Mathematics, 7e: Copyright © 2010 Pearson Education, Inc. 8 The Mathematics of Scheduling 8.1The Basic Elements of Scheduling.
Real-Time Scheduling CS4730 Fall 2010 Dr. José M. Garrido Department of Computer Science and Information Systems Kennesaw State University.
Spring 2015 Mathematics in Management Science Critical Path Scheduling Critical Paths & Times Backflow Algorithm Critical Times PL Critical Path Algorithm.
CSCI 5582 Fall 2006 CSCI 5582 Artificial Intelligence Fall 2006 Jim Martin.
Chapter 3 Fair Division.
Outline Introduction Minimizing the makespan Minimizing total flowtime
Chapter 5 Constraint Satisfaction Problems
Example 5.10 Project Scheduling Models | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 5.7 | 5.8 | 5.9 | 5.10a a Background Information.
1 Real-Time Scheduling. 2Today Operating System task scheduling –Traditional (non-real-time) scheduling –Real-time scheduling.
CSEP 521 Applied Algorithms Richard Anderson Winter 2013 Lecture 3.
Bushy Binary Search Tree from Ordered List. Behavior of the Algorithm Binary Search Tree Recall that tree_search is based closely on binary search. If.
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.
Critical Paths and Scheduling Tasks Circuits, Paths, and Schedules.
Multiple Access By, B. R. Chandavarkar, CSE Dept., NITK, Surathkal Ref: B. A. Forouzan, 5 th Edition.
Chapter 3: Planning and Scheduling. Planning and Scheduling - Topics Resolving Conflict via Coloring Bin Packing Scheduling Tasks Critical-Path Schedules.
Assignment Problem: Hungarian Algorithm and Linear Programming collected from the Internet and extended by Longin Jan Latecki.
Excursions in Modern Mathematics Sixth Edition
8 The Mathematics of Scheduling
Greedy Algorithms.
Operating Systems (CS 340 D)
Assignment Problem: Hungarian Algorithm and Linear Programming collected from the Internet and extended by Longin Jan Latecki.
Independent and Dependent Events
Maximal Independent Set
Operating Systems (CS 340 D)
Navigation In Dynamic Environment
Assignment Problem: Hungarian Algorithm and Linear Programming collected from the Internet and extended by Longin Jan Latecki.
Quadratic Sorting Chapter 12 presents several common algorithms for sorting an array of integers. Two slow but simple algorithms are Selectionsort and.
Scheduling Theory By Sarah Walker 12/4/2018.
Solutions Markov Chains 1
Advanced Analysis of Algorithms
Managing Sessions in PearsonAccessnext
Sorting "There's nothing in your head the sorting hat can't see. So try me on and I will tell you where you ought to be." -The Sorting Hat, Harry Potter.
PLANNING ENGINEERING AND PROJECT MANAGEMENT
Processes and operating systems
Independent and Dependent Events
Planning and Scheduling
Lecture 6 Architecture Algorithm Defin ition. Algorithm 1stDefinition: Sequence of steps that can be taken to solve a problem 2ndDefinition: The step.
Managing Sessions in PearsonAccessnext
Managing Sessions in PearsonAccessnext
List Processing (SOL: DM.10)
Managing Sessions in PearsonAccessnext
Managing Sessions in PearsonAccessnext
Some Graph Algorithms.
Warm Up – 3/25 - Tuesday Bill is taking a sales trip starting in Atlanta. Draw a graph that represents this table. Find the nearest neighbor tour from.
Richard Anderson Autumn 2015 Lecture 7
Chapter 3: Planning and Scheduling Lesson Plan
ECE 352 Digital System Fundamentals
Assignment Problem: Hungarian Algorithm and Linear Programming collected from the Internet and extended by Longin Jan Latecki.
Managing Sessions in PearsonAccessnext
Presentation transcript:

Planning and Scheduling Chapter 3 Planning and Scheduling

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

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

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”

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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.

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