Reformulating resources with nodes reachable from defined entry points
First Claim
Patent Images
1. A method comprising:
- receiving a distribution list comprising two or more shared resources comprising dynamically linkable libraries, and two or more classified entry points into the shared resources;
for each classified entry point, identifying a graph of nodes and edges reachable within the shared resources wherein the graph represents basic blocks reachable within the two or more shared resources;
creating a new first order resource comprising a single dynamically linkable file comprising the assembled nodes of a graph representing basic blocks reachable within the two or more shared resources from one or more first order classified entry points;
creating a new second order resource comprising a single dynamically linkable file comprising the assembled nodes of a graph representing basic blocks reachable from one or more second order classified entry points and not reachable from the one or more first order classified entry points;
creating dependency relations for nodes in the new first order resource depended on by nodes in the new second order resource; and
dynamically linking the new first order resource into an application'"'"'s address space in order to provide computing services to a user.
2 Assignments
0 Petitions
Accused Products
Abstract
Historically, resources (e.g., dynamic linked libraries) were organized based on factors including the expertise of development teams. Unfortunately, this creates shared resources of much greater functionality than required by any one client application. By reformulating shared resources according to the nodes reachable from a set of defined entry points, the reformulated resources will contain nodes of relevance. This optimization reduces memory requirements which is useful for embedded systems and for reducing disk accesses.
53 Citations
26 Claims
-
1. A method comprising:
-
receiving a distribution list comprising two or more shared resources comprising dynamically linkable libraries, and two or more classified entry points into the shared resources; for each classified entry point, identifying a graph of nodes and edges reachable within the shared resources wherein the graph represents basic blocks reachable within the two or more shared resources; creating a new first order resource comprising a single dynamically linkable file comprising the assembled nodes of a graph representing basic blocks reachable within the two or more shared resources from one or more first order classified entry points; creating a new second order resource comprising a single dynamically linkable file comprising the assembled nodes of a graph representing basic blocks reachable from one or more second order classified entry points and not reachable from the one or more first order classified entry points; creating dependency relations for nodes in the new first order resource depended on by nodes in the new second order resource; and dynamically linking the new first order resource into an application'"'"'s address space in order to provide computing services to a user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of reformulating compiled resources comprising:
-
receiving a distribution list; converting resources comprising dynamically linked libraries in the distribution list into an internal representation comprising data structure of information about control flow through basic blocks of the resources comprising dynamically linked libraries; merging the internal representations into an integrated representation comprising a graph that resolves dependencies between individual resources comprising dynamically linked libraries; from classified entry points in the distribution list, coloring reachable nodes in the integrated representation with a classification of a color classification of a highest order entry point that reaches a node; create new resources for each color classification; inject colored nodes into a new resource of its corresponding color; inject imports into new resources when nodes of the new resource depend on nodes of a color classification of a higher order; inject exports into new resources when nodes of the new resource are depended on by nodes of a color classification of a lower order; and dynamically linking at least one new resource into an application'"'"'s address space in order to provide computing services to a user. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A computer system comprising:
-
a CPU coupled to main memory and secondary memory; the memory comprising a node identifier for walking a control flow through reachable basic blocks to create graphs of basic blocks reachable in plural shared resources comprising dynamic linkable files, a resource reformulator for assembling reachable basic blocks in created graphs into a shared resource comprising a dynamically linkable file, a dependency redirector, plural shared resources, and a distribution list comprising a list of classified entry points, each entry point associated with a new shared resource name, and each entry point represents a graph of reachable nodes in the shared resources; and the memory further comprising an application providing requested computing services to a user, wherein the application is dynamically linked to a shared resource comprising a dynamically linkable file including basic blocks assembled from plural shared resources. - View Dependent Claims (15, 16)
-
-
17. A computer-readable storage medium having executable instructions for performing a method comprising:
-
receiving a distribution list comprising two or more shared resources, and two or more classified entry points into the shared resources; for each classified entry point, identifying a graph of nodes and edges reachable within the shared resources, each shared resources comprising a dynamically linkable file with the nodes comprising basic blocks reachable via control flow through the edges of the graph; creating a new first order resource comprising a dynamically linkable file of assembled nodes reachable from first order classified entry points; creating a new second order resource comprising a dynamically likable file of assembled nodes reachable from second order classified entry points and not reachable from first order classified entry points; and creating dependency relations for nodes in the first order resource depended on by nodes in the second order resource. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A method of reformulating compiled resources comprising:
-
displaying a list of application programming interfaces available for accessing shared resources; receiving selections of application programming interfaces; converting selections into a distribution list; creating an internal representation of nodes reachable from entry points in the distribution list, the internal representation comprising data about control flow through basic blocks of the resources comprising plural dynamically linkable libraries; and creating a new resource comprising the internal representation and executing the new resource locally in a process address space of an executing application program providing computing services to a user.
-
-
26. A method of reformulating compiled resources comprising:
-
displaying a list of application programming interfaces available for accessing shared resources; receiving selections of application programming interfaces, wherein selections include classifications; converting selections and classifications into a distribution list; creating an internal representation of nodes reachable from entry points in the distribution list; coloring reachable nodes in the integrated representation with a color classification of a highest order classified entry point that reaches a node; creating a new resources for each color classification; injecting colored nodes into a new resource of its corresponding color; injecting imports into new resources when nodes of the new resource depend on nodes of a color classification of a higher order; injecting exports into new resources when nodes of the new resource are depended on by nodes of a color classification of a lower order; and dynamically linking the created new resources for at least two or more color classifications into the address space for a single application providing local computing services to a user.
-
Specification