[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