Task scheduler system and method for managing tasks in an embedded system without a real time operating system
A task scheduler system and method for managing tasks in an embedded system executes both unscheduled and scheduled tasks in their respective queues in a prescribed order without dependence on a Real Time Operating System (RTOS).
1 . A method for managing tasks in an embedded system, the method comprising:
executing enabled unscheduled high priority tasks;
executing scheduled high priority tasks while yielding execution priority of the scheduled high priority tasks to the enabled unscheduled high priority tasks; and
executing scheduled low priority tasks while yielding execution priority of the scheduled low priority tasks to the enabled unscheduled high priority tasks and the scheduled high priority tasks,
wherein the executing of enabled unscheduled high priority tasks, the executing of scheduled high priority tasks and the executing of scheduled low priority tasks are performed without a Real Time Operating System in the embedded system.
2 . The method of claim 1 wherein the executing of scheduled high priority tasks includes repeating the executing of enabled unscheduled high priority tasks after each scheduled high priority task is executed.
3 . The method of claim 1 wherein the executing of scheduled low priority tasks includes repeating the executing of enabled unscheduled high priority tasks and the executing of scheduled high priority tasks after each scheduled low priority task is executed.
4 . The method of claim 1 further comprising executing enabled unscheduled low priority tasks while yielding execution priority of the enabled unscheduled low priority tasks to the enabled unscheduled high priority tasks and to the scheduled high priority tasks.
5 . The method of claim 4 wherein the executing of enabled unscheduled low priority tasks includes repeating the executing of enabled unscheduled high priority tasks and the executing of scheduled high priority tasks after each enabled unscheduled low priority task is executed.
6 . The method of claim 1 wherein each of the executing of enabled unscheduled high priority tasks, the executing of scheduled high priority tasks and the executing of scheduled low priority tasks includes using a set of pointers to execute a particular task wherein each pointer points to a memory address of the particular task.
7 . The method of claim 1 wherein the executing of enabled unscheduled high priority tasks, the executing of scheduled high priority tasks and the executing of scheduled low priority tasks are performed by a processing unit running a task scheduler computer program stored in memory of the embedded system, the task scheduler computer program requiring less than one thousand bytes of memory space in the embedded system.
8 . The method of claim 7 wherein the task scheduler computer program requires less than seven hundred bytes of memory space in the embedded system.
9 . A task scheduler system for managing tasks in an embedded system, the task scheduler system comprising:
an unscheduled high priority task queue containing unscheduled high priority tasks;
a scheduled high priority task queue containing scheduled high priority tasks;
a scheduled low priority task queue containing scheduled low priority tasks; and
a task scheduler operatively connected to the unscheduled and scheduled task queues, the task scheduler being configured to execute enabled unscheduled high priority tasks, to execute the scheduled high priority tasks while yielding execution priority of the scheduled high priority tasks to the enabled unscheduled high priority tasks, and to execute the scheduled low priority tasks while yielding execution priority of the scheduled low priority tasks to the enabled unscheduled high priority tasks and the scheduled high priority tasks, the task scheduler being further configured to perform execution of tasks without dependence on a Real Time Operating System in the embedded system.
10 . The task scheduler system of claim 9 wherein the unscheduled high priority tasks, the scheduled high priority tasks and the scheduled low priority tasks are sets of pointers in the respective queues wherein each pointer points to a memory address of a particular task.
11 . The task scheduler system of claim 9 wherein the task scheduler is configured to repeat execution of enabled unscheduled high priority tasks after each scheduled high priority task is executed.
12 . The task scheduler system of claim 9 wherein the task scheduler is configured to repeat execution of enabled unscheduled high priority tasks and scheduled high priority tasks after each scheduled low priority task is executed.
13 . The task scheduler system of claim 9 further comprising an unscheduled low priority task queue containing unscheduled low priority tasks, and wherein the task scheduler is further configured to execute enabled unscheduled low priority tasks while yielding execution priority of the enabled unscheduled low priority tasks to the enabled unscheduled high priority tasks and to the scheduled high priority tasks.
14 . The task scheduler system of claim 13 wherein the task scheduler is configured to repeat execution of enabled unscheduled high priority tasks and the scheduled high priority tasks after each enabled unscheduled low priority task is executed.
15 . The task scheduler system of claim 9 wherein the task scheduler requires less than one thousand bytes of memory space in the embedded system.
16 . An embedded system comprising:
memory containing a task scheduler computer program; and
processing unit configured to run the task scheduler computer program without a Real Time Operating System so that the task scheduler computer program performs method steps for managing tasks, the method steps comprising:
executing enabled unscheduled high priority tasks;
executing scheduled high priority tasks while yielding execution priority of the scheduled high priority tasks to the enabled unscheduled high priority tasks; and
executing scheduled low priority tasks while yielding execution priority of the scheduled low priority tasks to the enabled unscheduled high priority tasks and the scheduled high priority tasks.
17 . The embedded system of claim 16 wherein the executing of scheduled high priority tasks includes repeating the executing of enabled unscheduled high priority tasks after each scheduled high priority task is executed.
18 . The embedded system of claim 16 wherein the method steps further comprises executing enabled unscheduled low priority tasks while yielding execution priority of the enabled unscheduled low priority tasks to the enabled unscheduled high priority tasks and to the scheduled high priority tasks.
19 . The embedded system of claim 16 wherein each of the executing of enabled unscheduled high priority tasks, executing of scheduled high priority tasks and executing of scheduled low priority tasks includes using a set of pointers to execute a particular task wherein each pointer points to a memory address of the particular task.
20 . The embedded system of claim 16 wherein the task scheduler computer program requires less than one thousand bytes of memory space in the embedded system.