RTEMS
5.0.0
|
Files | |
file | schedulersimplesmp.h |
Simple SMP Scheduler API. | |
file | schedulersimplesmp.c |
Simple SMP Scheduler Implementation. | |
Data Structures | |
struct | Scheduler_simple_SMP_Context |
Macros | |
#define | SCHEDULER_SIMPLE_SMP_MAXIMUM_PRIORITY 255 |
#define | SCHEDULER_SIMPLE_SMP_ENTRY_POINTS |
Entry points for the Simple SMP Scheduler. More... | |
Functions | |
void | _Scheduler_simple_SMP_Initialize (const Scheduler_Control *scheduler) |
void | _Scheduler_simple_SMP_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority) |
void | _Scheduler_simple_SMP_Block (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
void | _Scheduler_simple_SMP_Unblock (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
void | _Scheduler_simple_SMP_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
bool | _Scheduler_simple_SMP_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
void | _Scheduler_simple_SMP_Reconsider_help_request (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
void | _Scheduler_simple_SMP_Withdraw_node (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state) |
void | _Scheduler_simple_SMP_Add_processor (const Scheduler_Control *scheduler, Thread_Control *idle) |
Thread_Control * | _Scheduler_simple_SMP_Remove_processor (const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu) |
void | _Scheduler_simple_SMP_Yield (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
The Simple Priority SMP Scheduler allocates a processor for the processor count highest priority ready threads. The thread priority and position in the ready chain are the only information to determine the scheduling decision. Threads with an allocated processor are in the scheduled chain. After initialization the scheduled chain has exactly processor count nodes. Each processor has exactly one allocated thread after initialization. All enqueue and extract operations may exchange threads with the scheduled chain. One thread will be added and another will be removed. The scheduled and ready chain is ordered according to the thread priority order. The chain insert operations are O(count of ready threads), thus this scheduler is unsuitable for most real-time applications.
The thread preempt mode will be ignored.
#define SCHEDULER_SIMPLE_SMP_ENTRY_POINTS |
Entry points for the Simple SMP Scheduler.