Patents by Inventor Laurent P. Daynes

Laurent P. Daynes 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: 6799173
    Abstract: A system is described that facilitates sharing an object containing embedded references to non-shared objects, which may be located at different virtual memory addresses in different processes. During operation, the system looks up the object in a shared memory area, wherein the shared memory area is mapped to the same virtual address by all sharing processes. If the object does not exist in the shared memory area, the system creates the object within the shared memory area, and sets embedded references in the object to point to entries in an indirection table located at a second virtual address, wherein each sharing process maintains its own private version of the indirection table at the same second virtual address. Next, the system performs a private initialization operation on the object for a specific process by setting references in the private version of the indirection table for the specific process to point to non-shared objects located in a private memory area for the specific process.
    Type: Grant
    Filed: March 19, 2002
    Date of Patent: September 28, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes, Nathaniel J. Nystrom
  • Publication number: 20040117805
    Abstract: A method of reducing interference among applications co-located in a process when using dynamic libraries is disclosed. For each dynamic library, multiple instances of the dynamic library are loaded in the same operating system process (or process), whereas each instance of the dynamic library corresponds to one of the multiple applications co-located in the same process. In particular, the text segments (or read-only segments) of the instances of the dynamic library are mapped to the same physical memory pages, leading to a low memory footprint. Moreover, within the process, a co-located application's access to a dynamic library is directed to the instance (of the dynamic library) associated with the accessing application, reducing interference among applications co-located in the same process.
    Type: Application
    Filed: December 12, 2002
    Publication date: June 17, 2004
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes, Rodrick Ison Evans
  • Publication number: 20040117789
    Abstract: A method of automatically virtualizing core native libraries of a virtual machine is disclosed. In an embodiment, the virtual machine is a java virtual machine (JVM). In this technique, the interface between the virtual machine and the core native libraries is controlled, since multiple instances of a core native library are loaded into the same process based on the number of co-located applications. Moreover, the interactions between the core native libraries and the underlying operating system (OS) are controlled so that a single point of contact is presented to the OS. Also, the dependencies the core native libraries may have on the virtual machine are handled.
    Type: Application
    Filed: December 12, 2002
    Publication date: June 17, 2004
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Publication number: 20040015921
    Abstract: The invention describes a method an apparatus to minimize the costs introduced in the native code of a method M in order to make it executable (concurrently or serially) by multiple tasks, wherein M's native code is produced by the dynamic compiler of a multitasking virtual machine. One embodiment of the present invention describes a mechanism that annotates the shared runtime representation of classes with information that identifies the particular event that triggered the initialization of these classes, and in particular, if that event is the execution of class initialization barrier from a method of another class. These annotations are then used during each dynamic compilation of a method M of a class C to determine when native code corresponding to a class initialization barrier needs to be generated in the task re-entrant native code produced by the dynamic compiler for M.
    Type: Application
    Filed: December 4, 2001
    Publication date: January 22, 2004
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Publication number: 20030208500
    Abstract: System resources (e.g., objects or other resources) are managed to provide multiple levels of undo and/or support for delegation of updates on main-memory resident objects accessible by concurrent transactions. For example, a log associated with each transaction stores information regarding an update to an object when the object is locked in an update mode (e.g., a write mode) by the transaction. The transaction can be rolled back by restoring information from the log of the transaction to the object. If the transaction commits, then the log may be destroyed. If the transaction delegates to another transaction, the log of the transaction is also delegated. A record codelet can be automatically generated to perform the storing of information in the log, and a restore codelet can be automatically generated to undo updates by restoring information from the log to the updated objects. The codelets may be specific to each class of objects.
    Type: Application
    Filed: February 14, 2003
    Publication date: November 6, 2003
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Publication number: 20030105756
    Abstract: Techniques have been developed whereby lock state sharing can be extended to provide a low-space overhead lock management facility with comprehensive support for bulk lock delegation. Operating in conjunction with delegation request validation methods, the techniques provide an efficient bulk lock delegation facility for many advanced transaction models. Some implementations in accordance with the present invention provide bulk lock delegation with computational costs that are generally independent of the number of locks being delegated. Accordingly, such implementations may be particularly attractive for systems that demand for fine-granularity locking, large transaction sizes (in term of number of locks acquired), and efficient delegation mechanisms.
    Type: Application
    Filed: November 14, 2001
    Publication date: June 5, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Laurent P. Daynes
  • Publication number: 20030105755
    Abstract: A lock management technique that combines low-space overhead via sharing of lock states of equal value with comprehensive support for bulk delegation of locks has been developed. Operating in conjunction with methods for validating delegation requests prior to their execution, bulk delegation of locks can be achieved with computational costs that are generally independent of the number of lock being delegated. This property, added to the low-space overhead representation of locks via lock state sharing, offer a combination that may be particularly attractive for systems that demand for fine-granularity locking, large transaction sizes (in term of number of locks acquired) and efficient bulk delegation mechanisms.
    Type: Application
    Filed: November 14, 2001
    Publication date: June 5, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Laurent P. Daynes
  • Publication number: 20030093401
    Abstract: One embodiment of the present invention provides a system that uses a shared library to facilitate sharing objects containing metadata. During operation, the system receives identifiers for a set of objects to be included in the shared library. Next, the system generates a shared library containing the set of objects. In doing so, the system configures a symbol table within the shared library to include an identifier for each object. The system then installs the shared library in a file system, and configures the file system so that the shared library file can be accessed through a set of symbolic names, wherein each object is associated with a different symbolic name. This allows each object in the shared library to be referenced through its own symbolic name. Note that the present invention uses the shared library mechanism in a manner which differs from its typical use (sharing compiled, executable code).
    Type: Application
    Filed: March 19, 2002
    Publication date: May 15, 2003
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Publication number: 20030093487
    Abstract: One embodiment of the present invention provides a system that facilitates sharing an object containing embedded references to non-shared objects, which may be located at different virtual memory addresses in different processes. During operation, the system looks up the object in a shared memory area, wherein the shared memory area is mapped to the same virtual address by all sharing processes. If the object does not exist in the shared memory area, the system creates the object within the shared memory area, and sets embedded references in the object to point to entries in an indirection table located at a second virtual address, wherein each sharing process maintains its own private version of the indirection table at the same second virtual address.
    Type: Application
    Filed: March 19, 2002
    Publication date: May 15, 2003
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes, Nathaniel J. Nystrom
  • Publication number: 20020133527
    Abstract: One embodiment of the present invention provides a system for efficient class initialization barrier and access to class information private to a task that enables sharing between multiple tasks/virtual machines of both interpreted platform-independent code and the equivalent native code produced at runtime, wherein a class initialization barrier guarantees that a task initializes a class before the class is first used by the program executed by the task. The system operates by associating the shared runtime representation of classes with tables of pointers to task class mirror objects that hold the task private representation of a class. Entries of task class mirror tables are used both as a mean to encode the initialization status of the associated class for a plurality of tasks, and to provide access to the task private representation of a class loaded by a task irrespectively of the initialization state of the class for this task.
    Type: Application
    Filed: October 9, 2001
    Publication date: September 19, 2002
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Publication number: 20020133533
    Abstract: One embodiment of the present invention provides a system for managing surplus memory in a multitasking system. The system operates by reserving a guaranteed amount of memory from a heap for a task. Heap memory not reserved for a task is surplus memory. When the system receives a request from the task to allocate memory for a new object, the system determines if memory is available within the guaranteed amount of memory. If so, the system allocates memory for the new object from the guaranteed memory. Otherwise, if available, the system reserves an additional amount of memory to the task from surplus memory in the heap. The system then allocates memory for the new object from the additional amount of memory. Allocating memory for the new object from the additional amount of memory delays garbage collection of the memory. Surplus memory can be transparently reclaimed.
    Type: Application
    Filed: June 18, 2001
    Publication date: September 19, 2002
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Publication number: 20020133638
    Abstract: A method is provided that enables native code, dynamically compiled from platform-independent code by one task of a multitasking virtual machine, to be used by other tasks. The system interprets the platform-independent code of a method for a threshold number of interpretations, and then produces class initialization dependent (CID) native code. The runtime of the system guarantees that a task uses CID code of a method only when all of the classes of an initialized set associated with the CID code have been initialized by the task, and otherwise, interprets the platform-independent code of the method. This allows the compiler to avoid generating class initialization barriers for classes from the initialized set. After a threshold number of failures to execute the CID code of a method, task reentrant code is generated to replace the interpretation of its platform-independent code.
    Type: Application
    Filed: January 10, 2002
    Publication date: September 19, 2002
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Publication number: 20020087737
    Abstract: The present invention relates to computer systems and methods for providing a memory buffer for use with native and platform-independent software code.
    Type: Application
    Filed: February 11, 2002
    Publication date: July 4, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Publication number: 20020065943
    Abstract: One embodiment of the present invention provides a system that facilitates automated isolation of native code within a computer program that has been compiled to a platform-independent code. The system operates by receiving a library containing a native code sub-routine that provides a service to the computer program. The system analyzes the library to determine the symbol name for the native code sub-routine. A proxy sub-routine is generated for each native code sub-routine exported by the native library that forms a link to the native code sub-routine. This proxy sub-routine is placed into a new library using the original name of the native code sub-routine. The system runs the native code sub-routine in one process, and executes the platform-independent code in a separate process. The system invokes the native code sub-routine in the first process by calling the proxy sub-routine from the platform-independent code in the second process.
    Type: Application
    Filed: April 24, 2001
    Publication date: May 30, 2002
    Inventors: Gregorz J. Czajkowski, Laurent P. Daynes, Mario I. Wolczko