Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
First Claim
Patent Images
1. The method of allowing a plurality of processing threads to be executed by one or more processing units, wherein the steps comprise:
- (a) assigning each of said processing threads one of four state values, said state values being selected from “
Currently Executing”
, “
Ready”
, “
Suspended”
, and “
Suspended-waiting”
;
(b) placing all threads which have been assigned a state value of “
Ready”
into a “
Ready Queue”
, said “
Ready Queue”
having an input and an output, said “
Ready”
threads being placed into the “
Ready Queue”
input in the order which threads are assigned a “
Ready”
state value first in time;
(c) placing all threads which have been assigned a state value of “
Suspended”
into a “
Suspended Queue”
, said “
Suspended Queue”
having an input and an output, said “
Suspended”
threads being placed into the “
Suspended Queue”
input in the order which threads are assigned the “
Suspended”
state value first in time;
(d) placing all threads which have been assigned a state value of “
Suspended-waiting”
into a “
Suspended-waiting Queue”
, said “
Suspended-waiting Queue”
having an input and an output, said “
Suspended-waiting”
threads being placed into the “
Suspended-waiting Queue”
input in the order which threads are assigned the “
Suspended-waiting”
state value first in time;
(e) executing one or more threads which are assigned the state value of “
Currently Executing”
on said processing units until said threads under execution are changed to one of said state values of “
Ready”
, “
Suspended”
, and “
Suspended-waiting”
;
(f) changing the state of the oldest waiting thread in the “
Ready Queue”
to “
Currently Executing” and
executing this thread on said processing units, thereby allowing threads queued in the “
Ready Queue”
to be executed in a first-in first-out manner;
(g) assigning a state value of “
Ready”
to a thread in the “
Suspended”
queue and placing that thread into the “
Ready Queue”
input upon explicit request by a currently-executing thread; and
(h) assigning a state value of “
Ready”
to a thread in the “
Suspended-waiting Queue”
, and placing that thread into the “
Ready Queue”
input upon occurrence of a pre-defined trigger event.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention relates to embedded processing systems used for industrial, commercial, and medical automated systems in which microprocessors or digital signal processors are employed to perform a plurality of distinct tasks based on real-time events and conditions. In particular, this invention provides an efficient processing system and environment in which a variety of application threads may share the processing bandwidth and system resources cooperatively and efficiently, with minimized coupling of the application threads to each other and system resource control details.
-
Citations
5 Claims
-
1. The method of allowing a plurality of processing threads to be executed by one or more processing units, wherein the steps comprise:
-
(a) assigning each of said processing threads one of four state values, said state values being selected from “
Currently Executing”
, “
Ready”
, “
Suspended”
, and “
Suspended-waiting”
;
(b) placing all threads which have been assigned a state value of “
Ready”
into a “
Ready Queue”
, said “
Ready Queue”
having an input and an output, said “
Ready”
threads being placed into the “
Ready Queue”
input in the order which threads are assigned a “
Ready”
state value first in time;
(c) placing all threads which have been assigned a state value of “
Suspended”
into a “
Suspended Queue”
, said “
Suspended Queue”
having an input and an output, said “
Suspended”
threads being placed into the “
Suspended Queue”
input in the order which threads are assigned the “
Suspended”
state value first in time;
(d) placing all threads which have been assigned a state value of “
Suspended-waiting”
into a “
Suspended-waiting Queue”
, said “
Suspended-waiting Queue”
having an input and an output, said “
Suspended-waiting”
threads being placed into the “
Suspended-waiting Queue”
input in the order which threads are assigned the “
Suspended-waiting”
state value first in time;
(e) executing one or more threads which are assigned the state value of “
Currently Executing”
on said processing units until said threads under execution are changed to one of said state values of “
Ready”
, “
Suspended”
, and “
Suspended-waiting”
;
(f) changing the state of the oldest waiting thread in the “
Ready Queue”
to “
Currently Executing” and
executing this thread on said processing units, thereby allowing threads queued in the “
Ready Queue”
to be executed in a first-in first-out manner;
(g) assigning a state value of “
Ready”
to a thread in the “
Suspended”
queue and placing that thread into the “
Ready Queue”
input upon explicit request by a currently-executing thread; and
(h) assigning a state value of “
Ready”
to a thread in the “
Suspended-waiting Queue”
, and placing that thread into the “
Ready Queue”
input upon occurrence of a pre-defined trigger event.- View Dependent Claims (2, 3, 4, 5)
-
Specification