Simple RunTime eXecutive (SRTX) software provides scheduling and publish/subscribe data transfer services. The scheduler allows dynamic allocation of real-time periodic and asynchronous tasks across homogeneous multi core/multiprocessor systems. Most real-time systems assign tasks to specific cores on an a priori basis. Allowing the operating system scheduler to determine the best allocation of threads is not a unique innovation. However, it is coupled with a deterministic publish/subscribe data transfer system that guarantees the tasks process data deterministically, regardless of the number of processor cores in the system.
Tasks within a rate group execute sequentially in priority order. A rate group is a set of processes that executes with the same periodic frequency. Serial execution within a rate group is accomplished by creating a semaphore for each rate group. A task in the rate group may only run when it has acquired the shared semaphore. Asynchronous tasks do not require a semaphore and can run at will, although they block pending on access to a resource.
A schedule presence parameter allows for the creation of multiple schedule profiles. A task may or may not be present in any given schedule profile. The scheduler only releases tasks for execution if the schedule presence bit is set within the task for the current schedule profile.