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
  • Why multicore?
  • Problems and Challenges
  • But ...
  • Some problems and challenges include:
  • The WCET problem
  • Example: impact on WCET
  • Other sources of WCET growth
  • Impact on WCET distribution
  1. Multiprocessor Scheduling, V1.2

Introduction

PreviousProfilingNextDefinitions, Assumptions and Scheduling Model

Last updated 2 years ago

Why multicore?

Multicore systems are becoming increasingly popular for developing RT systems. Why?

  • For years processing power increases arose (mainly) from using higher clock frequencies.

  • Higher clock frequencies and smaller transistors lead to higher dynamic and static power consumption.

  • Chip temperature eventually reached levels beyond the capability of cooling systems.

... and the demand for processing power in real-time applications never ceased to increase ...

Problems and Challenges

But ...

Moving/developing applications to multicore platforms is not simple nor straightforward.

Simple use of sequential languages hides the intrinsic concurrency that must be exploited to allow benefiting from the hardware redundancy.

Programmers have to take approaches that allow to split the code in segments that can be executed in parallel, on different cores (special languages, annotations, ...).

Some problems and challenges include:

  • How to split the code into segments/jobs that can be executed in parallel?

  • How to allocate code segments to different cores?

  • How to assess the schedulability on multicore platforms?

  • How to handle dependencies?

  • How to cope with the impact of shared resources on the WCET.

The WCET problem

WCET is fundamental for RT analysis.

Existing RT analysis assumes that the WCET of a task is constant when it is executed alone or together with other tasks.

While this assumption is reasonable for single-core chips, it is NOT true for multicore chips!

Example: Impact of shared resources on the WCET of code on an 8-core platform, by Lockheed Martin Space Systems.

Shared resources include main memory, memory bus, cache, etc.

Example: impact on WCET

Reasons for the impact on the WCET

In a single core system, concurrent tasks are sequentially executed on the processor.

  • Access to physical resources is implicitly serialized. E.g., two tasks can never cause a contention for a simultaneous memory access.

In a multicore platform, different tasks can run simultaneously on different cores.

  • several conflicts can arise while accessing physical resources.

Important issue, as existing RT analysis assumes that WCET is constant an known!

Cache in multicore systems

L3 cache is typically shared by all cores ⇒ cache conflicts.

In multicore systems, L1 and L2 caches have the same problem seen in single-core systems.

L3 cache lines can also be evicted by applications running on different cores.

Possible approaches to attenuate the impact include e.g. partition the last level cache to simulate the cache architecture of a single-core chip. But the size of each partition becomes small...

Other sources of WCET growth

Similar situation with access to main memory, I/O devices, etc.

Despite largely out of the control of the programmer, these issues have a significant impact on the scheduling strategies, as we will see!

Impact on WCET distribution

In summary, the WCET uncertainty get much worse in Multicore systems!