Patents by Inventor Nedim Fresko

Nedim Fresko 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).

  • Publication number: 20070094676
    Abstract: A computer implemented method and machine readable media for managing a registry of bound objects for inter-Xlet communication (IXC) is described. A request from a first Xlet to bind an exported object name with a remote reference is received. A number of objects exported by the first Xlet is compared with a maximum number. If the number of objects exported is less than the maximum number then a binding is added for the exported object name and the remote reference. If the number of objects exported is greater than the maximum number, then the request is denied.
    Type: Application
    Filed: October 26, 2005
    Publication date: April 26, 2007
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Nedim Fresko, Chihiro Saito
  • Patent number: 7124291
    Abstract: A system and method for eliminating static initialization overhead by memory space cloning of a master runtime system process is presented. A master runtime system process is executed. One or more static initialization methods are identified. Each static initialization method is uniquely associated with a class provided in a runtime system and specifies a source definition provided as object-oriented program code. At least one static initialization method is executed in a memory space of the master runtime system process. The memory space is cloned as a child runtime system process responsive to a process request. The child runtime system process is executed. In one embodiment, a full garbage collection is performed by promoting objects created during static initialization into the older generation.
    Type: Grant
    Filed: December 22, 2003
    Date of Patent: October 17, 2006
    Assignee: Sun Microsystems, Inc
    Inventor: Nedim Fresko
  • 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
  • Publication number: 20060037004
    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: Application
    Filed: August 13, 2004
    Publication date: February 16, 2006
    Inventors: Dean Long, Christopher Plummer, Nedim Fresko
  • Publication number: 20060037003
    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: Application
    Filed: August 13, 2004
    Publication date: February 16, 2006
    Inventors: Dean Long, Nedim Fresko, Christopher Plummer
  • Patent number: 6978448
    Abstract: 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: Grant
    Filed: April 24, 2001
    Date of Patent: December 20, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher J. Plummer, Nedim Fresko, Richard D. Tuck
  • Publication number: 20050268273
    Abstract: 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: Application
    Filed: May 17, 2004
    Publication date: December 1, 2005
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Nedim Fresko, Christopher Plummer, Dean Long
  • Patent number: 6951018
    Abstract: Methods and apparatus for enabling the association between a monitor and an object to be maintained when a garbage collection occurs during a wait action performed with respect to the object are disclosed. According to one aspect of the present invention, a method for acquiring access to an object in a multi-threaded, object-based system includes associating a monitor with the object, and setting a pointer from a thread, which is arranged to execute on the object, to the object. The method also includes setting a reference substantially directly from the thread to the monitor. In one embodiment, setting the reference includes setting a boolean reference count. In another embodiment, setting the reference enables a garbage collector to determine whether the monitor is suitable for reclamation during a garbage collection process.
    Type: Grant
    Filed: March 8, 2001
    Date of Patent: September 27, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Nedim Fresko
  • Publication number: 20050183083
    Abstract: Techniques for processing native events associated with tasks that are concurrently supported in a virtual machine are disclosed. The techniques allow the user of a virtual machine to concurrently perform tasks even if these tasks require processing of platform-specific (or native) events (e.g., platform-specific input). A smart event-dispatcher is used to dispatch native events to multiple tasks that are concurrently supported by the virtual machine. The smart event-dispatcher can determine which one of a plurality of concurrent tasks should receive the native event for processing. The determination can be made based on a variety of different criteria. In mobile devices, the foreground task is typically the only task that is displayed for the user of mobile devices at any given time. Thus, dispatching events to the foreground task is especially useful for a virtual machine that support a mobile device.
    Type: Application
    Filed: February 18, 2004
    Publication date: August 18, 2005
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Bernd Mathiske, Kinsley Wong, Hideya Kawahara, Nedim Fresko
  • Patent number: 6928460
    Abstract: One embodiment of the present invention provides a system that facilitates performing generational garbage collection on a heap. The system operates by dividing an old generation of the heap into segments. Next, the system divides each segment into a series of cards and associates a separate card table with each segment. This card table has an entry for each card in the segment. In a variation on this embodiment, while updating a pointer within an object in the old generation, the system locates the segment containing the object and accesses the card table for the segment. The system then marks the entry in the card table associated with the card containing the object.
    Type: Grant
    Filed: July 1, 2002
    Date of Patent: August 9, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Vijay G. Nagarajan, Robert Rochetti, Nedim Fresko
  • Publication number: 20050138623
    Abstract: A system and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment is presented. A master runtime system process is executed. A memory space of the master runtime system process is cloned as a child runtime system process responsive to a process request. The child runtime system process is executed. The execution of the child runtime system process is profiled by collecting profiling data incrementally. The child runtime system process profiles are fed back to the master runtime system process to benefit subsequent cloned child runtime system processes. In a further embodiment, the child runtime system process profiles are maintained in a persistent storage for use by the master runtime system process upon the next start up.
    Type: Application
    Filed: December 22, 2003
    Publication date: June 23, 2005
    Inventor: Nedim Fresko
  • Publication number: 20050138640
    Abstract: A system and method for inducing asynchronous behavioral changes in a managed application process is presented. An application manager process is executed. A managed application process is executed. At least one application provided as object-oriented program code under the control of a managed code platform is executed. The managed application process logically communicates with the application manager process. One or more constructors corresponding to notifiable objects provided as object-oriented program code are identified. Each constructor keeps track of instantiated notifiable objects in a list in the managed application process. A change request is broadcast to the managed application process. The notifiable objects tracked by each identified constructor are iterated over to effect a behavioral change in the managed application process.
    Type: Application
    Filed: December 22, 2003
    Publication date: June 23, 2005
    Inventor: Nedim Fresko
  • Patent number: 6886157
    Abstract: 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: Grant
    Filed: May 25, 2001
    Date of Patent: April 26, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Dean R. E. Long, Christopher J. Plummer, Nedim Fresko
  • Publication number: 20040267804
    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: June 24, 2004
    Publication date: December 30, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Nedim Fresko, Richard D. Tuck, Dean R.E. Long
  • Patent number: 6836782
    Abstract: 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: Grant
    Filed: April 17, 2001
    Date of Patent: December 28, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Nedim Fresko, Dean R. E. Long, Christopher J. Plummer
  • Publication number: 20040088703
    Abstract: A mechanism is disclosed for implementing an interpreter with hierarchical execution loops. In one embodiment, the interpreter has a slow processing loop and a fast processing loop. In one embodiment, the slow processing loop comprises resources for executing infrequently executed instructions and instructions with relatively complicated implementations, and the fast processing loop comprises resources for executing frequently executed instructions and instructions with relatively simple implementations. Instructions are mostly executed in the fast processing loop. Only if an instruction is not supported by the fast processing loop will it be executed in the slow processing loop. Implementing the interpreter in this manner improves cache utilization and makes it easier for a compiler to generate more optimal code for the interpreter, thereby resulting in considerably faster execution times.
    Type: Application
    Filed: November 5, 2002
    Publication date: May 6, 2004
    Inventors: Nedim Fresko, Nik Shaylor
  • Publication number: 20040003014
    Abstract: One embodiment of the present invention provides a system that facilitates performing generational garbage collection on a heap. The system operates by dividing an old generation of the heap into segments. Next, the system divides each segment into a series of cards and associates a separate card table with each segment. This card table has an entry for each card in the segment. In a variation on this embodiment, while updating a pointer within an object in the old generation, the system locates the segment containing the object and accesses the card table for the segment. The system then marks the entry in the card table associated with the card containing the object.
    Type: Application
    Filed: July 1, 2002
    Publication date: January 1, 2004
    Inventors: Vijay G. Nagarajan, Robert Rochetti, Nedim Fresko
  • Patent number: 6658492
    Abstract: A method and system that reduces the space allocated for internal data structures by a runtime engine. The internal data structures store member information for preloaded classes used by applications executed by the runtime engine. The system determines the different types of internal data structures represented in the classes and identifies thee possible values of each type's members. The system next determines the amount of space required to store the values for each type in a respective value table and the number of bits needed to index each entry of that table. The system determines based on the stored information whether occurrences of a member are optimally represented as a set of value table indices and a value table or, in the conventional manner, as a general variable that stores the member's value for each occurrence. The system then emits appropriate information for the member and its parent data structure.
    Type: Grant
    Filed: March 20, 1998
    Date of Patent: December 2, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Hideya Kawahara, Nedim Fresko
  • Patent number: 6587955
    Abstract: Methods and apparatus for implementing priority inversion avoidance protocols and deterministic locking where an API is used to select objects in a multi-threaded computer system are disclosed. In one aspect of the invention, an enhanced monitor is associated with one or more selected objects by way of an associated API. The enhanced monitor is arranged to set behavior for a lock associated with the selected objects as determined by a user defined behavior object included within the enhanced monitor. In this arrangement, only the selected one or more objects are associated with the enhanced monitor.
    Type: Grant
    Filed: February 1, 2000
    Date of Patent: July 1, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: William Foote, Dean Roy Ernest Long, Nedim Fresko
  • Publication number: 20030070161
    Abstract: Methods and systems for platform-independent selective ahead-of-time compilation are herein described. A method selector comprising a profiling tool and heuristic selects a subset of methods for ahead-of-time compilation. The profiling tool ranks a set of methods according to predetermined criteria, and the heuristic identifies the subset of methods from the set of methods. An ahead-of-time compiler comprises a first unit and a second unit. The first unit converts, for each selected method, bytecodes corresponding to the selected method to a platform-independent intermediate representation. The second unit optimizes the platform-independent intermediate representation of each selected method, wherein each optimized intermediate representation is stored with a corresponding selected method. A virtual machine on a device converts an optimized intermediate representation associated with a selected method loaded onto the device to platform-dependent machine code.
    Type: Application
    Filed: October 5, 2001
    Publication date: April 10, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Hinkmond Wong, Nedim Fresko, Mark Lam