×

Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems

  • US 6,505,229 B1
  • Filed: 09/25/1998
  • Issued: 01/07/2003
  • Est. Priority Date: 09/25/1998
  • Status: Expired due to Fees
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.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×