Patents by Inventor Stepan Sokolov

Stepan Sokolov 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: 20030028741
    Abstract: Techniques for implementation of Java heaps are disclosed. The techniques can be implemented in a Java virtual machine operating in a Java computing environment. A Java heap potion comprising two or more designated portions is disclosed. Each of the designated heap portions can be designated to store only a particular Java logical component (e.g., Java objects, Java class representation, native components, etc.) A designated heap portion can be implemented as a memory pool. In other words, two or more designated heap portions can collectively represent a memory pool designated for a particular Java logical component. The memory pools allow for dynamic management of the designated heap portions. As a result, the performance of the virtual machines, especially those operating with relatively limited resources is improved.
    Type: Application
    Filed: July 31, 2001
    Publication date: February 6, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20030028865
    Abstract: Improved techniques for representation of objects in a Java programming environment are disclosed. The techniques are highly suitable for representation of Java objects inside virtual machines, especially those that operate with limited resources (e.g., embedded systems. A cluster of Java object representations is disclosed. Each of the Java object representations provide a reference to a Java object and a reference to the class associated with the Java object. Accordingly, a two-tier representation is provided which allows efficient implementation of applications which need to access information regarding both Java objects and classes. This means that the processing required to perform applications such as garbage collection is reduced. In addition, one of the references in the two-tier representation can be implemented to provide direct access to the internal class representation associated with the object. As a result, quick access to information regarding Java objects can be achieved.
    Type: Application
    Filed: July 31, 2001
    Publication date: February 6, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20030023655
    Abstract: One embodiment of the present invention provides a system that facilitates suspending threads in a platform-independent virtual machine implemented on an operating system that lacks a global mechanism for suspending threads. The system operates when the platform-independent virtual machine executes a thread requiring other threads to be suspended. The system first changes the scheduling policy for the thread, and then raises the priority of the thread to the highest available priority. Changing the scheduling policy and raising the priority of the thread causes the thread to run to completion while other threads do not run.
    Type: Application
    Filed: July 26, 2001
    Publication date: January 30, 2003
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20030018679
    Abstract: Techniques for implementing virtual machine instructions suitable for execution in virtual machines are disclosed. The operations performed by conventional instructions can be performed by relatively fewer inventive virtual machine instructions. Furthermore, the virtual machine instructions can be used to perform operations that cannot readily be performed by conventional Java Bytecode instructions. Thus, a more elegant, yet robust, virtual machine instruction set can be implemented.
    Type: Application
    Filed: March 27, 2001
    Publication date: January 23, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20030018958
    Abstract: Techniques for customization of Java runtime environments are disclosed. The techniques can be used to provide Java runtime environments that are specifically tailored for various Java applications. Accordingly, for a particular Java application, an optimized runtime environment can be created. One or more optional attributes which represent the desired runtime customizations are generated. As will be appreciated, the optional attributes can be generated in the attribute table in the class file. The optional attributes can then be parsed and appropriate features can be loaded into the virtual machine. In this way, Java runtime environments can be customized based on a particular Java application requirement. Moreover, customizations can be automated using a runtime performance manager that interacts with various other components that operate to first generate and then load optional attributes into the Java runtime environment.
    Type: Application
    Filed: June 20, 2001
    Publication date: January 23, 2003
    Applicant: Sun Microsystems, INC.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20030018959
    Abstract: Techniques for customization of Java runtime environments are disclosed. The techniques can be used to provide Java runtime environments that are specifically tailored for various Java applications. Accordingly, for a particular Java application, an optimized runtime environment can be created. One or more optional attributes which represent the desired runtime customizations are generated. As will be appreciated, the optional attributes can be generated in the attribute table in the class file. The optional attributes can then be parsed and appropriate features can be loaded into the virtual machine. In this way, Java runtime environments can be customized based on a particular Java application requirement. Moreover, customizations can be automated using a runtime performance manager that interacts with various other components that operate to first generate and then load optional attributes into the Java runtime environment.
    Type: Application
    Filed: June 20, 2001
    Publication date: January 23, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20030005020
    Abstract: Techniques for initialization of Java classes are disclosed. As such, the techniques can be implemented in a Java virtual machine to initialize Java classes represented in Java class files. A Java class loader suitable for loading class files into the Java virtual machine is disclosed. As will be appreciated, the Java class loader facilitates loading and execution of the Java initialization methods that need to be executed in order to initialize Java classes. Moreover, the Java class loader operates to remove the Java initialization methods after they have been executed and no longer serve a useful purpose. This means that the virtual machine can utilize its memory space more efficiently. As a result, the performance of virtual machines, especially those operating with limited resources is improved.
    Type: Application
    Filed: June 28, 2001
    Publication date: January 2, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20030005170
    Abstract: Improved techniques for determining Java hashcode values for Java objects are disclosed. The techniques can be implemented to use a new Java Bytecode instruction which is suitable for execution by a Java virtual machine. As such, the new Java Bytecode instruction can be executed to determine Java hashcode value. Moreover, as will be appreciated, the Java hashcode values can be determined without invoking the Java method which is conventionally used to determine hashcode values. This means that the costly overhead associated with repeatedly invoking Java methods is avoided. In other words, operations that are conventionally performed each time this method is invoked need not be performed. As a result, the performance of virtual machines, especially those operating with limited resources (e.g., embedded systems), can be improved.
    Type: Application
    Filed: June 28, 2001
    Publication date: January 2, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20020198698
    Abstract: Improved techniques for representation of objects in a Java programming environment are disclosed. The techniques are highly suitable for representation of Java objects inside virtual machines, especially those that operate with limited resources (e.g., embedded systems). In accordance with one embodiment, a Java object representation is disclosed. As will be appreciated, the Java object representation provides a reference that can be used to directly access the internal class representation associated with the object. The internal class representation provides information regarding the Java object (e.g., object size, object type, static fields, etc.) As a result, information regarding Java objects can quickly be accessed. This means that the processing time conventionally needed to access information regarding Java objects is reduced. Thus, performance of virtual machines, especially in systems with limited computing power and/or memory, can be enhanced.
    Type: Application
    Filed: June 20, 2001
    Publication date: December 26, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020199169
    Abstract: Improved techniques for representation of Java data types in virtual machines are disclosed. The techniques can be implemented to represent signatures of Java methods as arrays of references. Each of the references in an array can represent a parameter for a Java method. Accordingly, a signature can be represented as an array of references, wherein each reference in the array can reference a Java type indicator or an internal class representation. The Java type indicator represents a Java primitive type (e.g., byte, integer, double, etc.) The internal class representation is typically the representation of a Java class as represented in a virtual machine. As will be appreciated, an array organization allows for more efficient access to information. Thus, unlike conventional techniques, there is no need to start at the beginning of the signature and sequentially read it to find a particular parameter's data type.
    Type: Application
    Filed: June 20, 2001
    Publication date: December 26, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020199176
    Abstract: Improved techniques for storing and retrieving field descriptors in Java computing environments are disclosed. The techniques can be used to implement garbage collection for Java programs in a manner that is more efficient, especially for systems with limited resources (e.g., embedded systems). A reference identifier suitable for use by a Java virtual machine is disclosed. The reference identifier is associated with a Java object and can be stored in the internal class representation associated with the Java object at load time. Moreover, the reference identifier can be used at runtime to quickly determine whether a field of the associated Java object is a reference to another Java object. As a result, the amount of processing conventionally performed at runtime is reduced. This, in turn, can improve the runtime performance of Java virtual machines, especially those operating with limited resources (e.g., embedded systems).
    Type: Application
    Filed: June 20, 2001
    Publication date: December 26, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020194243
    Abstract: Techniques for implementing virtual machine instructions suitable for execution in virtual machines are disclosed. The inventive virtual machine instructions can effectively represent the complete set of operations performed by the conventional Java Bytecode instruction set. Moreover, the operations performed by conventional instructions can be performed by relatively fewer inventive virtual machine instructions. Thus, a more elegant, yet robust, virtual machine instruction set can be implemented. This, in turn, allows implementation of relatively simpler interpreters as well as allowing alternative uses of the limited 256 (28) Bytecode representation (e.g., a macro representing a set of commands). As a result, the performance of virtual machines, especially, those operating in systems with limited resources, can be improved by using the inventive virtual machine instructions.
    Type: Application
    Filed: March 27, 2001
    Publication date: December 19, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020174261
    Abstract: Improved techniques for invocations of native methods in Java computing environments are disclosed. The techniques can be implemented in Java computing environments to facilitate efficient use of methods (functions or subroutines) written in programming languages other than Java (e.g., C, C++, etc.). As such, the techniques are highly suitable for use by virtual machines operating with relatively less memory and/or computing power (e.g., embedded systems). A lightweight native method invocation interface can be implemented to provide direct access to Java parameters on the execution stack. In addition, the lightweight native method invocation can include macro instructions that operate efficiently to convert the Java parameters into native parameters. Thus, the lightweight native method invocation can significantly reduce the overhead associated with conventional Java native method invocation techniques.
    Type: Application
    Filed: May 15, 2001
    Publication date: November 21, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020169556
    Abstract: Improved techniques for identifying and tracking references to Java objects are disclosed. The techniques can be used to implement garbage collection facilities for Java programs in a manner that is more efficient, especially for systems with limited resources (e.g., embedded systems). For each execution stack, a reference stack can be designated. The reference stack can be used to store references to Java objects in the same offset as they appear in the corresponding execution stack. References to Java objects can be identified based on the values stored in the reference stack. The reference stack can be traversed to identify the entries that correspond to active Java objects. These entries can then be checked against the corresponding entries in the execution stack to ensure with a greater degree of certainty that the identified entries represent references to active Java objects.
    Type: Application
    Filed: May 8, 2001
    Publication date: November 14, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020169896
    Abstract: Alternative techniques for representation of Java string objects are needed. The techniques are especially useful for representing Java objects in Java computing environments and can thereby improving the performance of a virtual machine, especially those with relatively limited resources (e.g., embedded systems with relatively smaller memory and computing power). The techniques can be implemented to create Java string objects as arrays of one-byte characters when it is appropriate. To create Java string objects an enhanced constructor can be provided in a Java library that is available to application programs (or programmers). In addition, enhanced Java methods can also be provided in the Java library.
    Type: Application
    Filed: May 9, 2001
    Publication date: November 14, 2002
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020138667
    Abstract: Improved techniques for loading class files into virtual computing machines are disclosed. The techniques seek to provide a mechanism that will generally improve the efficiency of virtual machines by selectively loading information into a virtual machine. A new class attribute (“load-attribute”) is defined and implemented for class files. This can be, for example, implemented as a “load-attribute” table that lists the components that have been selected for loading into the virtual machine. In addition, the load-attribute may provide references to the selected components in the class file. Accordingly, various components of the class file can be marked for loading and selectively loaded.
    Type: Application
    Filed: March 26, 2001
    Publication date: September 26, 2002
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020116409
    Abstract: One embodiment of the present invention provides a system for storing short-lived objects defined within an object-oriented programming system. These short-lived objects are created in a virtual machine used for executing platform-independent code and are ordinarily created during normal operation of the virtual machine. The system works by allocating a storage area reserved for short-lived objects that uses a method of garbage collection optimized for short-lived objects. After the storage area is allocated, the system receives requests to create an object. The system then determines if the object is a short-lived object by referring to a table of short-lived objects. If the object is a short-lived object, it is created and placed in the reserved storage area.
    Type: Application
    Filed: December 12, 2000
    Publication date: August 22, 2002
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020095564
    Abstract: One embodiment of the present invention provides a system for executing variable-size computer instructions, wherein a variable-size computer instruction includes an action component that specifies an operation to be performed and a data component of variable size that specifies data associated with the operation. The system operates by first retrieving the variable-size computer instruction from a computing device's memory. The system then decodes the variable-size computer instruction by separating the variable-size computer instruction into the action component and the data component. Next, the system stores the action component in a first store and the data component in a second store so they can be reused without repeated decoding. Finally, the system provides a first flow path for the action component and a second flow path for the data component.
    Type: Application
    Filed: November 30, 2000
    Publication date: July 18, 2002
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020073097
    Abstract: One embodiment of the present invention provides a system for creating objects in a virtual machine. The system operates by receiving a request to create an object within an object-oriented programming system. Upon receiving the request, if a meta-class instance associated with the object does not already exist, the system creates a structure to represent the meta-class instance in a data space that is not subject to garbage collection. If an explicit instruction to create the meta-class instance is detected, the system creates the meta-class instance within a garbage-collected data space.
    Type: Application
    Filed: December 12, 2000
    Publication date: June 13, 2002
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20020073404
    Abstract: One embodiment of the present invention provides a system for storing long-lived objects defined within an object-oriented programming system. These long-lived objects are created in a virtual machine used for executing platform-independent code and are ordinarily created during initialization of the virtual machine. The system works by allocating a storage area reserved for long-lived objects that is not subject to garbage collection. After the storage area is allocated, the system receives requests to create an object. The system then determines if the object is a long-lived object by referring to a table of long-lived objects. If the object is a long-lived object, it is created and placed in the reserved storage area.
    Type: Application
    Filed: December 12, 2000
    Publication date: June 13, 2002
    Inventors: Stepan Sokolov, David Wallman