Patents Examined by Syed J Ali
  • Patent number: 7010789
    Abstract: A task management system, method and computer program product for determining optimal placement of task components on multiple machines for task execution, particularly for placing program components on multiple computers for distributed processing. First, a communication graph is generated representative of the computer program with each program unit (e.g., an object) represented as a node in the graph. Nodes are connected to other nodes by edges representative of communication between connected nodes. A weight is applied to each edge, the weight being a measure of the level of communication between the connected edges. Terminal nodes representative of the multiple computers are attached to the communication graph. Then, the communication graph is divided into independent nets and a min cut is found for each independent net. The min cut for the communication graph is the combination of the min cuts for all of the independent nets.
    Type: Grant
    Filed: September 29, 2000
    Date of Patent: March 7, 2006
    Assignee: International Business Machines Corporation
    Inventors: Douglas N. Kimelman, Vadakkedathu T. Rajan, Tova Roth, Mark N. Wegman, Karin Hogstedt
  • 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: 6990669
    Abstract: Methods and computer-executable components for real-time scheduling of CPU resources are disclosed. A performance counter determines when to allocate CPU resources to a thread. When it is time to allocate the CPU resources, the performance counter issues a non-maskable interrupt to an advanced programmable interrupt controller (APIC). The APIC then issues a non-maskable interrupt to the CPU. In response to receiving the non-maskable interrupt, the CPU allocates resources to the thread.
    Type: Grant
    Filed: March 21, 2000
    Date of Patent: January 24, 2006
    Assignee: Microsoft Corporation
    Inventor: Joseph C. Ballantyne
  • Patent number: 6990665
    Abstract: Methods and computer-executable components for real-time scheduling of CPU resources are disclosed. A performance counter determines when to allocate CPU resources to a thread. When it is time to allocate the CPU resources, the performance counter issues a maskable or non-maskable interrupt to an advanced programmable interrupt controller (APIC). The APIC then issues a maskable non-maskable interrupt to the CPU. In response to receiving the non-maskable interrupt, the CPU allocates resources to the thread. In addition, the disclosed methods and computer-executable components also: (a) allow scheduling of CPU resources such that real-time threads are guaranteed respective portions of time slots, (b) enable real-time scheduling on a non-real-time operating system, and (c) provide scheduling of CPU resources on a uni-processor machine such that at least first and second real-time threads dependent on one another are synchronized.
    Type: Grant
    Filed: May 16, 2005
    Date of Patent: January 24, 2006
    Assignee: Microsoft Corporation
    Inventor: Joseph C. Ballantyne
  • Patent number: 6981255
    Abstract: A method in a computer system for accessing Microsoft Component Object Model (“COM”) objects of varying thread types from a Java-based program. The computer system has a Java virtual machine (“VM”) that executes statements of the Java program and that executes in a multithreaded process. When executing a statement of the Java-based program to instantiate a COM object, the system creates a wrapper object. When the COM object is not thread-safe, the system requests an appropriate thread to instantiate the COM object and stores an identifier of the thread in the wrapper object. When the COM object is thread-safe, the system instantiates the COM object from the current thread and stores an indication in the wrapper object that the COM object can be accessed from any thread. When executing a statement of the Java-based program to invoke a method of the COM object, the system requests the thread identified in the wrapper object to invoke the method of the COM object.
    Type: Grant
    Filed: December 26, 2001
    Date of Patent: December 27, 2005
    Assignee: Microsoft Corporation
    Inventor: Atsushi Kanamori
  • Patent number: 6976258
    Abstract: A method facilitates providing appropriate quality of service guarantees to a plurality of virtual hosts on a single physical host computer. A server application program and its child processes service communication requests made to the plurality of virtual hosts. Quality of service parameters associated with the virtual hosts are stored. Communication requests made to a specific one of the virtual hosts are detected. The quality of service parameters associated with the specific virtual host are obtained. Operating system resources are utilized to guarantee, to a child process of the server application program, a quality of service according to the obtained quality of service parameters associated with the virtual host. Communication between the virtual host and the client is allowed to proceed, the communication being managed by the child process.
    Type: Grant
    Filed: November 30, 1999
    Date of Patent: December 13, 2005
    Assignee: Ensim Corporation
    Inventors: Pawan Goyal, Xun Wilson Huang, Srinivasan Keshav, Rosen Sharma
  • Patent number: 6973651
    Abstract: Aspects for managing subsystem processes from a central site in a digital media distributor system are presented. The aspects include utilizing a plurality of threads as a task manager in a central site server of the digital media distributor, and autonomously controlling initiation and termination of one or more subsystem processes with the task manager. The aspects further include providing the task manager as a main program thread of an operating system of a central site server of the DMD system, and managing subsystem processes from start-up to shut down, including states of online, offline, process inoperable, deadlock inoperable, and spawn inoperable, with the task manager to dynamically manage the DMD system.
    Type: Grant
    Filed: March 29, 2000
    Date of Patent: December 6, 2005
    Assignee: International Business Machines Corporation
    Inventors: Jennie Ching, Eric Hsiao, Peter S. Lee, Cris W. Sandoval
  • Patent number: 6973652
    Abstract: Methods and apparatus for executing a series of sequential tasks existing within a system-level domain of a customer computing system providing provisioning of meta-level domain products are disclosed. For each product or product action (202), one or more sequence of tasks (250–272) is defined. Within each sequence, one or more tasks are defined as milestones (250, 252, 254, 260, 264, 270, 272). The sequence of tasks is executed, and at each milestone task, an enquiry is made of a related meta-level domain feature to determine whether, as a precondition, it has attributes associating it with a customer, and further whether the product feature holds a locking attribute that corresponds with the milestone task. If so, the execution is continued, and the product feature is placed in a locked state such that its attributes cannot be changed until execution of the task sequence is complete.
    Type: Grant
    Filed: May 15, 2000
    Date of Patent: December 6, 2005
    Assignee: International Business Machines Corporation
    Inventors: Guy Nigel Kendall, David James Plumpton, Keith Victor Smith, Ivar de Jong, John Burns
  • Patent number: 6973650
    Abstract: A system for pipelined processing of program data uses a series of servers. A server is an event loop optimized for performing a particular task in the overall program. Servers perform their respective tasks in response to receiving work packets. A work packet is a data structure containing the data needed to perform that task. Each server has a queue of pending work packets. When there are work packets in a server's queue, the server performs the required function using the user context data contained in the packet, and may generate a reply code when complete. A server may run on a single CPU until all work packets in its queue have been processed, or it may also be shared among two or more CPUs. Each server performs its designated task for all users and thus, the general effect of this method is that each CPU performs a single task for all users, thereby insuring that the global context state for each task tends to remain in the cache of the CPU performing that task.
    Type: Grant
    Filed: November 9, 1999
    Date of Patent: December 6, 2005
    Assignee: Microsoft Corporation
    Inventors: Michael A. B. Parkes, Frederic O. Vicik
  • Patent number: 6973560
    Abstract: A fault tolerant software environment, in which various program components (e.g., portions of computer programs, applications, etc) are objectized into entities represented by “codons.” This allows for improper syntax to occur, enabling, for example, combinatorial operations such as genetic programming. The present invention also contemplates such features as the ability to probabilistically execute individual codons, to switch between treating information as executable code or as data (or passing over it), provides that the individual codons can be tagged so that additional information can be associated with them, and provides for tagging of the stack.
    Type: Grant
    Filed: May 12, 2000
    Date of Patent: December 6, 2005
    Assignee: Lamarck, Inc.
    Inventors: Todd M. Rice, Gordon E. Bennett
  • Patent number: 6964048
    Abstract: A method and apparatus are disclosed for sharing execution capacity among tasks executing in a real-time computing system. The present invention extends RMA techniques for characterizing system timing behavior and designing real-time systems. A high priority task having hard deadlines is paired with a lower priority task having soft deadlines. During an overload condition, the higher priority task can dynamically borrow execution time from the execution capacity of the lower priority task without affecting the schedulability of the rest of the system. The higher priority task is bolstered in a proportion to the capacity borrowed from the lower priority task, so that the combined utilization of the two tasks remains constant. The period of the degraded task is increased to compensate for the execution time that was loaned to the higher priority task. In addition, the priority of the lower priority task is modified to match the new period.
    Type: Grant
    Filed: January 11, 2000
    Date of Patent: November 8, 2005
    Assignee: Koninklijke Philips Electronics N.V.
    Inventor: Karl Michael Isham
  • Patent number: 6957432
    Abstract: Methods and computer-executable components for real-time scheduling of CPU resources are disclosed. A performance counter determines when to allocate CPU resources to a thread. When it is time to allocate the CPU resources, the performance counter issues a maskable or non-maskable interrupt to an advanced programmable interrupt controller (APIC). The APIC then issues a maskable non-maskable interrupt to the CPU. In response to receiving the non-maskable interrupt, the CPU allocates resources to the thread. In addition, the disclosed methods and computer-executable components also: (a) allow scheduling of CPU resources such that real-time threads are guaranteed respective portions of time slots, (b) enable real-time scheduling on a non-real-time operating system, and (c) provide scheduling of CPU resources on a uni-processor machine such that at least first and second real-time threads dependent on one another are synchronized.
    Type: Grant
    Filed: September 24, 2001
    Date of Patent: October 18, 2005
    Assignee: Microsoft Corporation
    Inventor: Joseph C. Ballantyne
  • Patent number: 6957429
    Abstract: The present invention presents a list of applicable services dynamically updated and enables users to specify selective combinations of the services. A client includes an input unit, a display unit, a user authentication unit, a service display and selection unit, a document set display and display unit, and the like. The service display and selection unit creates a list of currently active, applicable services and performs processing for user's service selection. The document set display and selection unit creates a list of documents included in a document set specified by a user and performs processing for user's document selection. In the servers, a service management unit, a selected service execution unit, service providing units, a document information management unit, a document storage unit, and a user information management unit operate respectively.
    Type: Grant
    Filed: July 14, 2000
    Date of Patent: October 18, 2005
    Assignee: Fuji Xerox Co., Ltd.
    Inventors: Akifumi Sekijima, Kazuki Yasumatsu, Hiroshi Hayata
  • Patent number: 6957428
    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: Grant
    Filed: March 27, 2001
    Date of Patent: October 18, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Patent number: 6944860
    Abstract: The present invention provides a representation and encapsulation of active computing environments. In accordance with one or more embodiments of the present invention a “compute capsule” is implemented. Each compute capsule serves to represent and encapsulate an active computing environment. An active computing environment comprises one or more active processes and their associated state information. The associated state information is information in a form that can be understood by any computer and tells the computer exactly what the processes in the capsule are doing at any given time. In this way, the compute capsule is a host-independent encapsulation that can be suspended on one computer, moved to a new computer, and re-started on the new computer where the new computer is binary compatible.
    Type: Grant
    Filed: January 16, 2001
    Date of Patent: September 13, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Brian Keith Schmidt
  • Patent number: 6938251
    Abstract: The present invention is a method embodied in a deferred-synchronous messaging software for providing deferred-synchronous messaging capability for applications in a non-threading model. In essence, it enables asynchronous behavior to be executed in parallel within a single-threaded environment, without need of either an operating system or programming environment supporting threads in order to perform multiple synchronous calls in different processes. As a result, applications are able to perform simultaneous multiple synchronous calls without spawning multiple processes. The present invention provides a model to allow applications to enhance their business processes without using inter-process communications. Thus, it allows simultaneous multiple business synchronous processing without complex inter-process communication logic.
    Type: Grant
    Filed: September 29, 2000
    Date of Patent: August 30, 2005
    Assignee: Sprint Communications Company L.P.
    Inventors: Ivan Chow, Wing Lee
  • Patent number: 6938255
    Abstract: In a process for identifying a process (P1) and its resources, the process (P1) is provided with a first identifier (PID1) that unambiguously identifies the process (P1) and its resources. The process (P1) is further provided with a second identifier (RID1) that unambiguously identifies the process (P1) and its resources, and particularly after a premature termination of the process (P1), a new process (P2) which continues the functions of the terminated process (P1) is started. The new process (P2) retains the second identifier (RID1) of the terminated process (P1) as its second identifier. The new process (P2) which continues the terminated process (P1) can then, furthermore, access the resources of the terminated process (P1).
    Type: Grant
    Filed: August 3, 1999
    Date of Patent: August 30, 2005
    Assignee: Alcatel
    Inventors: Matthias Willems, Luc Ongena, Rolf Kunkel
  • Patent number: 6938252
    Abstract: A method is provided for scheduling threads in a multi-processor system. In a first structure thread ids are stored for threads associated with a context switch. Each thread id identifies one thread. In a second structure entries are stored for groups of contiguous cache lines. Each entry is arranged such that a thread id in the first structure is capable of being associated with at least one contiguous cache line in at least one group, the thread identified by the thread id having accessed the at least one contiguous cache line. Patterns are mined for in the entries to locate multiples of a same thread id that repeat for at least two groups. Threads identified by the located multiples of the same thread id are mapped to at least one native thread, and are scheduled on the same processor with other threads associated with the at least two groups.
    Type: Grant
    Filed: December 14, 2000
    Date of Patent: August 30, 2005
    Assignee: International Business Machines Corporation
    Inventors: Sandra Johnson Baylor, Rahul Merwah
  • Patent number: 6925642
    Abstract: A parallel processing network permits processes to be spawned based on the availability of various network features. Such features may include the type of CPU's in the network, the number of CPU's per machine and other network resources. A user can select either a process group file method of process spawning or an automatic spawning method. In the automatic method, the user specifies various criteria related to how the processes are to be spawned such as the desired number of processes to be spawned, the type of CPUs to which the processes are to be spawned, the maximum number of processes to be started on any one machine and other information as desired. The spawning routine preferably runs on a root machine and accesses a process scheduler which provides the current network configuration. If CPUs and machines are available (i.e.
    Type: Grant
    Filed: April 29, 1999
    Date of Patent: August 2, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Darrell R. Commander
  • Patent number: 6922832
    Abstract: A system for distributing services for execution by dynamically available resources is disclosed. A computational load of a service for execution is distributed among the dynamically available resources such that no resource is under or over utilized. The system includes an Execution Server, arranged to communicate with at least one user browser, including an Execution Manager servlet, a Results Manager servlet, and a Results Finder servlet. The system further includes a Load Balancer Lookup Finder object for finding and identifying an available Load Balancer to the Execution Manager at least one Load Balancer, at least one Compute Server and a Compute Server Lookup Finder object in communication with the Load Balancer to find and effectively utilize the available Compute Servers for executing the user services.
    Type: Grant
    Filed: December 12, 2000
    Date of Patent: July 26, 2005
    Assignee: Lockheed Martin Corporation
    Inventors: Janet A. Barnett, John A. Interrante, Osmon R. Oksoy, Jesse N. Schecter, Bassel O. Williams