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 functions to execute from a single stack common to all user-defined independently executable functions by the processor according to availability and priority of the user-defined independently executable functions relative to other user-defined independently executable functions, with the instructions to schedule further causing the processor to;
identify a particular user-defined independently executable function as ready to run, which user-defined independently executable functions is of higher priority than a user-defined independently executable function currently running;
execute a direct call to a wrap function that wraps the particular user-defined independently executable function;
preempt the currently running user-defined independently executable function by the instructions placing the particular wrapped user-defined independently executable function on the single stack that has register values for the currently running user-defined independently executable function, pushing down the state data of the currently running user-defined independently executable function lower in the stack;
execute the particular user-defined independently executable function; and
pop from the stack those register values of the particular user-defined independently executable function, after execution of the particular user-defined independently executable function.
1 Assignment
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
20 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 functions to execute from a single stack common to all user-defined independently executable functions by the processor according to availability and priority of the user-defined independently executable functions relative to other user-defined independently executable functions, with the instructions to schedule further causing the processor to; identify a particular user-defined independently executable function as ready to run, which user-defined independently executable functions is of higher priority than a user-defined independently executable function currently running; execute a direct call to a wrap function that wraps the particular user-defined independently executable function; preempt the currently running user-defined independently executable function by the instructions placing the particular wrapped user-defined independently executable function on the single stack that has register values for the currently running user-defined independently executable function, pushing down the state data of the currently running user-defined independently executable function lower in the stack; execute the particular user-defined independently executable function; and pop from the stack those register values of the particular user-defined independently executable function, after execution of the particular user-defined independently executable function. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method executed in a computing system that comprises processor and memory, the method comprising:
-
scheduling by a processor in the computing systems, 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; identifying by the processor a particular user-defined independently executable function as ready to run, which user-defined independently executable functions is of higher priority than a user-defined independently executable function currently running; directly calling a wrapper function that wraps the particular user-defined independently executable function; preempting by the processor, the currently running user-defined independently executable function by placing the particular wrapped user-defined independently executable function on the single stack that has register values for the currently running user-defined independently executable function, pushing down the state data of the currently running user-defined independently executable function lower in the stack; executing by the processor the particular user-defined independently executable function; and pushing up by the processor in the stack those register values of the current running user-defined independently executable function, after execution of the particular user-defined independently executable function. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A constrained device comprises:
-
a processor device, configured to; schedule by the processor 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 others of the user-defined independently executable functions, with the processor further configured to; identify a particular user-defined independently executable function as ready to run, which user-defined independently executable functions is of higher priority than a user-defined independently executable function currently running; directly call a wrapper function that wraps the particular user-defined independently executable function; preempt the currently running user-defined independently executable function by the instructions placing the particular wrapped user-defined independently executable function on the single stack that has register values for the currently running user-defined independently executable function, pushing down the state data of the currently running user-defined independently executable function lower in the stack; execute the particular user-defined independently executable function; and pop from the stack those register values of the particular user-defined independently executable function, after execution of the particular user-defined independently executable function. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification