Patents by Inventor Dean R. E. Long
Dean R. E. Long 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: 9477588Abstract: A system that allocates memory for immutable data on a computing device. The system allocates a memory region on the computing device to store immutable data for an executing application. This memory region is smaller than the immutable data for the application. When the system subsequently receives a request to access a block of immutable data for the application, the system allocates space in this memory region for the block, and proceeds to load the block into the memory region. If at a later time the space occupied by this first block is needed for another block, the system unloads and discards the first block. If a subsequent operation needs to use information in the first block, the system regenerates the block by transforming raw data associated with the block into a form that can be directly accessed by the application, and then reloads the block into the memory region.Type: GrantFiled: May 7, 2014Date of Patent: October 25, 2016Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Oleg A. Pliss, Dean R. E. Long, Erez Landau
-
Patent number: 9027011Abstract: One embodiment of the present invention provides a system that profiles software code to dynamically tune a virtual machine for responsiveness and/or throughput. First, the system profiles software code to track a need for a higher level of responsiveness and/or throughput. The system then gathers statistics for system behavior through the profiling techniques while executing the profiled software code, and uses these statistics to dynamically tune a virtual machine.Type: GrantFiled: August 31, 2006Date of Patent: May 5, 2015Assignee: Oracle America, Inc.Inventors: Yin Zin Mark Lam, Dean R. E. Long
-
Publication number: 20140244963Abstract: A system that allocates memory for immutable data on a computing device. The system allocates a memory region on the computing device to store immutable data for an executing application. This memory region is smaller than the immutable data for the application. When the system subsequently receives a request to access a block of immutable data for the application, the system allocates space in this memory region for the block, and proceeds to load the block into the memory region. If at a later time the space occupied by this first block is needed for another block, the system unloads and discards the first block. If a subsequent operation needs to use information in the first block, the system regenerates the block by transforming raw data associated with the block into a form that can be directly accessed by the application, and then reloads the block into the memory region.Type: ApplicationFiled: May 7, 2014Publication date: August 28, 2014Applicant: Oracle International CorporationInventors: Oleg A. Pliss, Dean R. E. Long, Erez Landau
-
Patent number: 8812809Abstract: One embodiment of the present invention provides a system that allocates memory for immutable data on a computing device. During operation, the system receives an application to be executed on the computing device. Next, the system allocates a memory region on the computing device to store immutable data for the application. Note that this memory region is smaller than the immutable data for the application. When the system subsequently receives a request to access a block of immutable data for the application, the system allocates space in this memory region for the block, and proceeds to load the block into the memory region. However, if at a later time the space occupied by this first block is needed for another block, the system unloads and discards the first block.Type: GrantFiled: June 10, 2008Date of Patent: August 19, 2014Assignee: Oracle America, Inc.Inventors: Oleg A. Pliss, Dean R. E. Long, Erez Landau
-
Patent number: 8756681Abstract: A hybrid system is provided. The system includes a computing device implementing a first application execution environment (AEE) and a second AEE. The first AEE is configured to be isolated from the second AEE. The first software application associated with the first AEE is configured to be processed on the first AEE such that the first software application is denied direct access to the second AEE. A second software application associated with the second AEE is configured to be processed on the second AEE such that the second software application is denied direct access to the first AEE.Type: GrantFiled: December 30, 2011Date of Patent: June 17, 2014Assignee: Oracle International CorporationInventors: Nedim Fresko, Richard D. Tuck, Dean R. E. Long
-
Patent number: 8533710Abstract: One embodiment of the present invention provides a system that uses observed thread activity to dynamically tune a virtual machine for responsiveness and/or throughput. During operation, the system observes the activity of a thread to determine whether the thread needs responsiveness and/or throughput. Next, the system gathers statistics for the thread based on these observations of thread activity, and then uses these statistics to dynamically tune a virtual machine upon which the thread will execute.Type: GrantFiled: August 31, 2006Date of Patent: September 10, 2013Assignee: Oracle America, Inc.Inventors: Dean R. E. Long, Yin Zin Mark Lam
-
Patent number: 8255922Abstract: A mechanism is disclosed for enabling multiple processes to share the same portion of physical memory. The first time an instance of a process is executed, a list of common components is compiled. The compiled code is then written into a newly created mappable data structure, which is stored into persistent storage. The next time an instance of that process is executed, the mappable data structure is mapped into a portion of the process instance's virtual memory space. This enables the process instance to invoke the compiled code for the common components. Multiple instances of the process may have their virtual memory spaces mapped to the same mappable data structure in this way. Thereafter, it is up to the operating system to load the contents of the mappable data structure into a portion of physical memory, and to ensure that all of the process instances share that physical memory portion.Type: GrantFiled: January 9, 2006Date of Patent: August 28, 2012Assignee: Oracle America, Inc.Inventors: Nedim Fresko, Jiangli Zhou, Dean R. E. Long
-
Patent number: 8176142Abstract: Techniques are disclosed for sharing programmatic modules among isolated virtual machines. A master JVM process loads data from a programmatic module, storing certain elements of that data into its private memory region, and storing other elements of that data into a “read-only” area of a shareable memory region. The master JVM process copies loaded data from its private memory region into a “read/write” area of the shareable memory region. Instead of re-loading the data from the programmatic module, other JVM processes map to the read-only area and also copy the loaded data from the read/write area into their own private memory regions. The private memory areas of all of the JVM processes begin at the same virtual memory address, so references between read-only data and copied data are preserved correctly. As a result, multiple JVM processes start up faster, and memory is conserved by avoiding the redundant storage of shareable data.Type: GrantFiled: December 21, 2010Date of Patent: May 8, 2012Assignee: Oracle America, Inc.Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
-
Publication number: 20120102567Abstract: A hybrid system is provided. The system includes a computing device implementing a first application execution environment (AEE) and a second AEE. The first AEE is configured to be isolated from the second AEE. The first software application associated with the first AEE is configured to be processed on the first AEE such that the first software application is denied direct access to the second AEE. A second software application associated with the second AEE is configured to be processed on the second AEE such that the second software application is denied direct access to the first AEE.Type: ApplicationFiled: December 30, 2011Publication date: April 26, 2012Applicant: Oracle America, Inc.Inventors: Nedim Fresko, Richard D. Tuck, Dean R.E. Long
-
Patent number: 8104085Abstract: A hybrid system is provided. The system includes a computing device implementing a first application execution environment (AEE) and a second AEE. The first AEE is configured to be isolated from the second AEE. The first software application associated with the first AEE is configured to be processed on the first AEE such that the first software application is denied direct access to the second AEE. A second software application associated with the second AEE is configured to be processed on the second AEE such that the second software application is denied direct access to the first AEE.Type: GrantFiled: June 24, 2004Date of Patent: January 24, 2012Assignee: Oracle America, Inc.Inventors: Nedim Fresko, Richard D. Tuck, Dean R. E. Long
-
Publication number: 20110145358Abstract: Techniques are disclosed for sharing programmatic modules among isolated virtual machines. A master JVM process loads data from a programmatic module, storing certain elements of that data into its private memory region, and storing other elements of that data into a “read-only” area of a shareable memory region. The master JVM process copies loaded data from its private memory region into a “read/write” area of the shareable memory region. Instead of re-loading the data from the programmatic module, other JVM processes map to the read-only area and also copy the loaded data from the read/write area into their own private memory regions. The private memory areas of all of the JVM processes begin at the same virtual memory address, so references between read-only data and copied data are preserved correctly. As a result, multiple JVM processes start up faster, and memory is conserved by avoiding the redundant storage of shareable data.Type: ApplicationFiled: December 21, 2010Publication date: June 16, 2011Applicant: ORACLE AMERICA, INC.Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
-
Patent number: 7886300Abstract: A mechanism is disclosed for implementing fast locking in a multi-threaded system. This mechanism enables fast locking to be performed even on an operating system platform that does not allow one thread to assign ownership of a lock on a mutex to another thread. In addition, the mechanism performs locking in a manner that ensures priority correctness and is low-memory safe. In one implementation, the priority correctness is achieved by using operating system mutexes to implement locking, and the low-memory safe aspect is achieved by pre-allocating a memory section to each thread. This pre-allocated memory section ensures that a thread will have sufficient memory to obtain a lock, even when a system is in a low-memory state. With this mechanism, it is possible to implement locking in a safe and efficient manner.Type: GrantFiled: September 26, 2006Date of Patent: February 8, 2011Assignee: Oracle America, Inc. formerly known as Sun Microsystems, Inc.Inventors: Dean R. E. Long, Yin Zin Mark Lam, Jiangli Zhou
-
Patent number: 7882198Abstract: Techniques are disclosed for sharing programmatic modules among isolated virtual machines. A master JVM process loads data from a programmatic module, storing certain elements of that data into its private memory region, and storing other elements of that data into a “read-only” area of a shareable memory region. The master JVM process copies loaded data from its private memory region into a “read/write” area of the shareable memory region. Instead of re-loading the data from the programmatic module, other JVM processes map to the read-only area and also copy the loaded data from the read/write area into their own private memory regions. The private memory areas of all of the JVM processes begin at the same virtual memory address, so references between read-only data and copied data are preserved correctly. As a result, multiple JVM processes start up faster, and memory is conserved by avoiding the redundant storage of shareable data.Type: GrantFiled: July 2, 2007Date of Patent: February 1, 2011Assignee: Oracle America, Inc.Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
-
Publication number: 20100023702Abstract: Techniques are disclosed for sharing programmatic modules among isolated virtual machines. A master JVM process loads data from a programmatic module, storing certain elements of that data into its private memory region, and storing other elements of that data into a “read-only” area of a shareable memory region. The master JVM process copies loaded data from its private memory region into a “read/write” area of the shareable memory region. Instead of re-loading the data from the programmatic module, other JVM processes map to the read-only area and also copy the loaded data from the read/write area into their own private memory regions. The private memory areas of all of the JVM processes begin at the same virtual memory address, so references between read-only data and copied data are preserved correctly. As a result, multiple JVM processes start up faster, and memory is conserved by avoiding the redundant storage of shareable data.Type: ApplicationFiled: July 2, 2007Publication date: January 28, 2010Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
-
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
-
Publication number: 20090307455Abstract: One embodiment of the present invention provides a system that allocates memory for immutable data on a computing device. During operation, the system receives an application to be executed on the computing device. Next, the system allocates a memory region on the computing device to store immutable data for the application. Note that this memory region is smaller than the immutable data for the application. When the system subsequently receives a request to access a block of immutable data for the application, the system allocates space in this memory region for the block, and proceeds to load the block into the memory region. However, if at a later time the space occupied by this first block is needed for another block, the system unloads and discards the first block.Type: ApplicationFiled: June 10, 2008Publication date: December 10, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: Oleg A. Pliss, Dean R.E. Long, Erez Landau
-
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: 7086053Abstract: Methods and apparatus for enabling inconsistent or unsafe threads to efficiently reach a consistent or safe state when a requesting thread requests a consistent state are disclosed. According to one aspect of the present invention, a method for requesting a consistent state in a multi-threaded computing environment using a first thread includes acquiring a consistent state lock using the first thread, and identifying substantially all threads in the environment that are inconsistent. The state of the inconsistent threads is altered to a consistent state, and the first thread is notified when the states of the previously inconsistent threads have been altered to be consistent. Once the first thread is notified, the first thread releases the consistent state lock. In one embodiment, the method also includes performing a garbage collection after releasing the consistent state lock using the first thread.Type: GrantFiled: April 17, 2001Date of Patent: August 1, 2006Assignee: Sun Microsystems, Inc.Inventors: Dean R. E. Long, Nedim Fresko
-
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: 7003521Abstract: Methods and apparatus for a scaleable locking convention are disclosed. According to one aspect of the present invention, a method for acquiring access to an object in an object-based system includes identifying a memory address value associated with the object, and identifying a first synchronization construct that is suitable for use in granting access to the object. The synchronization construct is arranged to be identified using at least part of the memory address value. The method also includes determining when the first synchronization construct is available to be acquired, e.g., by a thread, and associating the first synchronization construct with the object when the first synchronization construct is available. In one embodiment, the first synchronization construct is a non-nestable, global lock.Type: GrantFiled: March 22, 2001Date of Patent: February 21, 2006Assignee: Sun Microsystems, Inc.Inventor: Dean R. E. Long