RTEMS CPU Kit with SuperCore  4.11.3
Modules | Files | Data Structures | Macros | Functions
Deterministic Priority SMP Scheduler

This is an implementation of the global fixed priority scheduler (G-FP). More...

Collaboration diagram for Deterministic Priority SMP Scheduler:

Modules

 Deterministic Priority Affinity SMP Scheduler
 This is an extension of the Deterministic Priority SMP Scheduler.
 

Files

file  schedulerprioritysmp.h
 Deterministic Priority SMP Scheduler API.
 
file  schedulerprioritysmpimpl.h
 Deterministic Priority SMP Scheduler API.
 
file  schedulerprioritysmp.c
 Deterministic Priority SMP Scheduler Implementation.
 

Data Structures

struct  Scheduler_priority_SMP_Context
 Scheduler context specialization for Deterministic Priority SMP schedulers. More...
 
struct  Scheduler_priority_SMP_Node
 Scheduler node specialization for Deterministic Priority SMP schedulers. More...
 

Macros

#define SCHEDULER_PRIORITY_SMP_ENTRY_POINTS
 Entry points for the Priority SMP Scheduler. More...
 

Functions

void _Scheduler_priority_SMP_Initialize (const Scheduler_Control *scheduler)
 
void _Scheduler_priority_SMP_Node_initialize (const Scheduler_Control *scheduler, Thread_Control *thread)
 
void _Scheduler_priority_SMP_Block (const Scheduler_Control *scheduler, Thread_Control *thread)
 
Thread_Control_Scheduler_priority_SMP_Unblock (const Scheduler_Control *scheduler, Thread_Control *thread)
 
Thread_Control_Scheduler_priority_SMP_Change_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it)
 
Thread_Control_Scheduler_priority_SMP_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *needs_help, Thread_Control *offers_help)
 
void _Scheduler_priority_SMP_Update_priority (const Scheduler_Control *scheduler, Thread_Control *thread, Priority_Control new_priority)
 
Thread_Control_Scheduler_priority_SMP_Yield (const Scheduler_Control *scheduler, Thread_Control *thread)
 

Detailed Description

This is an implementation of the global fixed priority scheduler (G-FP).

It uses one ready chain per priority to ensure constant time insert operations. The scheduled chain uses linear insert operations and has at most processor count entries. Since the processor and priority count are constants all scheduler operations complete in a bounded execution time.

The thread preempt mode will be ignored.

Macro Definition Documentation

◆ SCHEDULER_PRIORITY_SMP_ENTRY_POINTS

#define SCHEDULER_PRIORITY_SMP_ENTRY_POINTS
Value:
{ \
_Scheduler_priority_SMP_Initialize, \
_Scheduler_default_Schedule, \
_Scheduler_priority_SMP_Yield, \
_Scheduler_priority_SMP_Block, \
_Scheduler_priority_SMP_Unblock, \
_Scheduler_priority_SMP_Change_priority, \
_Scheduler_priority_SMP_Ask_for_help, \
_Scheduler_priority_SMP_Node_initialize, \
_Scheduler_default_Node_destroy, \
_Scheduler_priority_SMP_Update_priority, \
_Scheduler_priority_Priority_compare, \
_Scheduler_default_Release_job, \
_Scheduler_default_Tick, \
_Scheduler_SMP_Start_idle \
SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY \
}

Entry points for the Priority SMP Scheduler.