IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0868641
(2010-08-25)
|
등록번호 |
US-8327374
(2012-12-04)
|
발명자
/ 주소 |
- Rhee, Stephen Jisoo
- Sin, Elaine Yee Ting
- Pardo-Castellote, Gerardo
- Thiebaut, Stefaan Sonck
- Joshi, Rajive
|
출원인 / 주소 |
- Real-Time Innovations, Inc.
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
33 |
초록
▼
Techniques for execution of multiple threads in a multithreaded computing programming environment are disclosed. The techniques are especially well suited for environments that use multilayered programming architecture where a higher layer can build on the functions provided by a lower layer where t
Techniques for execution of multiple threads in a multithreaded computing programming environment are disclosed. The techniques are especially well suited for environments that use multilayered programming architecture where a higher layer can build on the functions provided by a lower layer where the delay time is an important consideration. In one aspect, the conceptual notion of a “Worker” effectively serves to represent the thread-specific execution context for a thread of execution (“thread”) in a multithreaded computing environment. Another aspect, provides the notion of an Exclusion Area (EA) as logical lock that serves to protect shared resources in a multithreaded environment. The combination of the worker and EA are used to provide a powerful framework that, among other things, allows minimizing of the delay time.
대표청구항
▼
1. A programmatic method for developing and executing computer code in a multi-threaded computing environment with an API of functions and procedures where multiple threads of execution can access said computer code, said method comprising: defining a programmatic construct (a Worker) to provide an
1. A programmatic method for developing and executing computer code in a multi-threaded computing environment with an API of functions and procedures where multiple threads of execution can access said computer code, said method comprising: defining a programmatic construct (a Worker) to provide an execution context as part of the API of functions and procedures in a first computer code;providing through an application a first thread-specific execution context (a first Worker) as part of API parameters that the application passes when it calls functions and procedures in the first computer code, associated with a first thread of execution (a first thread) to the first computer code when said first thread is to execute said first computer code;executing said first computer code for said first thread of execution in accordance with said first thread-specific execution context, thereby allowing said first computer code to be executed for said first thread in said multi-threaded computing environment without having to effectively lock said first computer code for said first thread in order to prevent a second thread of execution from executing said first computer code while it is being executed by said first thread, wherein the first computer code uses the services and APIs provided by the specific execution context (first Worker) in order to access (read and write) memory variables used by said first computer code for its operation, thereby allowing the first computer code to execute using different memory areas depending on the first Worker that was passed as a parameter in the call. 2. A method as recited in claim 1, wherein said method further comprises: providing by the application a different second execution context (a second Worker) as part of the API parameters that it passes when it calls functions and procedures in the first computer code;said first computer code using said second execution context to access (read and write) memory variables to be used by said first computer code for its operation, thereby having the said computer code access different variables and memory from the ones it accessed when it was called with the first Worker as a parameter. 3. A method as recited in claim 2, wherein said first computer code is effectively executed for said first and second threads at the same time, each execution passing as a parameter a different Worker, thereby both executions simultaneously accessing different memory variables via their respective Workers. 4. A method as recited in claim 1, wherein execution of said first computer program code effectively invokes execution of a second computer code, andwherein said method further comprises: passing said first thread-specific execution context (first Worker), associated with said first thread of execution (first thread) to said second computer code when said second computer code is effectively invoked for execution by said first thread; andexecuting said second computer code for said first thread of execution in accordance with said first thread-specific execution context, thereby allowing said first thread to execute both of said first and second computer codes without having to effectively lock either one of said first and second computer codes. 5. A method as recited in claim 4, wherein said providing of said first thread-specific execution context (first Worker) comprises: effectively passing said first thread-specific execution context from said first computer code to said second computer code when execution of said first computer code effectively invokes execution of said second computer code. 6. A method as recited in claim 5, wherein said first computer code includes one or more of the following: a function, a method, a procedure, and a module; andwherein said passing of said first thread-specific execution context comprises: passing said first thread-specific execution context as a parameter to said function, method, procedure or module. 7. A method as recited in claim 6, wherein said parameter is designated to be a predetermined location with respect to any other parameter of said function, method, procedure or module. 8. A method as recited in claim 7, wherein said predetermined parameter is configured to be a first or a last parameter. 9. A method as recited in claim 1, wherein said first computer code includes one or more of the following: a function, a method, a procedure, and a module, andwherein said providing comprises passing said first thread-specific execution context as a parameter. 10. A method as recited in claim 1, wherein said first thread-specific execution context (first Worker) is associated with a first thread-specific-storage allocated for said first thread. 11. A method as recited in claim 1, wherein said first worker includes or is associated with one or more first worker-specific objects which can be effectively used when said first computer code is executed for said first thread. 12. The method, as recited in claim 1, wherein the Worker is initialized in an intermediate layer of code (middleware) based on an identity of the thread that makes the call into the middleware, such that upper layers of the software do not need to explicitly provide the worker parameter with which lower layers of the software receive this parameter separately constructed depending on the thread that makes the invocation. 13. A non-transitory computer readable medium storing computer code for development and execution in a multi-threaded computing environment with an API of functions and procedures where multiple threads of execution can access said computer code, said non-transitory computer readable medium comprising: a programmatic construct (a Worker) to provide an execution context as part of the API of functions and procedures in a first computer code;an application that provides a first thread-specific execution context (a first worker) as part of API parameters that the application passes when it calls functions and procedures in the first computer code, associated with a first thread of execution (a first thread) to the first computer code when said first thread is to execute said first computer code;a first operational computer code portion for execution and operable to receive and use the first thread-specific execution context (first Worker) associated with the first thread of execution (first thread) in order to execute said first operational computer code for said first thread when said first operational computer code portion is effectively activated (or invoked) for execution by said first thread of execution in said multi-threaded computing environment. 14. A non-transitory computer readable medium as recited in claim 13, wherein said non-transitory computer readable medium further comprises: a second operational computer code portion for execution and operable to receive and use said first thread-specific execution context (first Worker) associated with said first thread of execution (first thread) in order to execute said second operational code portion for said first thread when said second operational computer code portion is effectively activated (or invoked) for execution by said first thread of execution in said multi-threaded computing environment. 15. A non-transitory computer readable medium as recited in claim 14, wherein activation of said first operational computer code portion effectively activates said second operational computer code, andwherein said first thread-specific execution context (first Worker) is effectively passed from said first operational computer code portion to said second operational computer code. 16. A non-transitory computer readable medium as recited in claim 15, wherein said first and second operational computer code portions are logically arranged in a different layers arranged in a hierarchical order. 17. A non-transitory computer readable medium as recited in claim 16, wherein said first and second operational computer code portions collectively serve as an intermediary between a first and a second computing components. 18. A non-transitory computer readable medium as recited in claim 17, wherein said intermediary functions as middleware between said first and second components, wherein said first component is an application program or layer, and wherein said second component is one of more of the following: an operating system, hardware, virtual machine, and firmware. 19. A non-transitory computer readable medium as recited in claim 18, wherein said middleware is a data distribution system in a real-time computing environment. 20. A computer system for developing and executing computer code in a multi-threaded computing environment with an API of functions and procedures where multiple threads of execution can access said computer code, wherein said computer system defines a programmatic construct (a Worker) to provide an execution context as part of the API of functions and procedures in a first computer code, is operable to execute a first operational computer code for a first thread of execution in accordance with a first thread-specific execution context (Worker), provided through an application as part of API parameters that the application passes when it calls functions and procedures in the first operational computer code, that can be provided to first operational computer code when said first operational computer code is activated for execution by said first thread, thereby allowing said first operational computer code to be executed for said first thread in said multi-threaded computing environment without having to effectively lock said first operational computer code for said first thread in order to prevent a second thread of execution from executing said first operational computer code while it is being executed by said first thread, wherein the first computer code uses the services and APIs provided by the specific execution context (first Worker) in order to access (read and write) memory variables used by said first computer code for its operation, thereby allowing the first computer code to execute using different memory areas depending on the first Worker that was passed as a parameter in the call.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.