Preemptive operating system without context switching
First Claim
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.
2 Assignments
0 Petitions
Accused Products
Abstract
A device, such as a constrained device that includes a processing device and memory, schedules user-defined independently executable functions to execute from a single stack common to all user-defined independently executable functions according to availability and priority of the user-defined independently executable functions relative to other user-defined independently executable functions and preempts currently running user-defined independently executable function by placing the particular user-defined independently executable function on a single stack that has register values for the currently running user-defined independently executable function.
-
Citations
15 Claims
-
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 Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method executed in a computing system that comprises a processor and a memory, the method comprising:
-
scheduling by the processor in the computing system, 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; executing by the processor in the computing system, an idle root function, when none of the user-defined independently executable root functions are executing; changing by the processor in the computing system, 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; servicing by the processor in the computing system, 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; determining by the processor in the computing system, 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 saving by the processor in the computing system, 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 Dependent Claims (8, 9, 10, 11)
-
-
12. A constrained device comprises:
-
a processor device, configured to; schedule user-defined independently executable root functions that have plural execution status states to execute by the processor device 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 root executable 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 Dependent Claims (13, 14, 15)
-
Specification