Patent ID: 7171674

Claim:
A computer system for dynamically and automatically loading and unloading a software library to and from memory in a computer, said software library including one or more library routines and capable of being referenced by an application or other software module, said computer system comprising: one or more library structures, each library structure corresponding to a software library, each library structure including a library implementation module containing code for implementing the corresponding software library and a library loader containing entry points corresponding to entry points of the corresponding software library and code for loading and unloading the corresponding library implementation module; and software to perform operations comprising determining which libraries are potentially needed during execution of the application or other software module; loading into memory a library loader for each potentially needed library, said loading occurring anytime before any library of the potentially needed library is executed by the application or other software module; loading into memory a library implementation module for a software library, said loading occurring prior to when a library routine of the software library is to be executed by the application or other software module; executing the loaded library implementation module for the library routine being executed; and automatically unloading from memory the library implementation module after the execution of the library routine is completed while keeping the library loader in memory until the execution of the application or the other software module is completed, wherein the software library is scheduled to be unloaded automatically without an explicit unload request from the application or other software module and without using a count.