Real-Time Scheduling. Real Time Operating Systems and Middleware. Luca Abeni

Similar documents
Process Scheduling for RTS. RTS Scheduling Approach. Cyclic Executive Approach

Lecture 13. Real-Time Scheduling. Daniel Kästner AbsInt GmbH 2013

Embedded Systems Development

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling

Real-Time Systems. Event-Driven Scheduling

Real-time Scheduling of Periodic Tasks (1) Advanced Operating Systems Lecture 2

Real-Time Systems. Event-Driven Scheduling

CEC 450 Real-Time Systems

Clock-driven scheduling

CIS 4930/6930: Principles of Cyber-Physical Systems

Real-Time Systems. Lecture 4. Scheduling basics. Task scheduling - basic taxonomy Basic scheduling techniques Static cyclic scheduling

Non-Preemptive and Limited Preemptive Scheduling. LS 12, TU Dortmund

EDF Scheduling. Giuseppe Lipari CRIStAL - Université de Lille 1. October 4, 2015

System Model. Real-Time systems. Giuseppe Lipari. Scuola Superiore Sant Anna Pisa -Italy

Scheduling Periodic Real-Time Tasks on Uniprocessor Systems. LS 12, TU Dortmund

Task Models and Scheduling

EDF Scheduling. Giuseppe Lipari May 11, Scuola Superiore Sant Anna Pisa

Real Time Operating Systems

CycleTandem: Energy-Saving Scheduling for Real-Time Systems with Hardware Accelerators

Andrew Morton University of Waterloo Canada

Fixed Priority Scheduling

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Real-time Scheduling of Periodic Tasks (2) Advanced Operating Systems Lecture 3

Real-Time Scheduling and Resource Management

Non-Work-Conserving Non-Preemptive Scheduling: Motivations, Challenges, and Potential Solutions

Real-Time Systems. Lecture #14. Risat Pathan. Department of Computer Science and Engineering Chalmers University of Technology

Schedulability of Periodic and Sporadic Task Sets on Uniprocessor Systems

Uniprocessor real-time scheduling

CPU SCHEDULING RONG ZHENG

Embedded Systems 15. REVIEW: Aperiodic scheduling. C i J i 0 a i s i f i d i

On-line scheduling of periodic tasks in RT OS

Real Time Operating Systems

Real-time Systems: Scheduling Periodic Tasks

TDDB68 Concurrent programming and operating systems. Lecture: CPU Scheduling II

3. Scheduling issues. Common approaches 3. Common approaches 1. Preemption vs. non preemption. Common approaches 2. Further definitions

IN4343 Real Time Systems April 9th 2014, from 9:00 to 12:00

Time and Schedulability Analysis of Stateflow Models

Real-Time and Embedded Systems (M) Lecture 5

There are three priority driven approaches that we will look at

Segment-Fixed Priority Scheduling for Self-Suspending Real-Time Tasks

A New Sufficient Feasibility Test for Asynchronous Real-Time Periodic Task Sets

Aperiodic Task Scheduling

2/5/07 CSE 30341: Operating Systems Principles

Embedded Systems 14. Overview of embedded systems design

Worst-case response time analysis of real-time tasks under fixed-priority scheduling with deferred preemption revisited

CSE 380 Computer Operating Systems

Scheduling. Uwe R. Zimmer & Alistair Rendell The Australian National University

Non-preemptive Fixed Priority Scheduling of Hard Real-Time Periodic Tasks

Load Regulating Algorithm for Static-Priority Task Scheduling on Multiprocessors

Schedulability Analysis for the Abort-and-Restart Model

Real-Time Scheduling

Networked Embedded Systems WS 2016/17

Design of Real-Time Software

Multiprocessor Scheduling I: Partitioned Scheduling. LS 12, TU Dortmund

CPU scheduling. CPU Scheduling

Real-Time Systems. LS 12, TU Dortmund

Schedulability analysis of global Deadline-Monotonic scheduling

TDDI04, K. Arvidsson, IDA, Linköpings universitet CPU Scheduling. Overview: CPU Scheduling. [SGG7] Chapter 5. Basic Concepts.

EDF Feasibility and Hardware Accelerators

Static priority scheduling

Deadline-driven scheduling

Priority-driven Scheduling of Periodic Tasks (1) Advanced Operating Systems (M) Lecture 4

Scheduling Slack Time in Fixed Priority Pre-emptive Systems

EDF and RM Multiprocessor Scheduling Algorithms: Survey and Performance Evaluation

Static-Priority Scheduling. CSCE 990: Real-Time Systems. Steve Goddard. Static-priority Scheduling

Cyclic Schedules: General Structure. Frame Size Constraints

Improved Priority Assignment for the Abort-and-Restart (AR) Model

A Dynamic Real-time Scheduling Algorithm for Reduced Energy Consumption

Module 5: CPU Scheduling

AS computer hardware technology advances, both

CHAPTER 5 - PROCESS SCHEDULING

Chapter 6: CPU Scheduling

Real-time operating systems course. 6 Definitions Non real-time scheduling algorithms Real-time scheduling algorithm

Process Scheduling. Process Scheduling. CPU and I/O Bursts. CPU - I/O Burst Cycle. Variations in Bursts. Histogram of CPU Burst Times

Schedulability and Optimization Analysis for Non-Preemptive Static Priority Scheduling Based on Task Utilization and Blocking Factors

Real-Time Calculus. LS 12, TU Dortmund

Lec. 7: Real-Time Scheduling

Scheduling I. Today Introduction to scheduling Classical algorithms. Next Time Advanced topics on scheduling

Multiprocessor Scheduling II: Global Scheduling. LS 12, TU Dortmund

On the Design and Application of Thermal Isolation Servers

Scheduling Algorithms for Multiprogramming in a Hard Realtime Environment

Lecture: Workload Models (Advanced Topic)

CEC 450 Real-Time Systems

Selected solutions for. TDDD07 Real-time Systems

Embedded Systems 23 BF - ES

Probabilistic Preemption Control using Frequency Scaling for Sporadic Real-time Tasks

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara

CPU Scheduling. CPU Scheduler

Scheduling I. Today. Next Time. ! Introduction to scheduling! Classical algorithms. ! Advanced topics on scheduling

Paper Presentation. Amo Guangmo Tong. University of Taxes at Dallas February 11, 2014

CPU Scheduling Exercises

Schedulability Analysis for the Abort-and-Restart (AR) Model

LSN 15 Processor Scheduling

arxiv: v1 [cs.os] 25 May 2011

UNIVERSITY OF TRENTO ADAPTIVE MANAGEMENT OF QOS IN OPEN SYSTEMS. Luigi Palopoli, Luca Abeni, Tommaso Cucinotta, Luca Marzario and Giuseppe Lipari

RUN-TIME EFFICIENT FEASIBILITY ANALYSIS OF UNI-PROCESSOR SYSTEMS WITH STATIC PRIORITIES

Non-preemptive Scheduling of Distance Constrained Tasks Subject to Minimizing Processor Load

Analysis and Implementation of Global Preemptive Fixed-Priority Scheduling with Dynamic Cache Allocation*

Efficient Power Management Schemes for Dual-Processor Fault-Tolerant Systems

Lecture Note #6: More on Task Scheduling EECS 571 Principles of Real-Time Embedded Systems Kang G. Shin EECS Department University of Michigan

Transcription:

Real Time Operating Systems and Middleware Luca Abeni luca.abeni@unitn.it

Definitions Algorithm logical procedure used to solve a problem Program formal description of an algorithm, using a programming language Process instance of a program (program in execution) Program: static entity Process: dynamic entity The term task is used to indicate a schedulable entity (either a process or a thread) Thread flow of execution Process flow of execution + private resources (address space, file table, etc...)

Scheduling Tasks do not run on bare hardware... How can multiple tasks execute on one single CPU? The OS OS kernel creates the illusion of having more CPUs, so that multiple tasks execute in parallel Tasks have the illusion of executing concurrently A dedicated CPU per task Concurrency is implemented by multiplexing tasks on the same CPU... Tasks are alternated on a real CPU......And the task scheduler decides which task executes at a given instant in time Tasks are associated temporal constraints (deadlines) The scheduler must allocate the CPU to tasks so that their deadlines are respected

Scheduler - 1 Scheduler: responsible for generating a schedule from a set of ready tasks Interesting definition: the scheduler is the thing that generates the schedule Let s be serious... Start from a mathematical model First, consider UP systems (simpler definition) A schedule σ(t) is a function mapping time t into an executing task σ : t T τ idle where T is the set of tasks in the system τ idle is the idle task: when it is scheduled, the CPU becomes idle For an SMP system (m CPUs), σ(t) can be extended to map t in vectors τ (T τ idle ) m

Scheduler - 2 Scheduler: implements σ(t) The scheduler is responsible for selecting the task to execute at time t From an algorithmic point of view Scheduling algorithm Algorithm used to select for each time instant t a task to be executed on a CPU among the ready task Given a task set T, a scheduling algorithm A generates the schedule σ A (t) A task set is schedulable by an algorithm A if σ A does not contain missed deadlines Schedulability test check if T is schedulable by A

RT Scheduling: Why? The task set T = {(1,3),(4,8)} is not schedulable by FCFS T = {(1, 3),(4, 8)} is schedulable with other algorithms

Cyclic Executive Scheduling Very low overhead (scheduling decisions taken off-line) Very simple and well-tested Mainly used in legacy applications and where reliability is fundamental Example: military and avionics systems Air traffic control Space Shuttle Boeing 777 Also called timeline scheduling or cyclic scheduling Originally used for periodic tasks

The idea Static scheduling algorithm Jobs are not preemptable A scheduled job executes until termination The time axis is divided in time slots Slots are statically allocated to the tasks (scheduling table) A periodic timer activates execution (allocation of a slot) Major Cycle: least common multiple (lcm) of all the tasks periods (also called hyperperiod) Minor Cycle: greatest common divisor (gcd) of all the tasks periods A timer fires every Minor Cycle

Example Consider a taskset Γ = {,, } Periodic tasks τ i = (C i,d i,t i ), D i = T i T 1 = 25ms, T 2 = 50ms, T 3 = 100ms 1. Minor Cycle = gcd(25, 50, 100) = 25ms 2. Major Cycle T = lcm(25, 50, 100) = 100ms 3. Compute a schedule that respects the task periods Allocate tasks in slots of size = 25ms The schedule repeats every T = 100ms must be scheduled every 25ms, must be scheduled every 50ms, must be scheduled every 100ms In every minor cycle, the tasks must execute for less than 25ms

Example - The Schedule The schedule repeats every 4 minor cycles must be scheduled every 25ms scheduled in every minor cycle must be scheduled every 50ms scheduled every 2 minor cycles must be scheduled every 100ms scheduled every 4 minor cycles T 25 50 75 100 125 150 175 200 First minor cycle: C 1 +C 3 25ms Second minor cycle: C 1 +C 2 25ms

Implementation Timer Minor Cycle Timer Timer Timer Major Cycle Periodic timer firing every minor cycle Every time the timer fires......read the scheduling table and execute the appropriate tasks Then, sleep until next minor cycle

Advantages Simple implementation (no real-time operating system is required) No real task exist: just function calls One single stack for all the tasks Non-preemptable scheduling no need to protect data No need for semaphores, pipes, mutexes, mailboxes, etc. Low run-time overhead Jitter can be explicitly controlled

Drawbacks Not robust during overloads Difficult to expand the schedule (static schedule) New task the whole schedule must be recomputed Not easy to handle aperiodic/sporadic tasks All task periods must be a multiple of the minor cycle time Difficult to incorporate processes with long periods (big tables) Variable computation time it might be necessary to split tasks into a fixed number of fixed size procedures

Fixed Priority Scheduling Very simple preemptive scheduling algorithm Every task τ i is assigned a fixed priority p i The active task with the highest priority is scheduled Priorities are integer numbers: the higher the number, the higher the priority In the research literature, sometimes authors use the opposite convention: the lowest the number, the highest the priority In the following we show some examples, considering periodic tasks, constant execution times, and deadlines equal to the period

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Example of Schedule Consider the following task set: = (2,6,6), = (2,9,9), = (3,12,12). Task has priority p 1 = 3 (highest), task has priority p 2 = 2, task has priority p 3 = 1 (lowest)

Another Example (non-schedulable) Consider the following task set: = (3,6,6), p 1 = 3, = (2,4,8), p 2 = 2, = (2,12,12), p 3 = 1 In this case, task misses its deadline!

Another Example (non-schedulable) Consider the following task set: = (3,6,6), p 1 = 3, = (2,4,8), p 2 = 2, = (2,12,12), p 3 = 1 In this case, task misses its deadline!

Another Example (non-schedulable) Consider the following task set: = (3,6,6), p 1 = 3, = (2,4,8), p 2 = 2, = (2,12,12), p 3 = 1 In this case, task misses its deadline!

Notes about Priority Scheduling Some considerations about the schedule shown before: The response time of the task with the highest priority is minimum and equal to its WCET The response time of the other tasks depends on the interference of the higher priority tasks The priority assignment may influence the schedulability of a task set Problem: how to assign tasks priorities so that a task set is schedulable?

Priority Assignment Given a task set, how to assign priorities? There are two possible objectives: Schedulability (i.e. find the priority assignment that makes all tasks schedulable) Response time (i.e. find the priority assignment that minimise the response time of a subset of tasks) By now we consider the first objective only An optimal priority assignment Opt is such that: If the task set is schedulable with another priority assignment, then it is schedulable with priority assignment Opt If the task set is not schedulable with Opt, then it is not schedulable by any other assignment

Optimal Priority Assignment Given a periodic task set T with all tasks having relative deadline D i equal to the period T i ( i, D i = T i ), and with all offsets equal to 0 ( i, r i,0 = 0): The best assignment is the Rate Monotonic (RM) assignment Shorter period higher priority Given a periodic task set with deadline different from periods, and with all offsets equal to 0 ( i, r i,0 = 0): The best assignment is the Deadline Monotonic assignment Shorter relative deadline higher priority For sporadic tasks, the same rules are valid as for periodic tasks with offsets equal to 0

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Example revised Consider the example shown before with deadline monotonic: = (3,6,6), p 1 = 2, = (2,4,8), p 2 = 3, = (2,12,12), p 3 = 1

Analysis Given a task set, how can we guarantee if it is schedulable of not? The first possibility is to simulate the system to check that no deadline is missed; The execution time of every job is set equal to the WCET of the corresponding task; Periodic tasks with no offsets sufficient to simulate the schedule until the hyperperiod (H = lcm{t i }). Offsets φ i = r i,0 simulate until 2H +φ max. If tasks periods are prime numbers the hyperperiod can be very large! Note: RM hyperperiod; Cyclic Executive Major Cycle

Example Exercise: Compare the hyperperiods of this two task sets: T 1 = 8, T 2 = 12, T 3 = 24 T 1 = 7, T 2 = 12, T 3 = 25 In case of sporadic tasks, we can assume them to arrive at the highest possible rate, so we fall back to the case of periodic tasks with no offsets!

Utilisation-Based Analysis In many cases it is useful to have a very simple test to see if the task set is schedulable. A sufficient test is based on the Utilisation bound: The utilisation least upper bound for scheduling algorithm A is the smallest possible utilisation U lub such that, for any task set T, if the task set s utilisation U is not greater than U lub (U U lub ), then the task set is schedulable by algorithm A

Utilisation Each task uses the processor for a fraction of time The total processor utilisation is U i = C i T i U = i C i T i This is a measure of the processor s load

Necessary Condition If U > 1 the task set is surely not schedulable However, if U < 1 the task set may or may not be schedulable... If U < U lub, the task set is schedulable!!! Gray Area between U lub and 1 We would like to have U lub near to 1 U lub = 1 would be optimal!!!

Utilisation Bound for RM We consider n periodic (or sporadic) tasks with relative deadline equal to periods. Priorities are assigned with Rate Monotonic; U lub = n(2 1/n 1) U lub is a decreasing function of n; For large n: U lub 0.69 n U lub n U lub 2 0.828 7 0.728 3 0.779 8 0.724 4 0.756 9 0.720 5 0.743 10 0.717 6 0.734 11...

Schedulability Test Therefore the schedulability test consist in: Computing U = n i=1 C i T i if U U lub, the task set is schedulable if U > 1 the task set is not schedulable if U lub < U 1, the task set may or may not be schedulable

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example Task set T composed by 3 periodic tasks with U < U lub : the system is schedulable. = (2,8), = (3,12), = (4,16); U = 0.75 < U lub = 0.77

Example 2 By increasing the computation time of task, the system may still be schedulable = (2,8), = (3,12), = (5,16); U = 0.81 > U lub = 0.77

Utilisation Bound for DM If relative deadlines are less than or equal to periods, instead of considering U = n i=1 C i T i, we can consider: U = n i=1 C i D i Then the test is the same as the one for RM (or DM), except that we must use U instead of U. Idea: τ = (C,D,T) τ = (C,D,D) τ is a worst case for τ If τ can be guaranteed, τ can be guaranteed too

Pessimism The bound is very pessimistic: most of the times, a task set with U > U lub is schedulable by RM. A particular case is when tasks have periods that are harmonic: A task set is harmonic if, for every two tasks τ i,τ j, either T i is multiple of T j or T j is multiple of T i. For a harmonic task set, the utilisation bound is U lub = 1 In other words, Rate Monotonic is an optimal algorithm for harmonic task sets

Example of Harmonic Task Set = (3,6), = (3,12), = (6,24); U = 1 ;