Patents by Inventor Timothy G. Lindholm

Timothy G. Lindholm has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7802249
    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: September 22, 2003
    Date of Patent: September 21, 2010
    Assignee: Oracle American, Inc.
    Inventors: Sheng Liang, Timothy G. Lindholm
  • Patent number: 7444648
    Abstract: A method, computer program, and apparatus verify instructions in a module of a computer program during linking using pre-verification constraints with fully lazy loading. It is first determined whether a first module which is loaded has passed verification one-module-at-a-time before linking. If the first module has passed verification, a pre-verification constraint on a constrained module is read, if any. It is then determined if the constrained module is loaded, if any pre-verification constraint is read. If the constrained module is not already loaded, the pre-verification constraint is retained as a verification constraint.
    Type: Grant
    Filed: May 22, 2003
    Date of Patent: October 28, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 7051343
    Abstract: A method, computer program, signal transmission and apparatus pre-verify instructions in a module of a computer program one module-at-a-time. First it is determined whether checking an instruction in a first module which is loaded requires information in a referenced module different than the first module. If the information is required, a constraint for the referenced module is written without loading or otherwise accessing the referenced module. During linking it is determined whether a first module which is loaded has passed pre-verification one-module-at-a-time before linking. A pre-verification constraint on a constrained module is read, if any, if the first module has passed such verification. If any pre-verification constraint is read, the pre-verification constraint is enforced if the constrained module is already loaded.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: May 23, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 6766521
    Abstract: A method, computer program, signal transmission, apparatus and system verify instructions in a module of a computer program to be dynamically linked with at least one other module. First it is determined whether checking an instruction in a first module which is loaded requires a lowest upper bound (LUB) class of at least two referenced classes in one or more referenced modules different than the first module. If such information is required, a constraint for the referenced module is written without loading the referenced module. The constraint is of the form “the set of at least two classes inherits from a specified class.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: July 20, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Timothy G. Lindholm, Sheng Liang
  • Patent number: 6763397
    Abstract: A method, computer program, signal transmission, apparatus and system for fully lazy verification of instructions in a module of a computer program include first determining whether an instruction in a first module which is loaded requires information in a referenced module different than the first module. If such information is required, it is then determined whether the referenced module is already loaded. If the referenced module is not already loaded, a constraint is written for the referenced module without loading the referenced module. The constraint is then checked when the referenced class is loaded, if ever.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: July 13, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 6742006
    Abstract: A method and apparatus for ensuring that code being executed by a data processing system conforms to a platform standard. As an example, one embodiment of the present invention validates Pure Java platform standard conformance of Java programs downloaded from a remote server to ensure that they conform to the “Pure Java” standard. This checking can be performed at the time that the program is downloaded across a network firewall and/or at one or more times during the loading and execution of the program.
    Type: Grant
    Filed: May 10, 2002
    Date of Patent: May 25, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: William J. Raduchel, Glenn C. Scott, Timothy G. Lindholm
  • Publication number: 20040060058
    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: Application
    Filed: September 22, 2003
    Publication date: March 25, 2004
    Applicant: Sun Microsystems, Inc., a Corporation of the state of Delaware
    Inventors: Sheng Liang, Timothy G. Lindholm
  • Publication number: 20040045019
    Abstract: A method, computer program, signal transmission and apparatus pre-verify instructions in a module of a computer program one module-at-a-time. First it is determined whether checking an instruction in a first module which is loaded requires information in a referenced module different than the first module. If the information is required, a constraint for the referenced module is written without loading or otherwise accessing the referenced module. During linking it is determined whether a first module which is loaded has passed pre-verification one-module-at-a-time before linking. A pre-verification constraint on a constrained module is read, if any, if the first module has passed such verification. If any pre-verification constraint is read, the pre-verification constraint is enforced if the constrained module is already loaded.
    Type: Application
    Filed: August 29, 2003
    Publication date: March 4, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Publication number: 20030233491
    Abstract: A method, computer program, signal transmission and apparatus verify instructions in a module of a computer program during linking using pre-verification constraints with fully lazy loading. It is first determined whether a first module which is loaded has passed verification one-module-at-a-time before linking. If the first module has passed verification, a pre-verification constraint on a constrained module is read, if any. It is then determined if the constrained module is loaded, if any pre-verification constraint is read. If the constrained module is not already loaded, the pre-verification constraint is retained as a verification constraint.
    Type: Application
    Filed: May 22, 2003
    Publication date: December 18, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • 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
  • Patent number: 6618769
    Abstract: A method, computer program, signal transmission and apparatus pre-verify instructions in a module of a computer program one module-at-a-time. First it is determined whether checking an instruction in a first module which is loaded requires information in a referenced module different than the first module. If the information is required, a constraint for the referenced module is written without loading or otherwise accessing the referenced module. During linking it is determined whether a first module which is loaded has passed pre-verification one-module-at-a-time before linking. A pre-verification constraint on a constrained module is read, if any, if the first module has passed such verification. If any pre-verification constraint is read, the pre-verification constraint is enforced if the constrained module is already loaded.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: September 9, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 6618855
    Abstract: A method, computer program, signal transmission and apparatus for trusted verification of instructions in a module of a computer program first determine whether a suspect module to be loaded is from an untrusted source, such as on the internet. If from an untrusted source, the suspect module is loaded and one-module-at-a-time pre-verification is performed on the suspect module before linking. If the suspect module passes such pre-verification, the module is stored in a cache.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: September 9, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Timothy G. Lindholm, Gilad Bracha, Sheng Liang
  • Patent number: 6601114
    Abstract: A method, computer program, signal transmission and apparatus verify instructions in a module of a computer program during linking using pre-verification constraints with fully lazy loading. It is first determined whether a first module which is loaded has passed verification one-module-at-a-time before linking. If the first module has passed verification, a pre-verification constraint on a constrained module is read, if any. It is then determined if the constrained module is loaded, if any pre-verification constraint is read. If the constrained module is not already loaded, the pre-verification constraint is retained as a verification constraint.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: July 29, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 6510437
    Abstract: Methods and apparatus for locking and unlocking objects using synchronized threads are disclosed. According to one aspect of the present invention, a computer-implemented method for using a first thread to obtain a header value of an object includes replacing contents of a header of the object with a sentinel which identifies an execution stack associated with the first thread. Once the object contents are replaced with the sentinel, a determination is made regarding whether the object contents include a header value of the object, and when it is determined that the object contents do not include the header value of the object, a determination is made as to when the object is in the process of being studied by a second thread. In one embodiment, when it is determined that the object is not in the process of being studied by the second thread, the method involves adding the first thread to a list associated with the stack.
    Type: Grant
    Filed: September 26, 2000
    Date of Patent: January 21, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Timothy G. Lindholm
  • Publication number: 20020133501
    Abstract: A method and apparatus for ensuring that code being executed by a data processing system conforms to a platform standard. As an example, one embodiment of the present invention validates Pure Java platform standard conformance of Java programs downloaded from a remote server to ensure that they conform to the “Pure Java” standard. This checking can be performed at the time that the program is downloaded across a network firewall and/or at one or more times during the loading and execution of the program.
    Type: Application
    Filed: May 10, 2002
    Publication date: September 19, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: William J. Raduchel, Glenn C. Scott, Timothy G. Lindholm
  • Patent number: 6418444
    Abstract: A method and apparatus for ensuring that code being executed by a data processing system conforms to a platform standard. As an example, one embodiment of the present invention validates Pure Java platform standard conformance of Java programs downloaded from a remote server to ensure that they conform to the “Pure Java” standard. This checking can be performed at the time that the program is downloaded across a network firewall and/or at one or more times during the loading and execution of the program.
    Type: Grant
    Filed: December 11, 1997
    Date of Patent: July 9, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: William J. Raduchel, Glenn C. Scott, Timothy G. Lindholm
  • Patent number: 6345313
    Abstract: A method and apparatus for managing the association of objects with synchronization constructs used to synchronize those objects with threads is described. A cache of synchronization constructs is provided. Synchronization constructs are used to synchronize objects with threads. When a thread requests synchronization with an object, a determination is made of whether a synchronization construct is already associated with the object. If a synchronization construct is already associated with the object, then that synchronization construct is used to synchronize the object with the thread. After association of a synchronization construct with an object, the association is maintained even when the synchronization construct meets termination criteria. Subsequently, a determination is made of whether a collection enabling condition exists. If a collection enabling condition exists, the association of objects with synchronization constructs that meet the termination criteria is terminated.
    Type: Grant
    Filed: August 22, 1997
    Date of Patent: February 5, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Timothy G. Lindholm
  • Patent number: 6167424
    Abstract: Methods and apparatus for locking and unlocking objects using synchronized threads are disclosed. According to one aspect of the present invention, a computer-implemented method for using a first thread to obtain a header value of an object includes replacing contents of a header of the object with a sentinel which identifies an execution stack associated with the first thread. Once the object contents are replaced with the sentinel, a determination is made regarding whether the object contents include a header value of the object, and when it is determined that the object contents do not include the header value of the object, a determination is made as to when the object is in the process of being studied by a second thread. In one embodiment, when it is determined that the object is not in the process of being studied by the second thread, the method involves adding the first thread to a list associated with the stack.
    Type: Grant
    Filed: October 27, 1997
    Date of Patent: December 26, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Lars Bak, Timothy G. Lindholm
  • Patent number: 6108754
    Abstract: A method and apparatus for synchronizing objects with threads is described. To find a specific synchronization construct that is to be used to synchronize a thread with an object, a local table is first searched for data that refers to the specific synchronization. If the local table does not contain data referring to the specific synchronization construct, then a global table is used to search for the synchronization construct to be used to synchronize the object with the thread.
    Type: Grant
    Filed: April 2, 1998
    Date of Patent: August 22, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Timothy G. Lindholm
  • Patent number: 5875461
    Abstract: A method and apparatus for synchronizing objects is provided. A cache of synchronization constructs is provided and used to synchronize a thread with an object. A free list contains synchronization constructs not allocated to synchronize an object. A synchronization construct is allocated when at least one thread requests synchronization with an object. In response to detecting a collection enabling condition, synchronization constructs allocated to objects not synchronized with any thread are deallocated. A local hash table is assigned to each thread. The local hash table contains synchronization constructs used to synchronize objects to the thread to which the local hash table is assigned.
    Type: Grant
    Filed: April 3, 1997
    Date of Patent: February 23, 1999
    Assignee: Sun Microsystems, Inc.
    Inventor: Timothy G. Lindholm