Patents by Inventor Peter B. Kessler
Peter B. Kessler 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: 9223637Abstract: Methods and apparatus provide for a busy resource encoder to allow for a finer control of spin versus yield decisions. Specifically, the busy resource encoder allows for the execution a first thread, where the first thread is using a particular resource. Additionally, the busy resource encoder allows for the execution of a second thread, where the second thread requires use of the resource which is locked due to first thread execution. The busy resource encoder creates a busy code to indicate the progress of the execution of the first thread in relation to use of the resource by the first thread. The second thread can then read the busy code to determine to execute one of a spin and a yield routine by the second thread.Type: GrantFiled: July 31, 2007Date of Patent: December 29, 2015Assignee: Oracle America, Inc.Inventor: Peter B. Kessler
-
Patent number: 8799879Abstract: One embodiment provides a system that protects translated guest program code in a virtual machine that supports self-modifying program code. While executing a guest program in the virtual machine, the system uses a guest shadow page table associated with the guest program and the virtual machine to map a virtual memory page for the guest program to a physical memory page on the host computing device. The system then uses a dynamic compiler to translate guest program code in the virtual memory page into translated guest program code (e.g., native program instructions for the computing device). During compilation, the dynamic compiler stores in a compiler shadow page table and the guest shadow page table information that tracks whether the guest program code in the virtual memory page has been translated. The compiler subsequently uses the information stored in the guest shadow page table to detect attempts to modify the contents of the virtual memory page.Type: GrantFiled: June 30, 2009Date of Patent: August 5, 2014Assignee: Oracle America, Inc.Inventors: Gregory M. Wright, Christopher A. Vick, Peter B. Kessler
-
Patent number: 7890711Abstract: Apparatus, methods, and computer program products are disclosed that improve management of a dynamic memory area. One aspect is a method that reclaims memory referenced by a finalizable-object that has been instantiated from a class definition that incorporates at least one parent class and one or more class-extensions into a class hierarchy. The method includes marking for retention a related memory reachable from a reference field of the finalizable-object, and adding the finalizable-object to a finalization set for subsequent invocation of a non-trivial finalize-method. The method also determines whether the portion of the finalizable-object that includes the reference field to the related memory is a class-extension that has a finalizer-free characteristic and conditions the marking for retention on that determination. Thus, a portion the finalizable-object's related memory can be more quickly reclaimed from a dynamic memory area.Type: GrantFiled: April 18, 2007Date of Patent: February 15, 2011Assignee: Oracle America, Inc.Inventors: Antonios Printezis, Peter B. Kessler
-
Publication number: 20100333090Abstract: One embodiment provides a system that protects translated guest program code in a virtual machine that supports self-modifying program code. While executing a guest program in the virtual machine, the system uses a guest shadow page table associated with the guest program and the virtual machine to map a virtual memory page for the guest program to a physical memory page on the host computing device. The system then uses a dynamic compiler to translate guest program code in the virtual memory page into translated guest program code (e.g., native program instructions for the computing device). During compilation, the dynamic compiler stores in a compiler shadow page table and the guest shadow page table information that tracks whether the guest program code in the virtual memory page has been translated. The compiler subsequently uses the information stored in the guest shadow page table to detect attempts to modify the contents of the virtual memory page.Type: ApplicationFiled: June 30, 2009Publication date: December 30, 2010Applicant: SUN MICROSYSTEMS, INC.Inventors: Gregory M. Wright, Christopher A. Vick, Peter B. Kessler
-
Publication number: 20100161950Abstract: Apparatus and methods are disclosed for a computation processor that can execute a semi-absolute branch instruction, as well as methods of operation and of generating the semi-absolute branch instruction.Type: ApplicationFiled: December 24, 2008Publication date: June 24, 2010Applicant: SUN MICROSYSTEMS, INC.Inventors: Paul Caprioli, Peter B. Kessler, Christopher A. Vick
-
Patent number: 7730278Abstract: A mechanism is disclosed for storing one or more chunk-specific sets of executable instructions at one or more predetermined offsets within chunks of a chunked heap. The mechanism provides for storing a chunk-specific set of executable instructions within a portion of a chunk, where the set of executable instructions begins at a predetermined offset within the range of virtual memory addresses allocated to the chunk. The set of executable instructions, when executed, is operable to perform one or more operations that are specific to the chunk.Type: GrantFiled: July 12, 2007Date of Patent: June 1, 2010Assignee: Oracle America, Inc.Inventor: Peter B. Kessler
-
Patent number: 7716449Abstract: A mechanism is disclosed for offset-based addressing in the chunks of a chunked heap. The mechanism provides for storing a side data structure within a portion of a chunk, where the side data structure begins at a predetermined offset within the range of virtual memory addresses allocated to the chunk. The side data structure comprises a plurality of entries, where each entry is associated with a corresponding section of the chunk. The mechanism provides for locating a particular entry in the side data structure corresponding to a particular section of the chunk by using the predetermined offset and an index derived based on the particular section, where locating the particular entry does not include performing any memory accessing operations or conditional branch operations to obtain an indirect reference to the side data structure.Type: GrantFiled: July 12, 2007Date of Patent: May 11, 2010Assignee: Oracle America, Inc.Inventor: Peter B. Kessler
-
Publication number: 20090019221Abstract: A mechanism is disclosed for offset-based addressing in the chunks of a chunked heap. The mechanism provides for storing a side data structure within a portion of a chunk, where the side data structure begins at a predetermined offset within the range of virtual memory addresses allocated to the chunk. The side data structure comprises a plurality of entries, where each entry is associated with a corresponding section of the chunk. The mechanism provides for locating a particular entry in the side data structure corresponding to a particular section of the chunk by using the predetermined offset and an index derived based on the particular section, where locating the particular entry does not include performing any memory accessing operations or conditional branch operations to obtain an indirect reference to the side data structure.Type: ApplicationFiled: July 12, 2007Publication date: January 15, 2009Inventor: Peter B. Kessler
-
Publication number: 20090019249Abstract: A mechanism is disclosed for storing one or more chunk-specific sets of executable instructions at one or more predetermined offsets within chunks of a chunked heap. The mechanism provides for storing a chunk-specific set of executable instructions within a portion of a chunk, where the set of executable instructions begins at a predetermined offset within the range of virtual memory addresses allocated to the chunk. The set of executable instructions, when executed, is operable to perform one or more operations that are specific to the chunk.Type: ApplicationFiled: July 12, 2007Publication date: January 15, 2009Inventor: Peter B. Kessler
-
Publication number: 20080263295Abstract: Apparatus, methods, and computer program products are disclosed that improve management of a dynamic memory area. One aspect is a method that reclaims memory referenced by a finalizable-object that has been instantiated from a class definition that incorporates at least one parent class and one or more class-extensions into a class hierarchy. The method includes marking for retention a related memory reachable from a reference field of the finalizable-object, and adding the finalizable-object to a finalization set for subsequent invocation of a non-trivial finalize-method. The method also determines whether the portion of the finalizable-object that includes the reference field to the related memory is a class-extension that has a finalizer-free characteristic and conditions the marking for retention on that determination. Thus, a portion the finalizable-object's related memory can be more quickly reclaimed from a dynamic memory area.Type: ApplicationFiled: April 18, 2007Publication date: October 23, 2008Inventors: Antonios Printezis, Peter B. Kessler
-
Patent number: 7389395Abstract: A heap may be marked and compacted while performing only two passes over the objects and object references in the heap. Specifically, objects and object references are traversed once during a marking phase and again during a compaction phase of split-reference, two-pass mark-compaction. Object references are updated in two steps. First, during marking, each object reference may be updated to include the relative offset within its block of the referenced object and-during compaction that offset may be added to the block's destination address resulting in a reference that points to the actual post-compaction location for the referenced object. Objects of a particular block may be rearranged, or permuted, with respect to each other within the block. However, the order between groups of objects in different blocks may be preserved across compaction.Type: GrantFiled: June 26, 2005Date of Patent: June 17, 2008Assignee: Sun Microsystems, Inc.Inventors: Alexander T. Garthwaite, David P. Stoutamire, Peter B. Kessler, Y Srinivas Ramakrisha, David L. Detlefs, Antonios Printezis, Jon A. Masamitsu, John W. Coomes
-
Patent number: 6941556Abstract: A system and method provides dynamic and static type support for multiple definitions of individual types in a distributed object environment. Fully scoped object names incorporating prefixes are used to distinguish objects. The fully scoped names are used for both dynamic type determination through an interface repository and for statically compiled types in client and server stub routines. In the interface repository, a prefix naming context is provided for each root interface definition language context, allowing multiple definitions for objects with the same interface definition language object name, where each such definition resides in a separate prefix naming context. In one embodiment, the prefix naming contexts are defined by prefix interface definition objects. In another embodiment, the fully scoped object names are embedded by an interface definition language compiler in stub and skeleton code routines. RRS.Type: GrantFiled: May 24, 1999Date of Patent: September 6, 2005Assignee: Sun Microsystems, Inc.Inventors: Peter B. Kessler, Swee Boon Lim, Peter Vanderbilt, Michael L. Powell, Li-Wen Chen, Dwight F. Hare, Alan Snyder
-
Patent number: 6718550Abstract: Data structures, methods and devices for reducing computing overhead by utilizing different invocation paths for same process and different process invocations in a distributed client/server based computing system are disclosed. In one aspect of the invention, calls to a servant that do not share the same process as the requesting client are routed through a transport layer, and calls to servants that do share the same process as the requesting client are passed directly to the servant, thereby bypassing the transport layer. In another aspect of the invention, distinct remote and local method tables are provided to facilitate intelligent routing of requests. In still another aspect of the invention, the appropriate method table for an object reference is intelligently selected based upon the location of the identified object.Type: GrantFiled: June 26, 1996Date of Patent: April 6, 2004Assignee: Sun Microsystems, Inc.Inventors: Swee Boon Lim, Peter B. Kessler, Sanjay R. Radia, Graham Hamilton
-
Patent number: 6697848Abstract: A method for enabling an application program to communicate with a network server, includes the steps of downloading a document from a document server to the application program, downloading code from a code server associated with the document server to the application program, the code including a network protocol handler for the network server, and using the network protocol handler to communicate with the network server.Type: GrantFiled: September 14, 1999Date of Patent: February 24, 2004Assignee: Sun Microsystems, Inc.Inventors: Graham Hamilton, Peter B. Kessler, Jeffrey Donald Nisewanger, Sami Shaio, Jacob Y. Levy, Steven Robert Kleiman
-
Patent number: 6681306Abstract: Methods and apparatus for enabling an efficient generational scavenging garbage collection to be performed on a managed memory area are disclosed. According to one aspect of the present invention, a method for reclaiming memory space uses a managed memory area that includes a first area and a second area. The first area is arranged to store recently allocated objects, while the second area being arranged to store older objects. The method includes determining when a first section of the first area in which new objects are to be allocated is substantially filled. When it is determined that the first section is substantially filled, a garbage collection is performed on a second section of the first. After the garbage collection, the second section is set to support new object allocation such that new objects are allocated in the second section, while the first section is reset such that it is no longer arranged to support new object allocation.Type: GrantFiled: November 29, 1999Date of Patent: January 20, 2004Assignee: Sun Microsystems, Inc.Inventors: Peter B. Kessler, Steffen Grarup, David M. Ungar
-
Publication number: 20030065750Abstract: A method for enabling an application program to communicate with a network server, includes the steps of downloading a document from a document server to the application program, downloading code from a code server associated with the document server to the application program, the code including a network protocol handler for the network server, and using the network protocol handler to communicate with the network server.Type: ApplicationFiled: September 14, 1999Publication date: April 3, 2003Inventors: GRAHAM HAMILTON, PETER B. KESSLER, JEFFREY DONALD NISEWANGER, SAMI SHAIO, JAQCOB Y. LEVY, STEVEN ROBERT KLEIMAN
-
Patent number: 6430638Abstract: A method and apparatus for providing selective object locking is provided. First, a lock object is designated. The identity of the lock object is then made available to objects in an object calling hierarchy. The first object invoked by the calling thread obtains a lock on the lock object to protect data associated with the first invoked object. Other objects in the object calling hierarchy can relock the lock object to protect their data. The invention also provides for selective object locking by providing the capability for a calling thread to specify that no object locking is to be preformed, which causes objects invoked by the calling thread to not perform object locking.Type: GrantFiled: June 30, 1997Date of Patent: August 6, 2002Assignee: Sun Microsystems, Inc.Inventors: Peter B. Kessler, Mark B. Reinhold, Duncan Stuart Ritchie
-
Patent number: 6412019Abstract: Methods and apparatus in an object oriented programming environment for invocation of objects with interface inheritance. An object reference using mtables contains two parts, more specifically, a pointer to the data for an object and a pointer to the methods on the object. The methods on the object are represented by a collection of mtables. An mtable for a given interface consists of pointers to mtables for inherited interfaces and pointers to functions implementing the operations declared in the interface. An mtable pointer in an object reference points to an mtable for an apparent interface of the object reference. Mtables for any inherited interfaces are reached by indirection from the mtables for the apparent interface.Type: GrantFiled: January 15, 1997Date of Patent: June 25, 2002Assignee: Sun Microsystems, Inc.Inventors: Jonathan J. Gibbons, Graham Hamilton, Peter B. Kessler, Michael L. Powell, Sanjay R. Radia
-
Patent number: 6389484Abstract: Data structures, methods, and devices for facilitating servant invocation in a distributed client-server based object oriented operating system are disclosed. In one aspect of the invention, descriptor data structures, which contain a typecode indicator, a marshaling function identifier, and an unmarshaling function identifier, are used to enable modules of application code to be shared between different objects, thereby facilitating servant invocation by increasing the amount of commonized code in the operating system. In another aspect of the invention, a server invocation object is used in the execution of a method call. In still another aspect of the invention, a commonized code base is used to process typecode interpreted and compiled calls to a server process.Type: GrantFiled: December 6, 1999Date of Patent: May 14, 2002Assignee: Sun Microsystems, Inc.Inventors: Swee Boon Lim, Peter B. Kessler, David M. Brownell
-
Patent number: 6298477Abstract: Apparatus, methods, and computer program products are disclosed for determining how to compile a program at runtime. A bytecode instruction associated with the program that can be compiled in multiple ways is retrieved and compiled in a particular way, typically the default way. At runtime, a virtual machine determines whether another way of compiling the bytecode instruction is more desirable and, if so, the bytecode is then recompiled the other way. In some embodiments, the portion of the program that contains the bytecode instruction to be recompiled is placed in a queue with other instructions that are to be recompiled. The virtual machine may examine changing requirements of the program that have developed at the program's execution in which the requirements are derived from profile data on each of the multiple ways the program can be compiled. The bytecode instruction within the program may be recompiled in a more preferred way based upon the profile data.Type: GrantFiled: October 30, 1998Date of Patent: October 2, 2001Assignee: Sun Microsystems, Inc.Inventor: Peter B. Kessler