Claims
- 1. A portable thread environment comprising:
an application programming interface configured to support multiple application program tasks with each task comprised of one or more threads; host adaptation logic for communicatively interfacing said tasks and threads with a host processing environment; and a scheduler configured to determine an execution order of said one or more threads based on one or more execution variables.
- 2. The portable thread environment as in claim 1 further comprising:
message passing logic configured in said application programming interface to provide communication between a first thread and a second thread.
- 3. The portable thread environment as in claim 1 wherein one of said execution variables is a thread's priority level.
- 4. The portable thread environment as in claim 3 wherein another of said execution variables is a point in time when said thread was requested relative to other threads.
- 5. The portable thread environment as in claim 2 wherein said first thread and said second thread are each from the same task.
- 6. The portable thread environment as in claim 2 wherein said first thread and said second thread are each from different tasks.
- 7. The portable thread environment as in claim 6 wherein said different tasks are each from a different application program.
- 8. A method for porting an application from a first host environment to a second host environment, said second host environment having application-specific hardware comprising:
modeling functions supported by said application-specific hardware in the form of a first set of tasks within said application; removing said first set of tasks from said application; and loading said application without said first set tasks to said second host environment, said application-specific hardware providing said functions provided by said first set of tasks in said first host environment.
- 9. The method as in claim 8 further comprising:
modeling functions not supported by said application-specific hardware in the form of a second set of tasks.
- 10. The method as in claim 9 further comprising:
configuring said first set of tasks and second set of tasks to communicate by passing a set of messages in said first host environment, wherein one or more of said set of messages are also used to provide communication between said first set of tasks and said application-specific hardware in said second host environment.
- 11. A portable application environment comprising:
a first group of tasks providing a first group of functions within said portable application environment; a second group of tasks providing a second group of functions within said portable application environment; said first set of tasks removeable from said portable application environment when said portable application environment is loaded on a host having application-specific hardware for providing said first group of functions.
- 12. The portable thread environment as in claim 11 wherein said first set of tasks and said second set of tasks communicate by passing messages in said first host environment, wherein one or more of the same messages also provide communication between said first set of tasks and said application-specific hardware in said second host environment.
- 13. The portable application environment as in claim 11 wherein each task is comprised of one or more threads.
- 14. The portable application environment as in claim 13 wherein said threads communicate to other threads and tasks by passing messages.
- 15. The portable application environment as in claim 11 wherein said application-specific hardware is an application-specific integrated circuit (“ASIC”).
- 16. The portable application environment as in claim 12 further comprising:
scheduling logic for scheduling transmission of said messages between said tasks and between said tasks and said application-specific hardware.
- 17. The portable application environment as in claim 16 further comprising:
one or more queues for temporarily storing messages before they are delivered.
- 18. The portable application environment as in claim 17 wherein said queues include:
a priority queue for storing a list of threads scheduled by said scheduling logic for immediate execution.
- 19. The portable application environment as in claim 18 wherein said scheduling logic schedules threads for execution in said priority queue based on priority of said threads and/or temporal order in which said threads were received.
- 20. A portable thread environment comprising:
application programming interface means to support multiple application program tasks with each task comprised of one or more threads; host adaptation means to communicatively interface said tasks and threads with a host processing environment; and scheduler means configured to determine an execution order of said one or more threads based on one or more execution variables.
- 21. The portable thread environment as in claim 20 further comprising:
message passing means configured in said application programming interface means to provide communication between a first thread and a second thread.
- 22. The portable thread environment as in claim 20 wherein one of said execution variables is a thread's priority level.
- 23. The portable thread environment as in claim 22 wherein another of said execution variables is a point in time when said thread was requested relative to other threads.
- 24. The portable thread environment as in claim 21 wherein said first thread and said second thread are each from the same task.
- 25. The portable thread environment as in claim 21 wherein said first thread and said second thread are each from different tasks.
- 26. The portable thread environment as in claim 25 wherein said different tasks are each from a different application program.
- 27. The portable thread environment as in claim 20 further comprising:
queueing means configured to store messages transmitted between said one or more threads.
Parent Case Info
[0001] This application claims the benefit of U.S. Provisional Application No. 60/203,178, filed May 8, 2000.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60203178 |
May 2000 |
US |