Coordinating parallel execution of processes using agents
First Claim
1. A method comprising:
- executing, by a processor of a computer system, an agent process that resides in an application space of the computer system and not in a kernel space of the computer system;
obtaining from an operating system of the computer system, by the agent process, processor configuration information for a set of one or more processors comprising the processor, wherein the agent process generates resource availability data in view of the processor configuration information;
intercepting, by the agent process, a request for the processor configuration information that is submitted to the operating system by an application process that resides in the application space of the computer system;
providing to the application process, by the agent process, the processor configuration information;
intercepting, by the agent process, a resource request from the application process that is submitted to the operating system; and
allocating one or more resources to the application process in view of the resource request and the resource availability data.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for managing program-level parallelism in a multi-core processor environment are provided. The methods for managing parallel execution of processes associated with computer programs include providing an agent process in an application space, which is operatively coupled to an operating system having a kernel configured to determine processor configuration information. The application space may be a runtime environment or a user space of the operating system, and has a lower privilege level than the kernel. The agent process retrieves the processor configuration information from the kernel, and after receiving a request for the processor configuration information from application processes running in the application space, the agent process provides a response to the requesting application process. The agent process may also generate resource availability data based on the processor configuration information, and the application processes may initiate a thread based on the resource availability data.
10 Citations
20 Claims
-
1. A method comprising:
-
executing, by a processor of a computer system, an agent process that resides in an application space of the computer system and not in a kernel space of the computer system; obtaining from an operating system of the computer system, by the agent process, processor configuration information for a set of one or more processors comprising the processor, wherein the agent process generates resource availability data in view of the processor configuration information; intercepting, by the agent process, a request for the processor configuration information that is submitted to the operating system by an application process that resides in the application space of the computer system; providing to the application process, by the agent process, the processor configuration information; intercepting, by the agent process, a resource request from the application process that is submitted to the operating system; and allocating one or more resources to the application process in view of the resource request and the resource availability data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 15)
-
-
11. A computer system comprising:
-
a memory to store an application space and a kernel space; and a processor, operatively coupled to the memory, to; execute an operating system that resides in the kernel space, execute an agent process that resides in the application space and not in the kernel space, obtain from the operating system, via the agent process, processor configuration information for a set of one or more processors comprising the processor, wherein the agent process generates resource availability data in view of the processor configuration information, intercept, by the agent process, a request for the processor configuration information that is submitted to the operating system by a first application process executing in the application space, provide, via the agent process, the processor configuration information to the first application process, intercept, by the agent process, a resource request from a second application process that is submitted to the operating system, and allocate one or more resources to the second application process in view of the resource request and the resource availability data. - View Dependent Claims (12, 13, 14)
-
-
16. A non-transitory computer readable storage medium comprising instructions to cause a processor to:
-
execute an operating system that resides in a kernel space; execute, by the processor, an agent process that resides in an application space and not in the kernel space; obtain from the operating system, via the agent process, processor configuration information for a set of one or more processors comprising the processor, wherein the agent process generates resource availability data in view of the processor configuration information; intercept, by the agent process, a request for the processor configuration information that is submitted to the operating system by a first application process executing in the application space; provide, via the agent process, the processor configuration information to the first application process; intercept, by the agent process, a resource request from a second application process that is submitted to the operating system; and allocate one or more resources to the second application process in view of the resource request and the resource availability data. - View Dependent Claims (17, 18, 19, 20)
-
Specification