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
  • The priority inversion problem in not “academic”!
  • Shared resources with exclusive access
  • Tasks: the Blocked state
  • The priority inversion phenomenon
  1. Exclusive Access to Shared Resources

The priority inversion problem

PreviousOther deadline assignment criteriaNextTechniques for allowing exclusive access

Last updated 2 years ago

The priority inversion problem in not “academic”!

What really happened to the software on the Mars Pathfinder spacecraft?

(July 4th 1997)... the Mars Pathfinder landed to a media fanfare and began to transmit data back to Earth. Days later and the flow of information and images was interrupted by a series of total systems resets. ...

Shared resources with exclusive access

Tasks: the Blocked state

When a running task tries to access a shared resource (e.g. a buffer, a communication port) that is already taken (i.e. in use) by another task, it gets blocked . When the resource becomes free, the blocked task becomes again ready for execution. To handle this scenario the state diagram is updated as follows:

The priority inversion phenomenon

On a real-time system with preemption and independent tasks, the highest priority ready task is always the one in execution.

However, when tasks share resources with exclusive access, the case is different. An higher priority task may be blocked by another ( lower priority ) task, whenever this latter one owns a resource needed by the first one. In such scenario it is said that the higher priority task is blocked.

When the blocking task (and eventually other tasks with intermediate priority) execute, there is a priority inversion.

The priority inversion is an unavoidable phenomenon in the presence of shared resources with exclusive access.

However, in real-time systems, it is of utmost importance to bound and quantify its worst-case impact, to allow reasoning about the schedulability of the task set.

Therefore, the techniques used to guarantee the exclusive access to the resources (synchronization primitives) must restrict the duration of the priority inversion and be analyzable , i.e., allow the quantification of the maximum blocking time that each task may experience in any shared resource.