[Bug 1647] New: Modular SuperCore Scheduler
bugzilla-daemon at rtems.org
bugzilla-daemon at rtems.org
Fri Jul 30 18:25:19 UTC 2010
https://www.rtems.org/bugzilla/show_bug.cgi?id=1647
Summary: Modular SuperCore Scheduler
Product: RTEMS
Version: HEAD
Platform: All
OS/Version: RTEMS
Status: NEW
Severity: normal
Priority: P3
Component: cpukit
AssignedTo: joel.sherrill at oarcorp.com
ReportedBy: giddyup44 at yahoo.com
This PR introduces the Modular SuperCore Scheduler, the core of my Google
Summer of Code project. This PR refactors the current scheduler to maintain
the functionality of the priority scheduler while encapsulating the scheduling
data structures and decision points in a new Scheduler Handler. Concurrent
with the new Scheduler Handler is a new Ready Queue Handler, which is primarily
treated as a sub-package of the Scheduler, but can be used directly.
The interface to the scheduling subsystem is now simply and concisely
represented as:
_Scheduler_Schedule( Scheduler_Control * )
_Scheduler_Yield( void )
_Scheduler_Block( Scheduler_Control *, Thread_Control * )
_Scheduler_Unblock( Scheduler_Control *, Thread_Control * )
_Scheduler_Sched_allocate( Scheduler_Control *, Thread_Control * )
_Scheduler_Sched_free( Scheduler_Control *, Thread_Control * )
_Scheduler_Sched_update( Scheduler_Control *, Thread_Control * )
The final three functions are used by the scheduler to manage per-thread
scheduling data that is stored in the Thread_Control block. All of these
functions make a call to a jump table, where a particular scheduler's
implementation of the function has been registered by the scheduler's
initialization routine. The initialization routine is registered in confdefs.h
and is based on user configuration. The use of a jump table allows for
flexible, modular scheduling that will only include the scheduler code if a
user application is configured to use the scheduler. The default scheduler is
the current priority-based scheduling mechanism.
More information about this project can be found on the Google Code page:
http://code.google.com/p/rtems-sched/
--
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the bugs
mailing list