Delayed unloading of a dynamically loadable file
First Claim
1. A method of managing a dynamically loadable file, comprising:
- (a) initiating a dynamic load of the file by a first process;
(b) initiating a dynamic unload of the file by the first process; and
, (c) delaying a removal of the file from a memory in which the file executes, the delaying occurring as a result of the file being loaded by the first process, and wherein delaying the removal includes spawning a second process that initiates a dynamic load of the file.
2 Assignments
0 Petitions
Accused Products
Abstract
A dynamically loadable file, such as a dynamically loadable device driver or library, is delayed from being unloaded from memory for improved memory management and processing operations including reduced unload/load cycles. Prior to terminating execution of select functions, a dynamically loadable driver spawns a delay process that loads the driver and keeps it loaded for a period of time beyond that which it would normally be loaded. Thus, even after a calling process unloads the driver, it remains loaded for a period of time longer because of the spawned delay process and allows the operating system or an application/process to use the driver again within the delay time without requiring the driver to be re-copied into memory or reinitialized. The delay process safely increments the operating system reference count for the driver to keep the driver loaded and then monitors a delay time to subsequently unload the driver.
-
Citations
11 Claims
-
1. A method of managing a dynamically loadable file, comprising:
-
(a) initiating a dynamic load of the file by a first process;
(b) initiating a dynamic unload of the file by the first process; and
,(c) delaying a removal of the file from a memory in which the file executes, the delaying occurring as a result of the file being loaded by the first process, and wherein delaying the removal includes spawning a second process that initiates a dynamic load of the file. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of managing a dynamically loadable file, comprising:
-
(a) initiating a dynamic load of the file by a first process by incrementing a reference count for the file;
(b) initiating a dynamic unload of the file by the first process by decrementing a reference count for the file; and
,(c) delaying a removal of the file from a memory in which the file executes, the delaying occurring as a result of the file being loaded by the first process.
-
-
7. A computer-readable medium having computer-executable instructions for performing steps including:
-
(a) initiating a dynamic load of a file by a first process;
(b) initiating a dynamic unload of the file by the first process; and
,(c) delaying a removal of the file from a memory in which the file executes, the delaying occurring as a result of the file being loaded by the first process, and wherein delaying the removal includes spawning a second process that initiates a dynamic load of the file.
-
-
8. A method of managing a dynamically loadable file, comprising:
-
(a) dynamically loading the file in response to a request by a first process;
(b) spawning a second process based on the loading of the file by the first process;
(c) dynamically loading the file in response to a request by the second process;
(d) dynamically unloading the file in response to a request by the first process, but wherein the file remains usable in memory; and
,(e) dynamically unloading the file in response to a request by the second process after the unloading of the file by the first process. - View Dependent Claims (9, 10)
-
-
11. A computer-readable medium having computer-executable instructions for performing steps including:
-
(a) dynamically loading a file in response to a request by a first process;
(b) spawning a second process based on the loading of the file by the first process;
(c) dynamically loading the file in response to a request by the second process;
(d) dynamically unloading the file in response to a request by the first process, but wherein the file remains usable in memory; and
,(e) dynamically unloading the file in response to a request by the second process after the unloading of the file by the first process.
-
Specification