34
Scheduling Basic Concepts Processes - Tasks - Threads

Scheduling Basic Concepts Processes - Tasks - Threads

Embed Size (px)

Citation preview

Page 1: Scheduling Basic Concepts Processes - Tasks - Threads

Scheduling

Basic Concepts

Processes - Tasks - Threads

Page 2: Scheduling Basic Concepts Processes - Tasks - Threads

Nostalgia

Automobile Computers: 2006: 1-2 million lines of code

2010: 10 million lines of code

Apollo Guidance Computer First Microprocessor Microcontroller

99%+ of today’s computers are in embedded systems

Page 3: Scheduling Basic Concepts Processes - Tasks - Threads

The Osborne I (1981)

Hardware:•Dual 5¼-inch floppy disk drives•4 MHz Z80 CPU•65 kilobytes main memory•Fold-down keyboard doubling as the computer case's lid•5-inch, 52 character × 24 line monochrome CRT display•Parallel printer port•Serial port for use with external modems or serial printers

Software:

CPM

Word Star

SuperCalc

Dbase II

CBasic

First Portable Computer

Page 4: Scheduling Basic Concepts Processes - Tasks - Threads
Page 5: Scheduling Basic Concepts Processes - Tasks - Threads

Orientation

• Schedule:

An assignment of tasks to the processor, so that each task is executed until completion

• Scheduling Policy:

Tasks assigned according to a predefined criterion

• Scheduling Algorithm:

The set of rules that determines the ordering of tasks

• Active Task Ready Task Running Task

(Ready Queue) (Dispatching)

Page 6: Scheduling Basic Concepts Processes - Tasks - Threads

Ready Queue

Page 7: Scheduling Basic Concepts Processes - Tasks - Threads

Formal Definition of Schedule

See text page 22 What does it say?

Page 8: Scheduling Basic Concepts Processes - Tasks - Threads

Preemptive Schedules

Page 9: Scheduling Basic Concepts Processes - Tasks - Threads

Categories of Schedules

Page 10: Scheduling Basic Concepts Processes - Tasks - Threads

Deadlines

• Deadline:

Absolute – with respect to real-time (time zero)

Relative – with respect to arrival time

Page 11: Scheduling Basic Concepts Processes - Tasks - Threads

Real-Time Task Parameters

Page 12: Scheduling Basic Concepts Processes - Tasks - Threads

Real-Time Task Parameters

Page 13: Scheduling Basic Concepts Processes - Tasks - Threads

Periodic vs Aperiodic Tasks

Page 14: Scheduling Basic Concepts Processes - Tasks - Threads

Precedence Constraints

Page 15: Scheduling Basic Concepts Processes - Tasks - Threads

Precedence Example

Page 16: Scheduling Basic Concepts Processes - Tasks - Threads

Precedence Graph for Example

Page 17: Scheduling Basic Concepts Processes - Tasks - Threads

Critical Sections

Binary Semaphore

Page 18: Scheduling Basic Concepts Processes - Tasks - Threads

Critical Section Example

Page 19: Scheduling Basic Concepts Processes - Tasks - Threads

Critical Section Model

Page 20: Scheduling Basic Concepts Processes - Tasks - Threads

Definition of Scheduling Problems

Page 21: Scheduling Basic Concepts Processes - Tasks - Threads

Classification of Scheduling Algorithms

Page 22: Scheduling Basic Concepts Processes - Tasks - Threads

Guarantee-Based Algorithms

Page 23: Scheduling Basic Concepts Processes - Tasks - Threads

Domino Effect Degradation

Page 24: Scheduling Basic Concepts Processes - Tasks - Threads

Best Effort Algorithms

Page 25: Scheduling Basic Concepts Processes - Tasks - Threads

Metrics for Performance Evaluation

Page 26: Scheduling Basic Concepts Processes - Tasks - Threads

Attempting to Minimize Lateness

Page 27: Scheduling Basic Concepts Processes - Tasks - Threads

Example Cost Functions

Page 28: Scheduling Basic Concepts Processes - Tasks - Threads

Scheduling Anomalies

Page 29: Scheduling Basic Concepts Processes - Tasks - Threads

Example

Page 30: Scheduling Basic Concepts Processes - Tasks - Threads

Adding a processor

Page 31: Scheduling Basic Concepts Processes - Tasks - Threads

Reducing Computation Times

Page 32: Scheduling Basic Concepts Processes - Tasks - Threads

Weaken Constraints

Page 33: Scheduling Basic Concepts Processes - Tasks - Threads

Resource Constraints

Page 34: Scheduling Basic Concepts Processes - Tasks - Threads

Exorcises