×

Preemptive operating system without context switching

  • US 10,402,221 B2
  • Filed: 12/28/2017
  • Issued: 09/03/2019
  • Est. Priority Date: 12/30/2014
  • Status: Active Grant
First Claim
Patent Images

1. A computer program product tangibly stored on a computer readable hardware storage device, the computer program product for managing constrained computing devices, the computer program product comprising instructions to cause a processor to:

  • schedule user-defined independently executable root functions that have plural execution status states to execute by the processor from a single stack common to all of the user-defined independently executable root functions according to availability and priority of the user-defined independently executable root functions relative to other user-defined independently executable root functions;

    execute an idle root function when none of the user-defined independently executable root functions are executing;

    change a state of any of the user-defined independently executable root functions in a first state that is a run in a next pass state to a second state that is a ready to run state, wherein the user-defined independently executable root functions are each configured with a maximum allowed execution time;

    service a watchdog timer when the idle root function associated with a lowest possible priority is serviced forcing execution of all of the user-defined independently executable root functions that are in the ready to run state within time constraints of the watchdog timer, wherein the time constraints are determined at a build time;

    determine upon invocation of one of the user-defined independently executable root functions a new execution time corresponding to a particular maximum allowed execution time of the one of the user-defined independently executable root functions added to a current time; and

    save the new execution time corresponding to the particular maximum allowed execution time of the one of the user-defined independently executable root functions added to the current time with a particular state of the one of the user-defined independently executable root functions on the single stack.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×