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: 9477588
    Abstract: 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: Grant
    Filed: May 7, 2014
    Date of Patent: October 25, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Oleg A. Pliss, Dean R. E. Long, Erez Landau
  • Patent number: 9027011
    Abstract: 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: Grant
    Filed: August 31, 2006
    Date of Patent: May 5, 2015
    Assignee: Oracle America, Inc.
    Inventors: Yin Zin Mark Lam, Dean R. E. Long
  • Publication number: 20140244963
    Abstract: 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: Application
    Filed: May 7, 2014
    Publication date: August 28, 2014
    Applicant: Oracle International Corporation
    Inventors: Oleg A. Pliss, Dean R. E. Long, Erez Landau
  • Patent number: 8812809
    Abstract: 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: Grant
    Filed: June 10, 2008
    Date of Patent: August 19, 2014
    Assignee: Oracle America, Inc.
    Inventors: Oleg A. Pliss, Dean R. E. Long, Erez Landau
  • Patent number: 8756681
    Abstract: 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: Grant
    Filed: December 30, 2011
    Date of Patent: June 17, 2014
    Assignee: Oracle International Corporation
    Inventors: Nedim Fresko, Richard D. Tuck, Dean R. E. Long
  • Patent number: 8533710
    Abstract: 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: Grant
    Filed: August 31, 2006
    Date of Patent: September 10, 2013
    Assignee: Oracle America, Inc.
    Inventors: Dean R. E. Long, Yin Zin Mark Lam
  • Patent number: 8255922
    Abstract: 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: Grant
    Filed: January 9, 2006
    Date of Patent: August 28, 2012
    Assignee: Oracle America, Inc.
    Inventors: Nedim Fresko, Jiangli Zhou, Dean R. E. Long
  • Patent number: 8176142
    Abstract: 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: Grant
    Filed: December 21, 2010
    Date of Patent: May 8, 2012
    Assignee: Oracle America, Inc.
    Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
  • Publication number: 20120102567
    Abstract: 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: Application
    Filed: December 30, 2011
    Publication date: April 26, 2012
    Applicant: Oracle America, Inc.
    Inventors: Nedim Fresko, Richard D. Tuck, Dean R.E. Long
  • Patent number: 8104085
    Abstract: 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: Grant
    Filed: June 24, 2004
    Date of Patent: January 24, 2012
    Assignee: Oracle America, Inc.
    Inventors: Nedim Fresko, Richard D. Tuck, Dean R. E. Long
  • Publication number: 20110145358
    Abstract: 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: Application
    Filed: December 21, 2010
    Publication date: June 16, 2011
    Applicant: ORACLE AMERICA, INC.
    Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
  • Patent number: 7886300
    Abstract: 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: Grant
    Filed: September 26, 2006
    Date of Patent: February 8, 2011
    Assignee: Oracle America, Inc. formerly known as Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Yin Zin Mark Lam, Jiangli Zhou
  • Patent number: 7882198
    Abstract: 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: Grant
    Filed: July 2, 2007
    Date of Patent: February 1, 2011
    Assignee: Oracle America, Inc.
    Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
  • Publication number: 20100023702
    Abstract: 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: Application
    Filed: July 2, 2007
    Publication date: January 28, 2010
    Inventors: Erez Landau, Dean R. E. Long, Nedim Fresko
  • Patent number: 7647586
    Abstract: 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: Grant
    Filed: August 13, 2004
    Date of Patent: January 12, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Christopher J. Plummer, Nedim Fresko
  • Publication number: 20090307455
    Abstract: 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: Application
    Filed: June 10, 2008
    Publication date: December 10, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Oleg A. Pliss, Dean R.E. Long, Erez Landau
  • Patent number: 7472383
    Abstract: 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: Grant
    Filed: August 13, 2004
    Date of Patent: December 30, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Nedim Fresko, Christopher J. Plummer
  • Patent number: 7086053
    Abstract: 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: Grant
    Filed: April 17, 2001
    Date of Patent: August 1, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Nedim Fresko
  • Patent number: 7055133
    Abstract: 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: Grant
    Filed: April 12, 2005
    Date of Patent: May 30, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher J. Plummer, Dean R. E. Long
  • Patent number: 7003521
    Abstract: 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: Grant
    Filed: March 22, 2001
    Date of Patent: February 21, 2006
    Assignee: Sun Microsystems, Inc.
    Inventor: Dean R. E. Long