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
  • Pros
  • Cons
  • Rules for priority assignment to tasks
  • Schedulability tests
  1. Fixed Priority Scheduling

Online scheduling with fixed priorities

PreviousExerciseNextSchedulability tests based on utilization

Last updated 2 years ago

The schedule is built while the system operates normally (online) and is based on a static criterium (priority).

The ready queue is sorted by decreasing priorities. Executes first the task with the highest priority.

If the system is preemptive, whenever a task job arrives in the ready queue, if it has higher priority than the one currently executing, it starts executing while the latter one is moved to the ready queue.

Complexity: O(n)

Pros

(with respect to Static Cyclic Scheduling)

  • Scales.

  • Changes in the task set are immediately taken into account by the scheduler.

  • Sporadic tasks are easily accommodated.

  • Deterministic behavior on overloads.

    • Tasks are affected by priority level (lower priority are the first ones).

Cons

(with respect to Static Cyclic Scheduling)

  • More complex implementation (w.r.t. static cyclic scheduling).

  • Higher execution overhead (scheduler + dispatcher).

  • On overloads (e.g. due to SW errors or unpredicted events) higher priority tasks may block the execution of lower priority ones

Rules for priority assignment to tasks

Inversely proportional to the period (RM – Rate Monotonic).

  • Optimal among fixed priority scheduling criteria if D=T.

Inversely proportional to the deadline (DM – Deadline Monotonic).

  • Optimal if D ≤ T.

Proportional to the task importance.

  • Typically reduces the schedulability – not optimal.

  • But very common is industry cases – e.g. automotive CAN.

Schedulability tests

As the schedule is built online it is fundamental to know a priori if a given task set is schedulable (i.e., its temporal requirements are met).

There are two basic types of schedulability tests:

  • Based on CPU utilization rate.

  • Based on response time.