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: 7802249Abstract: 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: GrantFiled: September 22, 2003Date of Patent: September 21, 2010Assignee: Oracle American, Inc.Inventors: Sheng Liang, Timothy G. Lindholm
-
Patent number: 7444648Abstract: 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: GrantFiled: May 22, 2003Date of Patent: October 28, 2008Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 7051343Abstract: 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: GrantFiled: August 29, 2003Date of Patent: May 23, 2006Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6766521Abstract: 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: GrantFiled: May 27, 1999Date of Patent: July 20, 2004Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Timothy G. Lindholm, Sheng Liang
-
Patent number: 6763397Abstract: 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: GrantFiled: May 27, 1999Date of Patent: July 13, 2004Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6742006Abstract: 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: GrantFiled: May 10, 2002Date of Patent: May 25, 2004Assignee: Sun Microsystems, Inc.Inventors: William J. Raduchel, Glenn C. Scott, Timothy G. Lindholm
-
Publication number: 20040060058Abstract: 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: ApplicationFiled: September 22, 2003Publication date: March 25, 2004Applicant: Sun Microsystems, Inc., a Corporation of the state of DelawareInventors: Sheng Liang, Timothy G. Lindholm
-
Publication number: 20040045019Abstract: 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: ApplicationFiled: August 29, 2003Publication date: March 4, 2004Applicant: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Publication number: 20030233491Abstract: 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: ApplicationFiled: May 22, 2003Publication date: December 18, 2003Applicant: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6651080Abstract: 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: GrantFiled: December 16, 1998Date of Patent: November 18, 2003Assignee: Sun Microsystems, Inc.Inventors: Sheng Liang, Timothy G. Lindholm
-
Patent number: 6618769Abstract: 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: GrantFiled: May 27, 1999Date of Patent: September 9, 2003Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6618855Abstract: 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: GrantFiled: May 27, 1999Date of Patent: September 9, 2003Assignee: Sun Microsystems, Inc.Inventors: Timothy G. Lindholm, Gilad Bracha, Sheng Liang
-
Patent number: 6601114Abstract: 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: GrantFiled: May 27, 1999Date of Patent: July 29, 2003Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6510437Abstract: 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: GrantFiled: September 26, 2000Date of Patent: January 21, 2003Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Timothy G. Lindholm
-
Publication number: 20020133501Abstract: 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: ApplicationFiled: May 10, 2002Publication date: September 19, 2002Applicant: Sun Microsystems, Inc.Inventors: William J. Raduchel, Glenn C. Scott, Timothy G. Lindholm
-
Patent number: 6418444Abstract: 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: GrantFiled: December 11, 1997Date of Patent: July 9, 2002Assignee: Sun Microsystems, Inc.Inventors: William J. Raduchel, Glenn C. Scott, Timothy G. Lindholm
-
Patent number: 6345313Abstract: 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: GrantFiled: August 22, 1997Date of Patent: February 5, 2002Assignee: Sun Microsystems, Inc.Inventor: Timothy G. Lindholm
-
Patent number: 6167424Abstract: 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: GrantFiled: October 27, 1997Date of Patent: December 26, 2000Assignee: Sun Microsystems, Inc.Inventors: Lars Bak, Timothy G. Lindholm
-
Patent number: 6108754Abstract: 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: GrantFiled: April 2, 1998Date of Patent: August 22, 2000Assignee: Sun Microsystems, Inc.Inventor: Timothy G. Lindholm
-
Patent number: 5875461Abstract: 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: GrantFiled: April 3, 1997Date of Patent: February 23, 1999Assignee: Sun Microsystems, Inc.Inventor: Timothy G. Lindholm