Shared Patents (Class 717/164)
  • Publication number: 20040015943
    Abstract: A program system stored in a memory of a computer system uses at least one computer program and a software library. The software library has at least one first-type subroutine module that is used by the computer program and at least one second-type subroutine module that is not used by the computer program. After the software library has passed a compilation process first and then a linkage process, the processed software library is stored in the memory of the computer system. The second-type subroutine module in the processed software library is changed in a non-recoverable manner after the linkage process so that the memory required to store the second-type subroutine module is saved and can be used by the computer system for other purposes.
    Type: Application
    Filed: July 17, 2002
    Publication date: January 22, 2004
    Inventor: Ying-Chou Chen
  • Patent number: 6665671
    Abstract: A system and method are described for optimizing access of shared data. Briefly described, in architecture, the system can be implemented as follows. The data load optimization system includes a linkage table that contains at least one unresolved data module accessible by a computer program. The linkage table also includes a load determination logic that determines the location of the unresolved data module at load time of the computer program, and a load modification logic that modifies the load instruction in the computer program, at load time of the computer program, to directly load the unresolved data module at the location. The present invention can also be viewed as providing a method for efficiently accessing shared data.
    Type: Grant
    Filed: April 4, 2001
    Date of Patent: December 16, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Cary A. Coutant
  • Patent number: 6651080
    Abstract: Techniques for developing and exchanging virtual machine implementations and/or support library implementations are described. In one embodiment, the virtual machine design specifies a set of functions for executing all or substantially all support library operations that are dependent on the implementation of the virtual machine. When a developer desires to substitute one virtual machine implementation for another, the developer is able to basically “plug-in” the second virtual machine implementation with minimal impact on the support libraries since both virtual machine implementations provide implementations for the set of specified functions that are dependent on the implementation of the respective virtual machine. Conversely, different support libraries may be utilized in conjunction with a particular virtual machine implementation.
    Type: Grant
    Filed: December 16, 1998
    Date of Patent: November 18, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Sheng Liang, Timothy G. Lindholm
  • Publication number: 20030115583
    Abstract: A method and system for reverting a process in an in-line instrumented state to an uninstrumented state. In one embodiment, the present invention modifies selected text segment portions from the process to be uninstrumented. The present embodiment then unmaps instrumented code space such that the instrumented code space is inaccessible to the process. In this embodiment, provided an instruction pointer resides in the instrumented code space, the present invention updates the instruction pointer to uninstrumented code space. The present embodiment also executes the process and, provided the process generates a fault by seeking to access an address in instrumented code space, provides a corresponding address in uninstrumented code space. In one embodiment, the present invention then continues execution at the address in instrumented code space.
    Type: Application
    Filed: December 13, 2001
    Publication date: June 19, 2003
    Inventors: Robert Hundt, David John Babcock
  • Publication number: 20030115580
    Abstract: The present invention relates to a mechanism for copying selected routines from shared libraries into application programs thereby generating optimized application programs for more rapid execution of the various applications within a computer system. Since optimized programs occupy space on disk and in RAM, programs are preferably selected for optimization based on their frequency of execution and the frequency with which calls are made to the shared libraries. Profile information may be used to identify the execution efficiency of the various application programs and thereby identify the best candidates for optimization. Further, profile information may be employed to copy individual routines contained within the libraries rather than having to copy an entire library where only one routine within the library was of interest.
    Type: Application
    Filed: November 8, 1999
    Publication date: June 19, 2003
    Inventors: DANIEL T. ARAI, JACK TIHON
  • Publication number: 20030079215
    Abstract: Method and apparatus for optimization of an executable program that calls procedures in a shared library. Code segments that read procedure address information from a linkage table are first identified. Each linkage code segment is associated with a call to a procedure in the shared library, and the address information in the linkage table is associated with the procedures in the shared library. During program execution, the address information is read from the linkage table and substitute code segments are generated for the linkage code segments. Each substitute code segment has direct loads of the address information for calling the associated procedure instead of the original references to the linkage table. Thereafter, the substitute code segments are executed instead of the linkage code segments.
    Type: Application
    Filed: October 18, 2001
    Publication date: April 24, 2003
    Inventors: Robert Hundt, Tom Lofgren, Vinodha Ramasamy
  • Patent number: 6507945
    Abstract: Methods and apparatus for controlling an automated material handling procedure. The method includes receiving a recipe file comprising component information and mapping information; interacting with a user to create a procedure for executing a set of material handling steps; and causing a automated material-handling apparatus to carry out the set of material-handling steps by executing the procedure. The mapping information relates a source component and a destination component. The mapping information defines one or more transfers of at least one source component material to at least one destination component location. The method includes providing to the user an assortment of pre-programmed code objects and receiving from the user a selection and arrangement of the pre-programmed code objects. The procedure is defined by the user's selection and arrangement.
    Type: Grant
    Filed: May 5, 1999
    Date of Patent: January 14, 2003
    Assignee: Symyx Technologies, Inc.
    Inventors: William C. Rust, Ralph B. Nielsen
  • Patent number: 6499137
    Abstract: A library links to a compiled application using the following variation of load-time dynamic linking. At some point prior to linking, a user selects a library for linking to the compiled application. An association is made between the selected library and any external libraries referenced within the compiled application. For example, if the application is in Common Object File format, a new import table lists the selected library and the external libraries of the original import table. At link time, the selected library and the external libraries link to the compiled application. At load time, the application, selected library, and any external libraries load. When the selected library loads first, a function in the selected library performs operations before the application or external libraries load. A pointer references the list of libraries to be linked to the compiled application. The initial state of this pointer is archived.
    Type: Grant
    Filed: November 20, 1998
    Date of Patent: December 24, 2002
    Assignee: Microsoft Corporation
    Inventor: Galen C. Hunt
  • Patent number: 6460178
    Abstract: A shared library optimization process relocates a code block in a platform-neutral intermediate representation (IR) of a library into the IR of another library. The shared library optimization process preserves the original control flow that passed through the relocated code block using forwarding pointers and address substitution. The shared library optimization process can also relocate code blocks from multiple shared libraries into an existing shared library, or from one shared library into an empty shared library. The shared libraries to be optimized are specified by a user, as is the type of optimization to be performed.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: October 1, 2002
    Assignee: Microsoft Corporation
    Inventors: Hon Keat W. Chan, Andrew J. Edwards, Amitabh Srivastava, Hoi H. Vo
  • Patent number: 6438744
    Abstract: The dynamic mapping from an ActiveX component model to a JavaBean model is disclosed. In one embodiment, an ActiveX compatible object is created at run-time for those JavaBean components that an ActiveX client application wishes to utilize. In another embodiment, upon a call to CoGetClassObject or related methods using class identifiers, a COM-callable wrapper is generated and a mapping table containing COM dispatch identifiers is scanned to ensure the dispatch identifiers are unique. If they are not, the dispatch identifiers associated with JavaBean component interfaces are adjusted to make them unique.
    Type: Grant
    Filed: July 15, 1998
    Date of Patent: August 20, 2002
    Assignee: Microsoft Corporation
    Inventors: Michael J. Toutonghi, Tracy C. Sharpe