Patents by Inventor Christopher J. Plummer
Christopher J. Plummer 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: 10891214Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to debug configuration transfers, an agent receives, from a debugger, a command to set an active debug configuration for a carrier thread on which a carried thread is mounted. Responsive to determining that the carried thread is unmounted, the agent stores the active debug configuration for the carrier thread as a recorded debug configuration associated with the carried thread. The agent transmits a command to reset the active debug configuration on the carrier thread. Responsive to determining that the carried thread is mounted on a carrier thread, the agent retrieves the recorded debug configuration. The agent restores the recorded debug configuration as an active debug configuration on the current carrier thread.Type: GrantFiled: April 23, 2019Date of Patent: January 12, 2021Assignee: Oracle International CorporationInventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
-
Patent number: 10891213Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to identifier conversion, an agent receives, from a debuggee, a notification that an event occurred in association with a carrier thread. The agent determines that a carried thread is mounted on the carrier thread. The agent transmits, to the debugger, a notification that the event occurred in association with the carried thread.Type: GrantFiled: April 23, 2019Date of Patent: January 12, 2021Assignee: Oracle International CorporationInventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
-
Publication number: 20200341885Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to debug configuration transfers, an agent receives, from a debugger, a command to set an active debug configuration for a carrier thread on which a carried thread is mounted. Responsive to determining that the carried thread is unmounted, the agent stores the active debug configuration for the carrier thread as a recorded debug configuration associated with the carried thread. The agent transmits a command to reset the active debug configuration on the carrier thread. Responsive to determining that the carried thread is mounted on a carrier thread, the agent retrieves the recorded debug configuration. The agent restores the recorded debug configuration as an active debug configuration on the current carrier thread.Type: ApplicationFiled: April 23, 2019Publication date: October 29, 2020Applicant: Oracle International CorporationInventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
-
Publication number: 20200341884Abstract: Providing debugging support for a carried thread are disclosed. A debug agent converts between identifiers of carried threads and carrier threads. Further, a debug agent transfers debug configurations amongst multiple carrier threads associated with a same carried thread. With respect to identifier conversion, an agent receives, from a debuggee, a notification that an event occurred in association with a carrier thread. The agent determines that a carried thread is mounted on the carrier thread. The agent transmits, to the debugger, a notification that the event occurred in association with the carried thread.Type: ApplicationFiled: April 23, 2019Publication date: October 29, 2020Applicant: Oracle International CorporationInventors: Christopher J. Plummer, Serguei Vladimirovich Spitsyn
-
Patent number: 8978023Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.Type: GrantFiled: October 22, 2012Date of Patent: March 10, 2015Assignee: Oracle International CorporationInventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Edward J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
-
Patent number: 8863126Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.Type: GrantFiled: October 22, 2012Date of Patent: October 14, 2014Assignee: Oracle International CorporationInventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Edward J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
-
Patent number: 8856805Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.Type: GrantFiled: October 22, 2012Date of Patent: October 7, 2014Assignee: Oracle International CorporationInventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Edward J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
-
Publication number: 20130283251Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.Type: ApplicationFiled: October 22, 2012Publication date: October 24, 2013Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Ted J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
-
Publication number: 20130283294Abstract: A native application built for a mobile device can embed non-native JAVA code that may be executed by a JAVA virtual machine also embedded as a library within the native application. Enterprise applications may be extended for use by mobile devices. Business logic for an application may be constructed just once and then used in both enterprise applications and mobile device applications.Type: ApplicationFiled: October 22, 2012Publication date: October 24, 2013Inventors: Noel Poore, William Bruce Kilgore, Anki R. Nelaturu, Hinkmond B. Wong, Ted J. Farrell, Dov Zandman, Christopher J. Plummer, David Robert Martin, Denis J. Tyrell
-
Patent number: 8176491Abstract: A mechanism is disclosed for implementing fast synchronization of simple synchronized methods in a virtual machine. The mechanism provides for determining, during runtime, whether a set of instructions can be fully executed in lieu of invoking a synchronized method, which requires locking of a particular object. The set of instructions provides equivalent functionality to the synchronized method but with less locking overhead. In response to a determination that the set of instructions can be fully executed, the set of instructions is fully executed to achieve equivalent functionality to the synchronized method in lieu of invoking the synchronized method. In response to a determination that the set of instructions cannot be fully executed, the synchronized method is invoked. With this mechanism, simple synchronized methods can be executed with less locking overhead.Type: GrantFiled: August 4, 2006Date of Patent: May 8, 2012Assignee: Oracle America, Inc.Inventors: Christopher J. Plummer, Yin Zin Mark Lam
-
Patent number: 8099724Abstract: A patch-based mechanism is disclosed for providing fast invocations of a target method from a compiled calling method. The code for the calling method is stored into a storage. The code for the calling method comprises an instruction for invoking the target method, where the instruction comprises a parameter. In response to a state change from a current state to a new state that is experienced by the target method, the parameter is modified from a first value to a second value, where the second value indicates the correct address for facilitating the execution of the target method in its new state. Thus, the parameter in the instruction for invoking the target method always reflects the correct state of the target method, which provides for a fast invocation of the target method when the instruction is executed.Type: GrantFiled: February 28, 2006Date of Patent: January 17, 2012Assignee: Oracle America, Inc.Inventor: Christopher J. Plummer
-
Patent number: 7788655Abstract: A compilation mechanism is disclosed for facilitating the keeping of local variables in the same hardware registers across multiple code blocks. In one implementation, each code block has a list of local variables associated therewith. This list of local variables represents the local variables that should be loaded into registers prior to entering a code block. For multiple code blocks, the various lists may have local variables in common. In one implementation, the mechanism orders the local variables in the various lists in such a manner that, as much as possible, the same local variables are placed in the same slots of the various lists. By doing so, the mechanism minimizes the movement of local variables from register to register when going from code block to code block.Type: GrantFiled: August 30, 2005Date of Patent: August 31, 2010Assignee: Oracle America, Inc.Inventor: Christopher J. Plummer
-
Patent number: 7770169Abstract: Techniques for assuring thread rendezvous for a plurality of threads executing in a computing system are disclosed. Techniques can be used to assure thread rendezvous for read-only code in a manner that is more efficient than polling techniques. A Light-weight, Yet Trappable On Demand (LYTOD) instruction can be generated for code that is executed by one or more threads. Typically, a LYTOD instruction is generated at critical points of the code in order to assure safe-point thread rendezvous. The LYTOD is a lightweight instruction that can change its behavior from a lightweight instruction to an instruction that causes a trap when executed. The LYTOD can, for example, be implemented as a read-from-memory instruction that operates to load a register with a content of a valid memory location.Type: GrantFiled: May 17, 2004Date of Patent: August 3, 2010Assignee: Oracle America, Inc.Inventors: Nedim Fresko, Christopher J. Plummer, Dean R. Long
-
Patent number: 7647586Abstract: A system and method for providing exceptional flow control in protected code through watchpoints is described. Code is generated. The generated code includes a sequence of normal operations and is subject to protection against copying during execution of the generated code. Execution points within the generated code are identified. A watchpoint corresponding to each of the execution points is set. An exception handler associated with each watchpoint is defined and includes operations exceptional to the normal operations sequence that are performed upon a triggering of each watchpoint during execution of the generated code.Type: GrantFiled: August 13, 2004Date of Patent: January 12, 2010Assignee: Sun Microsystems, Inc.Inventors: Dean R. E. Long, Christopher J. Plummer, Nedim Fresko
-
Patent number: 7472383Abstract: A system and method for providing exceptional flow control in protected code through memory layers. Code is generated. The generated code includes a sequence of normal operations and is subject to protection against copying during execution of the generated code. The generated code is instantiated as a master process into a master layer in a memory space. The master process is cloned by instantiating a copy of the master process as a child layer in the memory space. Execution points within the generated code are identified. A copy of at least a portion of the generated code containing each execution point as an exception layer is instantiated in the memory space. The generated code in the exception layer is patched at each identified execution point with operations exceptional to the normal operations sequence and which are performed upon a triggering of each execution point during execution of the generated code.Type: GrantFiled: August 13, 2004Date of Patent: December 30, 2008Assignee: Sun Microsystems, Inc.Inventors: Dean R. E. Long, Nedim Fresko, Christopher J. Plummer
-
Patent number: 7055133Abstract: Methods and apparatus for eliminating C recursion from interpreter loops are disclosed. According to one aspect of the present invention, a computer-implemented method for substantially eliminating C recursion from the execution of static initializer methods in a virtual machine environment includes rewriting native C code associated with a static initializer as a Java programming language method, and using a transition frame in a Java programming language stack to execute the Java programming language method. The method also includes using a native method to manipulate the Java programming language stack, and using a first opcode in the transition frame. In one embodiment, using the first opcode in the transition frame includes using the first opcode to determine that the transition frame is associated with the static initializer.Type: GrantFiled: April 12, 2005Date of Patent: May 30, 2006Assignee: Sun Microsystems, Inc.Inventors: Christopher J. Plummer, Dean R. E. Long
-
Patent number: 6978448Abstract: Methods and apparatus for reducing the number of runtime checks performed during the execution of a virtual machine. According to one aspect of the present invention, a computer system includes a preloader, a compiler, and a virtual machine. The preloader is arranged to determine whether a bytecode makes an active reference to a class which requires an execution of a static initializer, and is also arranged to determine if the class has a superclass which requires the execution of the static initializer. The compiler is arranged to accept a source file generated by the preloader as input and to produce an object file, and the virtual machine is arranged to execute the object file.Type: GrantFiled: April 24, 2001Date of Patent: December 20, 2005Assignee: Sun Microsystems, Inc.Inventors: Christopher J. Plummer, Nedim Fresko, Richard D. Tuck
-
Patent number: 6915508Abstract: Methods and apparatus for eliminating C recursion from interpreter loops are disclosed. According to one aspect of the present invention, a computer-implemented method for substantially eliminating C recursion from the execution of static initializer methods in a virtual machine environment includes rewriting native C code associated with a static initializer as a Java™ method, and using a transition frame in a Java™ stack to execute the Java™ method. The method also includes using a native method to manipulate the Java™ stack, and using a first opcode in the transition frame. In one embodiment, using the first opcode in the transition frame includes using the first opcode to determine that the transition frame is associated with the static initializer. In another embodiment, the method further includes causing the static initializer to run, wherein the static initializer using a second opcode, and resuming execution at the second opcode after the static initializer has run.Type: GrantFiled: April 24, 2001Date of Patent: July 5, 2005Assignee: Sun Microsystems, Inc.Inventors: Christopher J. Plummer, Dean R. E. Long
-
Patent number: 6886157Abstract: Methods, apparatus and computer program products are disclosed for a method of invoking a native method in a Java virtual machine (“JVM”). A special-purpose fast interface, executing in conjunction with an interpreter loop, for native methods reduces C stack recursion in the JVM. The interface performs as an extension to the interpreter loop component in the JVM in that a native method, invoked via the special-purpose interface, is able to modify the interpreter loop state if necessary. This is done without adding new bytecode instructions. A method of executing a native method in a Java virtual machine is described. The JVM first determines whether a native method is to be handled by a special native interface or one of multiple other native interfaces. If it is determined that the method is to be handled by the special native interface, the method is invoked and passed arguments enabling it to access the state of the JVM. The method is then executed.Type: GrantFiled: May 25, 2001Date of Patent: April 26, 2005Assignee: Sun Microsystems, Inc.Inventors: Dean R. E. Long, Christopher J. Plummer, Nedim Fresko
-
Patent number: 6836782Abstract: Methods and apparatus for efficiently enabling garbage collectors to be swapped into and out of virtual machine environments are disclosed. According to one aspect of the present invention, an interface for reclaiming memory in a multi-threaded virtual machine environment that has a virtual machine includes a first module that is associated with the virtual machine and a second module that is separate from the first module but interfaces with the first module. The first module includes a first routine for initiating a garbage collection process within the virtual machine environment, a second routine for scanning roots associated with the virtual machine environment, and a third routine for following roots through objects associated with the virtual machine environment.Type: GrantFiled: April 17, 2001Date of Patent: December 28, 2004Assignee: Sun Microsystems, Inc.Inventors: Nedim Fresko, Dean R. E. Long, Christopher J. Plummer