Scheduling Basic Concepts Ref: Hard Real-Time Computing Systems Giorgio Buttazzo 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
The Osborne I (1981) Hardware: Dual 5¼-inch floppy disk drivesfloppy disk 4 MHz Z80 CPUMHzZ80CPU 65 kilobytes main memorykilobytesmemory Fold-down keyboard doubling as the computer case's lidkeyboard 5-inch, 52 character × 24 line monochrome CRT displaymonochromeCRT Parallel printer portParallelprinter Serial port for use with external modems or serial printersSerial portmodems Software: CPM Word Star SuperCalc Dbase II CBasic First Portable Computer
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)
Ready Queue
Definition of Schedule What does it say?
Preemptive Schedules
Categories of Schedules
Deadlines Deadline: Absolute – with respect to real-time (time zero) Relative – with respect to arrival time
Real-Time Task Parameters
Periodic vs Aperiodic Tasks
Precedence Constraints
Precedence Example
Critical Sections Binary Semaphore
Critical Section Example
Critical Section Model
Definition of Scheduling Problems
Classification of Scheduling Algorithms
Guarantee-Based Algorithms
Domino Effect Degradation