Notes - MIECT
Sistemas Operativos E De Tempo-real
Notes - MIECT
Sistemas Operativos E De Tempo-real
  • Sistemas Operativos e de Tempo-real
  • Basic Concepts About Real-Time Systems
    • Preliminaries
    • Definitions
    • Objective of the Study of RTS
    • Requirements of Real-Time Systems
  • Real Time Model
    • Real Time Model
    • Temporal Control
    • Task states and execution
    • Kernel/RTOS Architecture
      • Time Management Functions
    • Examples of RTOS
  • Practical Class 01
    • Real-Time Services in Linux
    • Using the Linux real-time services
  • Scheduling Basics
    • Basic concepts
    • Scheduling Algorithms
      • Basic algorithms
    • Static Cyclic Scheduling
    • Exercise
  • Fixed Priority Scheduling
    • Online scheduling with fixed priorities
    • Schedulability tests based on utilization
      • Deadline Monotonic Scheduling DM
    • Response-time analysis
  • Practical Class 2
    • Xenomai brief introduction
    • API
    • Developing an application
  • Dynamic Priority Scheduling
    • On-line scheduling with dynamic priorities
    • Analysis: CPU utilization bound
    • Analysis: CPU Load Analysis
    • Other deadline assignment criteria
  • Exclusive Access to Shared Resources
    • The priority inversion problem
    • Techniques for allowing exclusive access
    • Priority Inheritance Protocol
    • Priority Ceiling Protocol
    • Stack Resource Policy
    • Notes
  • Aperiodic Servers
    • Joint scheduling of periodic and aperiodic tasks
    • Aperiodic Servers
    • Fixed Priority Servers
    • Dynamic Priority Servers
  • Limited preemption, release jitter and overheads
    • Non-preemptive scheduling
    • Impact of Release Jitter
    • Accounting for overheads
    • Considerations about the WCET
  • Profiling and Code Optimization
    • Code optimization techniques
      • CPU independent optimization techniques
      • Cache impact
      • Optimization techniques dependent on memory architecture
      • Architecture-dependent optimization techniques
    • Profiling
  • Multiprocessor Scheduling, V1.2
    • Introduction
    • Definitions, Assumptions and Scheduling Model
    • Scheduling for Multicore Platforms
    • Task allocation
Powered by GitBook
On this page
  • EDD - Earliest Due Date
  • (Jackson, 1955)
  • Exercise
  • EDF - Earliest Deadline First
  • (Liu and Layland, 1973; Horn, 1974)
  • Exercise
  • BB – Branch and Bound
  • (Bratley, 1971)
  • Exercise
  • Periodic task scheduling
  • Online
  • Offline
  1. Scheduling Basics
  2. Scheduling Algorithms

Basic algorithms

PreviousScheduling AlgorithmsNextStatic Cyclic Scheduling

Last updated 2 years ago

EDD - Earliest Due Date

(Jackson, 1955)

Single instance tasks fired synchronously:

  • J = Ji(Ci, (ai = 0,)Di), i = 1..n

Executing the tasks by non-decreasing deadlines minimizes the maximum lateness:

  • (Lmax(J) = maxi(fi − di))

Complexity:

  • O(n.log(n))

Exercise

J = {J1(1, 5), J2(2, 4), J3(1, 3), J4(2, 7)}

Determine the maximum lateness.

Solution

Lmax,EDD(J) = -1

EDF - Earliest Deadline First

(Liu and Layland, 1973; Horn, 1974)

Single instance or periodic, asynchronous arrivals, preemptive:

  • J = Ji (Ci , ai , Di ), i = 1..n

Always executing the task with the shorter absolute deadline minimizes the maximum latency:

  • Lmax(J) = maxi(fi − di)

Complexity:

  • O(n.log (n))

  • Optimal among all scheduling algorithms of this class.

Exercise

J = {J1(1, 0, 5), J2(2, 1, 5), J3(1, 2, 3), J4(2, 1, 8)}

Determine the maximum lateness.

Solution

Lmax,EDD(J) = -2

BB – Branch and Bound

(Bratley, 1971)

Single instance or periodic tasks, asynchronous arrivals, non-preemptive:

  • J = Ji (Ci , ai , Di ), i = 1..n

Based on building an exhaustive search in the permutation tree space, finding all possible execution sequences:

Complexity:

  • O(n!)

Exercise

J = {J1(1, 0, 5), J2(2, 1, 3), J3(1, 2, 4), J4(2, 1, 7)}

Periodic task scheduling

Periodic tasks

  • The release/activation instants are known a priori

  • Γ = {τi (Ci , ∅i , Ti , Di )}, i = {1...n}

  • ai,k = ∅i + (k − 1) · Ti , k = 1, 2, ...

Thus, in this case the schedule can be built:

Online

Tasks to execute are selected as they are released and finished, during normal system operation.

Offline

The task execution order is computed before the system enters in normal operation and stored in a table, which is used at runtime time to execute the tasks (static cyclic scheduling).