System and method for freeing shared resources in a computer system
AssigneeMicrosoft Corporation
InventorColin McCartney
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorColin McCartney
Estimating the term…
The present invention relates to systems and methods for freeing shared resources that remain allocated to a particular resource allocating process after the resource allocating process has terminated The invention is useful in a computer system where shared hardware is accessed via a shared hardware driver layer The shared hardware driver layer interfaces with either a shared API layer or a nonshared API layer. Processes wishing to access the shared hardware access the hardware through either the shared or nonshared API layer. To release resources and destroy objects in either the shared API layer or the shared hardware driver layer, the present invention uses a helper process that cleans up after termination of the resource allocation process. The helper process first calls, cleanup function in the shared API layer to release resources and destroy objects in the shared API layer and associated hardware driver. The helper process then loads a copy of the nonshared API layer and makes a call to a similar cleanup function to release any remaining resources and destroy any remaining objects. In the alternative, the helper process loads a copy of the nonshared API layer and calls to the similar cleanup function are made by the cleanup function in the shared API layer.
A method of freeing shared system resources shared among a plurality of processes running on a computer system having a central processing unit (CPU), a portion of said shared system resources being allocated for use by a process either through a shared application program interface that provides an interface to a shared hardware driver and is shared among said plurality of processes or through a local application program interface that provides an interface to a shared hardware driver and is not shared among said plurality of processes, said method comprising the steps of:
A computer-readable medium having computer-executable instructions comprising:
A computer program product having computer-executable instructions for destroying orphaned software objects allocated for a process running on a computer system and orphaned by termination of said process, said orphaned software objects comprising at least one link that currently points to an undefined location but that previously pointed to at least one other software object prior to termination of said process, and for freeing shared system resources occupied by the orphaned software objects such that the freed shared system resources are available for re-allocation by other processes, comprising:
In a system including shared hardware accessed by a shared hardware driver, wherein the shared hardware driver includes a driver resource that may be allocated to one or more processes, wherein the shared hardware driver and the driver resource is accessible by a shared application programming interface (API) and a local API, wherein the shared API includes shared resources that may be allocated to the one or more processes and wherein the local API includes local resources that are specific to a particular process, and wherein the particular process allocates resources including one or more of a portion of the shared resource, a portion of the local resource, and a portion of the driver resource during execution of the particular process, a method for freeing the allocated resources when the particular process terminates, wherein the portion of the local resource is freed when the particular process terminates and the portion of the driver resource and the portion of the shared resource remain allocated to the particular process when the particular process terminates, the method comprising acts of:
Dependencies are inferred from the claim text.