Patents by Inventor Grzegorz J. Czajkowski

Grzegorz J. Czajkowski 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: 7165255
    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: Grant
    Filed: June 18, 2001
    Date of Patent: January 16, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Patent number: 7162711
    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: Grant
    Filed: December 12, 2002
    Date of Patent: January 9, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Patent number: 7065755
    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: Grant
    Filed: December 4, 2001
    Date of Patent: June 20, 2006
    Assignee: SUN Microsystems, Inc.
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Patent number: 7003768
    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: Grant
    Filed: October 9, 2001
    Date of Patent: February 21, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Patent number: 6993761
    Abstract: One embodiment of the present invention provides a system for verifying type safety of an application snapshot. This application snapshot includes a state of an executing program that is moved from a first computing device to a second computing device across a network in order to continue execution on the second computing device. The system operates by receiving the application snapshot from the first computing device on the second computing device, wherein the application snapshot includes a subprogram, an operand stack, and a point of execution. The system then examines the application snapshot to identify one or more subprograms and the point of execution within the subprograms. Next, the system examines the subprogram to determine an expected structure of the operand stack at the point of execution.
    Type: Grant
    Filed: September 28, 2000
    Date of Patent: January 31, 2006
    Assignee: SUN Microsystems, Inc.
    Inventors: Grzegorz J. Czajkowski, Mario I. Wolczko
  • Patent number: 6938247
    Abstract: A system and method for isolating the execution of a plurality of applications. The applications may utilize or share one or more “original” classes. Only one copy of each original class is maintained, regardless of how many applications utilize it. Static fields are extracted from the original classes. A separate copy of the static fields is created for each of the utilizing applications. A static field class which includes instance fields corresponding to the static fields may be created, wherein each instance of the static field class corresponds to one of the utilizing applications. Access methods for the one or more static fields may be created, wherein the access methods are operable to access the corresponding separate copy of the static fields based upon the identity of the utilizing application. A single access methods class may be created for each original class, wherein the single access methods class includes the access methods for accessing the extracted fields from the original class.
    Type: Grant
    Filed: May 19, 2003
    Date of Patent: August 30, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Grzegorz J. Czajkowski
  • Patent number: 6931638
    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 re-entrant code is generated to replace the interpretation of its platform-independent code.
    Type: Grant
    Filed: January 10, 2002
    Date of Patent: August 16, 2005
    Assignee: Sun Microsystems, Inc
    Inventors: Laurent P. Daynes, Grzegorz J. Czajkowski
  • Patent number: 6901586
    Abstract: A system and method are provided for thread-safe initialization of static variables in a multitasking system. In one embodiment, the static fields of a class may be “virtualized” such that each application that utilizes the class has its own copy of static fields. Each separate copy of the static fields is initialized only once. Instructions for performing the initialization may be embedded in a class constructor. The class constructor may be executed only once for each separate copy of the static fields. A template class may be loaded for each separate copy of the static fields when a copy of the static fields is sought to be initialized. The template class may include a static initializer for one of the separate copies of the static fields. The static initializer may be executed once for each separate copy of the static fields.
    Type: Grant
    Filed: November 6, 2000
    Date of Patent: May 31, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Grzegorz J. Czajkowski
  • Patent number: 6876996
    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: Grant
    Filed: March 19, 2002
    Date of Patent: April 5, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Grzegorz J. Czajkowski, Laurent P. Daynes
  • Patent number: 6851114
    Abstract: A system and method are provided for isolating the execution of a plurality of applications which access shared data. A limited number of special classes encapsulate data that should be shared by all classes in the multitasking system. Static fields of all classes, including the special classes, are virtualized such that each application has its own copy of static fields and class monitors. However, a special class has special program code associated with it, such that an invocation of any of the methods of the special class causes a switch of an application ID associated with the thread (referred to herein as an effective thread application ID or TA-ID) to a constant value. Thus, the applications may access a single, shared copy of the special class. The TA-ID may be changed back to the original value upon exiting one of the methods.
    Type: Grant
    Filed: November 6, 2000
    Date of Patent: February 1, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Grzegorz J. Czajkowski
  • 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: 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: 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: 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: 20030196061
    Abstract: A system and method for secure execution of multiple applications using a single GC heap are provided. A root set is maintained for each of the applications. Each root set includes one or more pointers objects stored in the heap. After a garbage collection operation is performed, the root sets may be used to measure resources consumption by each of the applications. The root sets may be used to measure heap consumption by associating each data structure in the memory with a particular application based on reachability from the application's root set. The root sets may be used to measure CPU time consumption during the GC by dividing the total time consumed by the GC by the total amount of the memory or number of objects used by the application. An object finalizer may be executed in a finalizer thread for each application to help limit GC-related misbehavior to GC of the objects of the misbehaving application itself. In one embodiment, static fields of some classes may be shared among applications.
    Type: Application
    Filed: April 16, 2002
    Publication date: October 16, 2003
    Inventors: Hideya Kawahara, Grzegorz J. Czajkowski
  • Publication number: 20030191867
    Abstract: A system and method for isolating the execution of a plurality of applications. The applications may utilize or share one or more “original” classes. Only one copy of each original class is maintained, regardless of how many applications utilize it. Static fields are extracted from the original classes. A separate copy of the static fields is created for each of the utilizing applications. A static field class which includes instance fields corresponding to the static fields may be created, wherein each instance of the static field class corresponds to one of the utilizing applications. Access methods for the one or more static fields may be created, wherein the access methods are operable to access the corresponding separate copy of the static fields based upon the identity of the utilizing application.
    Type: Application
    Filed: May 19, 2003
    Publication date: October 9, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Grzegorz J. Czajkowski
  • Patent number: 6567974
    Abstract: A system and method for isolating the execution of a plurality of applications. The applications may utilize or share one or more “original” classes. Only one copy of each original class is maintained, regardless of how many applications utilize it. Static fields are extracted from the original classes. A separate copy of the static fields is created for each of the utilizing applications. A static field class which includes instance fields corresponding to the static fields may be created, wherein each instance of the static field class corresponds to one of the utilizing applications. Access methods for the one or more static fields may be created, wherein the access methods are operable to access the corresponding separate copy of the static fields based upon the identity of the utilizing application.
    Type: Grant
    Filed: February 25, 2000
    Date of Patent: May 20, 2003
    Assignee: Sun Microsystems, Inc.
    Inventor: Grzegorz J. Czajkowski
  • 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: 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