Uniprocessor real-time scheduling

Similar documents
CIS 4930/6930: Principles of Cyber-Physical Systems

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

Real-Time Scheduling and Resource Management

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

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

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

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

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

CSE 380 Computer Operating Systems

Andrew Morton University of Waterloo Canada

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

Shared resources. Sistemi in tempo reale. Giuseppe Lipari. Scuola Superiore Sant Anna Pisa -Italy

Real Time Operating Systems

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

Lecture 6. Real-Time Systems. Dynamic Priority Scheduling

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

Real Time Operating Systems

Task Models and Scheduling

Embedded Systems Development

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

Real-Time and Embedded Systems (M) Lecture 5

Real-Time Systems. Event-Driven Scheduling

Embedded Systems 14. Overview of embedded systems design

Real-time Systems: Scheduling Periodic Tasks

CEC 450 Real-Time Systems

There are three priority driven approaches that we will look at

Aperiodic Task Scheduling

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

EDF Feasibility and Hardware Accelerators

Real-Time Systems. Event-Driven Scheduling

Clock-driven scheduling

Scheduling Slack Time in Fixed Priority Pre-emptive Systems

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

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

Time and Schedulability Analysis of Stateflow Models

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

Static priority scheduling

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

Lecture: Workload Models (Advanced Topic)

CPU SCHEDULING RONG ZHENG

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

Networked Embedded Systems WS 2016/17

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

Mixed Criticality in Safety-Critical Systems. LS 12, TU Dortmund

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

Design of Real-Time Software

Bounding the End-to-End Response Times of Tasks in a Distributed. Real-Time System Using the Direct Synchronization Protocol.

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

Real-Time Systems. LS 12, TU Dortmund

Selected solutions for. TDDD07 Real-time Systems

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

Schedulability Analysis for the Abort-and-Restart Model

Dependency Graph Approach for Multiprocessor Real-Time Synchronization. TU Dortmund, Germany

Resource Sharing Protocols for Real-Time Task Graph Systems

On-line scheduling of periodic tasks in RT OS

Deadline-driven scheduling

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

Lec. 7: Real-Time Scheduling

EECS 571 Principles of Real-Time Embedded Systems. Lecture Note #7: More on Uniprocessor Scheduling

Load Regulating Algorithm for Static-Priority Task Scheduling on Multiprocessors

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

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

A Theory of Rate-Based Execution. A Theory of Rate-Based Execution

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

Schedulability of Periodic and Sporadic Task Sets on Uniprocessor Systems

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

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

2.1 Task and Scheduling Model. 2.2 Definitions and Schedulability Guarantees

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

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

Online Energy-Aware I/O Device Scheduling for Hard Real-Time Systems with Shared Resources

Exact speedup factors and sub-optimality for non-preemptive scheduling

The Concurrent Consideration of Uncertainty in WCETs and Processor Speeds in Mixed Criticality Systems

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

Real-Time Scheduling

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

The preemptive uniprocessor scheduling of mixed-criticality implicit-deadline sporadic task systems

Resource Sharing in an Enhanced Rate-Based Execution Model

Real-Time Workload Models with Efficient Analysis

Fixed Priority Scheduling

Lightweight Real-Time Synchronization under P-EDF on Symmetric and Asymmetric Multiprocessors

Operating Systems. VII. Synchronization

Rate Monotonic Analysis (RMA)

Optimal Utilization Bounds for the Fixed-priority Scheduling of Periodic Task Systems on Identical Multiprocessors. Sanjoy K.

AS computer hardware technology advances, both

Paper Presentation. Amo Guangmo Tong. University of Taxes at Dallas January 24, 2014

A Response-Time Analysis for Non-preemptive Job Sets under Global Scheduling

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

A Multi-Periodic Synchronous Data-Flow Language

Resource-locking durations in EDF-scheduled systems

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

Tardiness Bounds under Global EDF Scheduling on a. Multiprocessor

Controlling Preemption for Better Schedulability in Multi-Core Systems

Improved Deadline Monotonic Scheduling With Dynamic and Intelligent Time Slice for Real-time Systems

An Improved Schedulability Test for Uniprocessor. Periodic Task Systems

Module 5: CPU Scheduling

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

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

Chapter 6: CPU Scheduling

Conference Paper. A Response-Time Analysis for Non-Preemptive Job Sets under Global Scheduling. Mitra Nasri Geoffrey Nelissen Björn B.

Transcription:

Uniprocessor real-time scheduling Julien Forget Université Lille 1 Ecole d Été Temps Réel - 30 Août 2017 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 1 / 67

Overview At the end of this session, you should be (more) proficient at: Modeling a real-time system, using the classic periodic task model; Programming a set of periodic tasks; Testing the schedulability of a task set. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 2 / 67

Embedded system Definition A special-purpose computer system designed to perform one or a few dedicated functions. Usually embedded as part of a complete device including hardware and mechanical parts. (Wikipedia) Dedicated optimized, reduced resources; Handle a system in its (annoying) physical environment. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 3 / 67

Reactive system physical environment inputs outputs reactive system React to inputs: 1 Acquire inputs on sensors; 2 Compute; 3 Produce values on actuators. Actions impact the environment, thus subsequent inputs; Response time must be bounded. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 4 / 67

Real-time system Definition Real-time systems must guarantee response within strict time constraints, often referred to as deadlines. (Wikipedia) A sub-class of reactive systems; Usually embedded; Often critical. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 5 / 67

Classify these systems Discuss which systems are embedded, reactive, critical, real-time: Airplane flight control system; Data base; ABS; Compiler; Nuclear power plant control system; MP3 player; GSM communication; Video processing on chip. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 6 / 67

Real-time systems classes Hard real-time: missing a deadline has catastrophic consequences; Soft real-time: missing a deadline degrades the behaviour (notion of quality of service or performance level). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 7 / 67

Hard or soft real-time? Mpeg Video decoder; Airplane flight control system; Car cruise control; GSM communication. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 8 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 9 / 67

Event-driven vs time-driven Event-driven system: Wait for input; Compute; Produce output; Must produce output before occurrence of next event. Sampled system: Acquire input at regular intervals of time; Compute; Produce output; Must produce output before start of next interval. Inter-arrival time of events is often bounded: When so, both models are not that much different (sporadic tasks). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 10 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: system dynamics (e.g. airplane stability); Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: system dynamics (e.g. airplane stability); Lower-bounded: Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: system dynamics (e.g. airplane stability); Lower-bounded: sensor/actuator capabilities and processor load; Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: system dynamics (e.g. airplane stability); Lower-bounded: sensor/actuator capabilities and processor load; Choose a period close to Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: system dynamics (e.g. airplane stability); Lower-bounded: sensor/actuator capabilities and processor load; Choose a period close to upper-bound to reduce load: Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Period Periods are the prime real-time constraints: Period (T i ): repetition interval of a task; Choosing a period: Upper-bounded: system dynamics (e.g. airplane stability); Lower-bounded: sensor/actuator capabilities and processor load; Choose a period close to upper-bound to reduce load: Reduce hardware cost; Reduces energy consumption. Related attributes: release date and deadline. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 11 / 67

Deadline Deadline (D i ): bounds the accepted response time of a task; D i = T i : Most classic model; A task invocation must complete before its next invocation; D i T i : In some cases related to system dynamics, e.g. actuator physical reaction time; Often used as an implementation trick : influence schedule by increasing task priority (e.g. see data-dependencies). D i T i : rarely used, but studied in litterature. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 12 / 67

Offset Offset (O i ): wait before the initial release of a task; Rarely related to system dynamics; Again often used as an implementation trick : delay the point where a task becomes ready (e.g. see data-dependencies). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 13 / 67

Worst-Case Execution Time (WCET) WCET (C i ): execution-time of a task; Exact execution time hard to predict; Instead, provide a safe but pessimistic upper-bound; Not an actual constraint: execution time will usually (hopefully) be shorter; Used mainly for schedulability analysis. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 14 / 67

Task model 0 2 4 6 8 10 12 14 16 Task τ i (C i, T i, D i O i ): τ i.k : the k th (k 0) invocation or job of τ i ; o i.k = O i + kt i : release date of τ i.k ; Sporadic tasks: o i.k O i + kt i ; d i.k = o i.k + D i : absolute deadline of τ i.k. In this example: : τ 1 (3, 6, 4, 0); Deadline constraints are met; τ 1.1 and τ 1.2 are preempted; τ 1.2 executes for less than C 1. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 15 / 67

Impact of deadline misses: UAV control GPS (input): 1 frame every 250 ms. Deadline miss frame lost, i.e. current position lost. Inertial measurement unit (input): 1 message every 20ms. Deadline miss loss of control. Radio-command (input): 5 inputs updated every 20ms. Deadline miss non-fluid control. Servo-command (output): 5 outputs updated every 20ms. Deadline miss non-fluid control. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 16 / 67

Impact of deadline misses: UAV control (2) Data for artificial ground control (output): every 50ms Deadline miss flight display delayed. Navigation (trajectory): same as GPS. Deadline miss wrong trajectory. Failure detection (internal): every 200ms Deadline miss crash with motors on. Attitude regulation (output): once every 3 IMU cycle, i.e. 60ms Deadline miss loss of control. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 17 / 67

A real-time task in C void * periodic_task1 ( void * args ) { // initialization wait_for_release (); while (1) { task_functionality (); wait_next_activation (); } } Wait for release if O i 0 or task startup not synchronized (OS-dependent); Immediate loop bug: don t forget to wait for next activation! This is a very classic structure: Yet, not enforced by the OS or compiler; In some RTOS, programmer only provides the task_functionality function, repeated automatically by the OS. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 18 / 67

Invoking tasks int main () { create_task ( periodic_task1,args1, RTparams1 ); create_task ( periodic_task2,args2, RTparams2 ); } start_scheduler (); (or) while (1); // This should never be reached return 1; Arguments of task creation: periodic_taski: pointer to task function (see previous slide); argsi: the arguments of periodic_taski; RTparamsi: the real-time parameters; Task startup: Linux-based OS: immediate (at task creation) need to synchronize initialize releases; Others: when starting the scheduler (start_scheduler). Warning: in Linux-based OS, termination of main() terminates tasks prevent termination with while(1). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 19 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 20 / 67

A two-fold problem Real-time scheduling Scheduling is the method by which work is assigned to resources. In real-time systems, the scheduler also must ensure that processes can meet deadlines. (Wikipedia) This involves: Designing a scheduling policy: an algorithm that dictates how to assign work to resources; Designing a schedulability analysis: a test that verifies, before execution, that the policy will definitely satisfy the real-time constraints of the system. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 21 / 67

Scheduling: OS vs RTOS Scheduler objective: General-purpose OS Reduce mean response time Equity between processes Independent processes RTOS Ensure bounded response time = deadlines means urgency Collaborating processes Be fast, on average Be in-time, always For a RT system, faster is NOT better. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 22 / 67

Scheduling in the development cycle Schedulability analysis always occurs off-line; Off-line scheduling: Execution order is planned before execution; Assumes a repetitive planning; The (possibly large) planning is embedded; Only requires a dispatcher. On-line scheduling: Scheduler takes decisions on-line; No-need for a pre-computed schedule; Schedulability can still be analyzed off-line. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 23 / 67

Feasibility, schedulability Feasibility A schedule for a given task set is feasible iff: Each job starts after its release date; Each job completes before its absolute deadline. Schedulability A task set is schedulable with a given scheduling policy iff the schedule produced by the policy for this task set is feasible. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 24 / 67

Optimality Definition A scheduling policy P is optimal iff: if a task set is schedulable by some policy, then it is schedulable by P. Warning: Optimality is defined with respect to a certain class of policies, e.g. RM is optimal for fixed-task priority, on-line, preemptive,... Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 25 / 67

Reminder: priority-based scheduling Each task has a priority; The task with the highest priority is scheduled first; Several tasks can share the same priority Round-robin/FIFO for each priority level; RT policies are usually derived from this general policy. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 26 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Example Let p i denote the priority of task τ i ; Let τ 1 = (2, 6, 6), τ 2 = (2, 9, 9), τ 3 = (3, 12, 12); Let p 1 = 3 (highest), p 2 = 2, p 3 = 1. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 27 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 28 / 67

Fixed-task priority policies Fixed-task priority: the priority of a task remains the same for the whole execution; When O i = 0 and D i = T i : Rate Monotonic is an optimal policy; Shorter period higher priority. When O i = 0 and D i T i : Deadline Monotonic is an optimal policy; Shorter relative deadline higher priority. These policies are very simple to implement; In most RTOS, priority is assigned by the programmer, at task creation. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 29 / 67

Schedulability analysis: Simulation Since O i = 0 and all tasks are periodic, the same schedule is repeated every hyperperiod; Hyperperiod: HP = lcm({t i }); Check schedulability by simulating the execution until date HP. Example Compare the hyperperiod of these task sets: T 1 = 8, T 2 = 12, T 3 = 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 30 / 67

Schedulability analysis: Simulation Since O i = 0 and all tasks are periodic, the same schedule is repeated every hyperperiod; Hyperperiod: HP = lcm({t i }); Check schedulability by simulating the execution until date HP. Example Compare the hyperperiod of these task sets: T 1 = 8, T 2 = 12, T 3 = 24 HP = 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 30 / 67

Schedulability analysis: Simulation Since O i = 0 and all tasks are periodic, the same schedule is repeated every hyperperiod; Hyperperiod: HP = lcm({t i }); Check schedulability by simulating the execution until date HP. Example Compare the hyperperiod of these task sets: T 1 = 8, T 2 = 12, T 3 = 24 HP = 24 T 1 = 7, T 2 = 12, T 3 = 25 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 30 / 67

Schedulability analysis: Simulation Since O i = 0 and all tasks are periodic, the same schedule is repeated every hyperperiod; Hyperperiod: HP = lcm({t i }); Check schedulability by simulating the execution until date HP. Example Compare the hyperperiod of these task sets: T 1 = 8, T 2 = 12, T 3 = 24 HP = 24 T 1 = 7, T 2 = 12, T 3 = 25 HP = 2100 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 30 / 67

Schedulability analysis: Simulation Since O i = 0 and all tasks are periodic, the same schedule is repeated every hyperperiod; Hyperperiod: HP = lcm({t i }); Check schedulability by simulating the execution until date HP. Example Compare the hyperperiod of these task sets: T 1 = 8, T 2 = 12, T 3 = 24 HP = 24 T 1 = 7, T 2 = 12, T 3 = 25 HP = 2100 Worst-case: tasks have co-prime periods HP is exponential w.r.t. number of tasks; Practical case: tasks have harmonic periods HP is equal to highest period. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 30 / 67

Schedulability analysis: Utilization Bound Let U = n i=1 C i T i the Utilization Ratio; The utilization bound U lub is a value such that: U U lub feasible. Theorem, Liu& Layland 1973 Consider n periodic (or sporadic) tasks with D i = T i, whose priorities are assigned in RM order. Then: U lub = n(2 1/n 1) U lub decreases with n; For n = 2, U lub = 0.83, for large n, U lub 0.69. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 31 / 67

Schedulability analysis: Utilization Bound Let U = n i=1 C i T i the Utilization Ratio; The utilization bound U lub is a value such that: U U lub feasible. Theorem, Liu& Layland 1973 Consider n periodic (or sporadic) tasks with D i = T i, whose priorities are assigned in RM order. Then: U lub = n(2 1/n 1) U lub decreases with n; For n = 2, U lub = 0.83, for large n, U lub 0.69. Warning: This test is sufficient, but not necessary! Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 31 / 67

Schedulability analysis: Utilization Bound Let U = n i=1 C i T i the Utilization Ratio; The utilization bound U lub is a value such that: U U lub feasible. Theorem, Liu& Layland 1973 Consider n periodic (or sporadic) tasks with D i = T i, whose priorities are assigned in RM order. Then: U lub = n(2 1/n 1) U lub decreases with n; For n = 2, U lub = 0.83, for large n, U lub 0.69. Warning: This test is sufficient, but not necessary! It is very simple to find schedulable task sets with U i = 1; Experiments show that the actual average bound is around 88%. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 31 / 67

Schedulability analysis: Response Time Analysis Response-time: duration between job release and job completion; Main idea: check that worst-case response-time is lower than deadline for every task; RTA is a necessary and sufficient schedulability test; RTA does not require to explore the complete hyperperiod. Theorem The worst-case response time of a task of priority P k is equal to the longest k-busy period. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 32 / 67

Busy-period Definition k-busy period: processor executes tasks of priority higher than k. workload w=t 3-busy period idle time idle point τ 1 time τ 2 Julien Forget (Université Lille τ 3 1) Uniprocessor real-time scheduling ETR 2017 33 / 67

Computing an i busy period Inductive definition (Pseudo-polynomial): B i,0 = C i B i,k+1 = C i + j hp(i) hp(i) tasks with priority higher than i; Stop when: Reaching a fixed-point, i.e. B i,k+1 = B i,k ; B i,k > D i. B i,k C j T i Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 34 / 67

Computing an i busy period NB: Inductive definition (Pseudo-polynomial): B i,0 = C i B i,k+1 = C i + j hp(i) hp(i) tasks with priority higher than i; Stop when: Reaching a fixed-point, i.e. B i,k+1 = B i,k ; B i,k > D i. B i,k C j T i This works for any optimal fixed-priority policy; The scheduling policy only impacts the definition of hp(i); We can use this test for RM and DM. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 34 / 67

RTA for tasks with offset (O i 0) Critical instant: a date where all tasks are released simultaneously; The longest busy period is initiated by the critical instant; When O i = 0, a critical instant occurs at date 0; This lies at the heart of RTA for case without offset; When O i 0, the critical instant may not exist, so RTA requires to study all busy periods up to max(o i ) + 2HP. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 35 / 67

Audsley s scheduling policy (O i 0) DM is not optimal when O i 0; Audsley proposed a different policy for that case: for Each priority lvl, lowest first do assigned false for Each unassigned task τ k do if τ k schedulable with priority lvl then P k lvl; assigned true break the current loop end if end for if assigned=false then the system is not feasible end if end for Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 36 / 67

Audsley s scheduling policy When testing the schedulability of τ at level lvl: The relative priorities of higher priority tasks does not matter; We can compute the interference of higher priority tasks similarly to how we computed the busy period There is no need for an actual schedule. The policy performs n(n + 1)/2 partial schedulability tests; This is both a scheduling policy and a schedulability test; This general principle has been applied to several other scheduling problems (see OPA, Optimal Priority Assignment). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 37 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 38 / 67

Fixed-job priority policies Fixed-job priority: The priority of a job remains unchained during its execution; The priorities of two jobs of the same task can differ. Earliest-Deadline-First is an optimal policy for a large class of problems: O i 0 and D i T i ; The job with the shortest absolute deadline has the highest priority; In a RTOS: Priorities are assigned to tasks (not jobs); So, EDF requires to change dynamically task priorities; Not all RTOS allow this. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 39 / 67

Example, with RM τ 1 = (1, 4), τ 2 = (2, 6), τ 3 = (3, 8); Utilization is quite high: U = 1 4 + 2 6 + 3 8 = 23 24 There is a deadline miss! τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 40 / 67

Same example, with EDF τ 1 = (1, 4), τ 2 = (2, 6), τ 3 = (3, 8); The task set is schedulable. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 16 18 20 22 24 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 41 / 67

Utilization bound When D i = T i, the system is schedulable with EDF iff: U 1 Extremely simple and efficient test; EDF enables higher utilization ratio than RM. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 42 / 67

Processor demand When D i T i and O i = 0: The worst-case response time does not occur at the critical instant; Let h(t) denote the amount of work to complete before time t (processor demand): h(t) = n i=1 t + T i D i T i C i Task set is schedulable iff: t, h(t) t No need to study the processor demand for all t: 1 h(t) only increases at job deadlines; 2 We can find a bound on the values of t that must be checked. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 43 / 67

Efficient processor demand analysis Two known bounds: L a : n i=1 L a = max{d 1,..., D n, (T i D i )C i /T i } 1 U L b computed as the least fixed-point of: w 0 = w j+1 = n i=1 n i=1 C i w j T i C i Check that h(t) t for each deadline until min(l a, L b ). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 44 / 67

Fixed-job vs fixed-task priorities Implementation: DM/RM are easier to implement than EDF; Run-time overhead: EDF requires to compute priorities at run-time; EDF causes fewer preemptions. Task jitter (response time variation): RM/DM cause low jitter on high priority tasks; EDF causes lower average jitter. Overload: When U 1, EDF causes more deadline misses than RM/DM; Processor utilization: EDF enables higher processor utilization (up to 100%). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 45 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 46 / 67

Shared resource pitfalls So far, we considered independent tasks; In reality, tasks often share resources (e.g. data); A piece of code accessing the shared resource is called a critical section; Two or more critical sections on the same resource must be executed in mutual exclusion; Each shared resource should be protected by a mutual exclusion mechanism: semaphore, mutex, etc. Mutual exclusion mechanisms are a notable source of bugs in computer systems: Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 47 / 67

Shared resource pitfalls So far, we considered independent tasks; In reality, tasks often share resources (e.g. data); A piece of code accessing the shared resource is called a critical section; Two or more critical sections on the same resource must be executed in mutual exclusion; Each shared resource should be protected by a mutual exclusion mechanism: semaphore, mutex, etc. Mutual exclusion mechanisms are a notable source of bugs in computer systems: deadlocks, starvation,... Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 47 / 67

Shared resource pitfalls So far, we considered independent tasks; In reality, tasks often share resources (e.g. data); A piece of code accessing the shared resource is called a critical section; Two or more critical sections on the same resource must be executed in mutual exclusion; Each shared resource should be protected by a mutual exclusion mechanism: semaphore, mutex, etc. Mutual exclusion mechanisms are a notable source of bugs in computer systems: deadlocks, starvation,... Real-time systems introduce their own nasty bugs related to scheduling: Priority inversion; Scheduling anomalies. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 47 / 67

Scheduling anomaly {τ 1 (2, 8, 6), τ 2 (6, 16, 15), τ 3 (6, 16, 16)} Tasks in grey share resources; On the left: schedulability analysis succeeds; On the right: τ 2 takes less than WCET, causing a deadline miss. τ 1 τ 2 τ 3 τ 1 τ 2 τ 3 0 2 4 6 8 10121416 0 2 4 6 8 10121416 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 48 / 67

Priority inversion Tasks in grey share resources; τ 2 is running while the highest priority task τ 1 is waiting for τ 3 to complete its critical section; This causes τ 1 to miss its deadline. τ 1 τ 2 τ 3 0 2 4 6 8 10 12 14 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 49 / 67

Priority Inheritance Protocol Principle: When a task accesses a shared resource, it inherits the priority of the highest priority task that shares this resource until the end of its critical section; This completely prevents priority inversion; Several variations: Priority Inheritance Protocol (the original): high blocking times; Priority Ceiling Protocol: lower blocking time, complex implementation (priority inheritance), unnecessary context switches; Stack Resource Policy a.k.a. Immediate Priority Ceiling: resolves previous drawbacks. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 50 / 67

Stack Resource Policy: preemption level The preemption level π i of a task τ i is: For RM/DM: equal to the priority of τ i (π i = p i ); For EDF: the inverse of the relative deadline (π i = 1/D i ). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 51 / 67

Stack Resource Policy: resource ceiling Definition The resource ceiling of a resource S k is the highest preemption level of the tasks accessing it (at any time). ceil(s k ) = max{π i τ i uses S k } i Definition The system ceiling at a given time is the maximum of the resource ceiling of resources locked at that time. Π(t) = max k {ceil(s k) S k is locked at t} Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 52 / 67

Stack Resource Policy: the protocol At time t, task τ i can start executing iff: It is the highest priority task; Its preemption level is greater than the current system ceiling: π i > Π(t) Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 53 / 67

Stack Resource Policy: example p 1 > p 2 > p 3 ; S 1 used by τ 1, τ 3 ceil(s 1 ) = p 1 ; S 2 used by τ 1, τ 2 ceil(s 2 ) = p 1. τ 1 τ 2 τ 3 L(S 1 ) 0 2 4 6 8 10 12 14 16 18 20 22 24 Task τ 3 raises the sys ceiling Π to p 1 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 54 / 67

Stack Resource Policy: example p 1 > p 2 > p 3 ; S 1 used by τ 1, τ 3 ceil(s 1 ) = p 1 ; S 2 used by τ 1, τ 2 ceil(s 2 ) = p 1. τ 1 τ 2 τ 3 L(S 1 ) S 1 0 2 4 6 8 10 12 14 16 18 20 22 24 Task τ 3 raises the sys ceiling Π to p 1 Task τ 2 cannot start because p 2 < Π = p 1 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 54 / 67

Stack Resource Policy: example p 1 > p 2 > p 3 ; S 1 used by τ 1, τ 3 ceil(s 1 ) = p 1 ; S 2 used by τ 1, τ 2 ceil(s 2 ) = p 1. τ 1 τ 2 τ 3 L(S 1 ) S 1 S 1 0 2 4 6 8 10 12 14 16 18 20 22 24 Task τ 3 raises the sys ceiling Π to p 1 Task τ 2 cannot start because p 2 < Π = p 1 Task τ 1 cannot start because p 1 = Π = p 1 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 54 / 67

Stack Resource Policy: example p 1 > p 2 > p 3 ; S 1 used by τ 1, τ 3 ceil(s 1 ) = p 1 ; S 2 used by τ 1, τ 2 ceil(s 2 ) = p 1. τ 1 τ 2 τ 3 L(S 1 ) U(S 1 ) S 1 S 1 S 1 0 2 4 6 8 10 12 14 16 18 20 22 24 Task τ 3 raises the sys ceiling Π to p 1 Task τ 2 cannot start because p 2 < Π = p 1 Task τ 1 cannot start because p 1 = Π = p 1 When task τ 3 unlocks, the sys ceiling goes down, and all other tasks can start executing Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 54 / 67

Stack Resource Policy: example p 1 > p 2 > p 3 ; S 1 used by τ 1, τ 3 ceil(s 1 ) = p 1 ; S 2 used by τ 1, τ 2 ceil(s 2 ) = p 1. τ 1 τ 2 L(S 2 ) S 2 U(S 2 )L(S 1 ) S 1 U(S 1 ) L(S 2 ) S 2 U(S 1 ) τ 3 L(S 1 ) U(S 1 ) S 1 S 1 S 1 0 2 4 6 8 10 12 14 16 18 20 22 24 Task τ 3 raises the sys ceiling Π to p 1 Task τ 2 cannot start because p 2 < Π = p 1 Task τ 1 cannot start because p 1 = Π = p 1 When task τ 3 unlocks, the sys ceiling goes down, and all other tasks can start executing Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 54 / 67

Stack Resource Policy: properties SRP has several useful properties: A task can be blocked (waiting for a resource) at most once, at the begining of its execution; There are no deadlocks; Simple implementation (no priority inheritance). Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 55 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 56 / 67

Data communications Most common shared resource in a real-time system: shared data; Shared data: a task (called consumer) requires data produced by another task (called producer) to perform its computations; Register-based communication: Consume the last value produced; Semantics varies depending on execution order; No impact on task order; Often used in the automotive domain. Causal communication: Producer must end before start of consumer; Deterministic semantics; Used in avionics systems; Introduces precedence constraints. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 57 / 67

Precedence constraints Representation: A Directed Acyclic Graph, with vertex=task, edge=precedence (why a DAG?) Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 58 / 67

Precedence constraints Representation: A Directed Acyclic Graph, with vertex=task, edge=precedence (why a DAG?); τ i τ j : τ i must end before τ j starts; When T i = T j : simple precedence constraint, τ i.p τ j.q for all p, q; When T i T j : extended precedence constraint, not all τ i.p τ j.q does not hold for all p, q. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 58 / 67

Extended precedence constraints: example Longitudinal flight control system of an aircraft: Inputs: current surface angle, current vertical speed, current altitude, altitude required by the pilot; Outputs: control surfaces; Several multi-rate computation chains. period = 60 ms period = 40 ms period = 30 ms required altitude (r h) Altitude Hold Law (hhl) observed altitude (o h) Altitude Filter (hf ) required vertical speed (r vz) Vz Control Law (vzl) required angle (r angle) observed vertical speed (o vz) Elevator Control Law (EL) observed angle Elevator Filter (EF ) Vz Filter (vzf ) (o angle) order angle vz altitude (h) Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 59 / 67

Some communication patterns Extended precedence constraints usually follow repetitive patterns; Repetition period=hp. τ i τ i τ i τ i τ i τ i τ i τ i τ j τ j (a) Sampling, at earliest τ j τ j τ j τ j τ j τ j (b) Selection, at latest τ i τ i τ i τ i τ i τ i τ i τ i τ j (c) Array gathering τ j τ j τ j τ j τ j τ j τ j (d) Array scattering Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 60 / 67

Precedence encoding, simple precedence constraints A simple clever technique to schedule dependent tasks: 1 Encode τ i τ j in real-time attributes as follows: D i = min(d i, min τj succs(τ i )(D j C j )) P i > P j ; Anyway, τ i must end early enough for τ j to end before D j ; O j = max(o j, max τi preds(τ j )(O i )) τ j cannot start before τ i is released. 2 Resulting problem Original problem; 3 Schedule encoded task set with a deadline-based scheduler; Optimal policy with DM/EDF. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 61 / 67

Precedence encoding, extended precedence constraints τ i τ i τ i τ i τ j τ j S 1 = {(O i = 0, C i = 2, D i = T i, T i = 4), (O j = 0, C j = 4, D j = 6, T j = 8)} τ i τ j ; D i.n = 2 for n N: not schedulable (EDF); Di.n = 2 for n 2N and D i.n = 4 for n 2N + 1: schedulable (EDF); Compute (periodic) job deadline patterns. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 62 / 67

Scheduling anomalies No anomalies with precedence constraints; Precedence constraint enforces relative order of τ i and τ j. τ 1 τ 2 τ 3 τ 1 τ 2 τ 3 (e) Reminder: schedulability analysis (f) Reminder: anomaly τ 1 τ 2 τ 3 (g) τ 1.1 τ 3.0 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 63 / 67

Priority inversion No priority inversion with precedence encoding; Precedence encoding deadline inheritance priority inheritance. τ 1 τ 2 τ 3 τ 1 τ 2 τ 3 (h) Reminder: priority inversion (i) Encoding: no priority inversion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 64 / 67

Outline 1 Real-time model 2 Scheduling 3 Fixed-task priority 4 Fixed-job priority 5 Shared resources 6 Data-dependencies 7 Conclusion Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 65 / 67

Summary To be a proficient real-time developper (on a mono-processor platform) you must be able to: Design the software architecture of a real-time system: Choose task periods; Evaluate the impact of deadline misses. Program the resulting real-time task set: Define and invoke the different tasks; Pay attention to shared resources; Implement task communications/synchronizations Choose the correct scheduling policy; Test the schedulability of the task set. Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 66 / 67

Acknowledgements This presentation borrows elements from: Emmanuel GROLLEAU (LIAS/ISAE-ENSMA), Ordonnancement et ordonnançabilité monoprocesseur, Ecole d Eté Temps Réel (ETR 2011), Brest, 2011 Giuseppe LIPARI (Univ. Lille 1), Real-time scheduling: from hard to soft, Ecole d Eté Temps Réel (ETR 2015), Rennes, 2015 Julien Forget (Université Lille 1) Uniprocessor real-time scheduling ETR 2017 67 / 67