Patents Examined by Majid Banankhah
  • Patent number: 6918114
    Abstract: A single normal Java thread referred to as a “waiter” thread is used to prevent premature exit of the Java Virtual Machine during the shutdown process of the server application by waiting for any daemon threads in the JVM to complete execution. Using this mechanism, any daemon thread flagged by the application runs to completion before the JVM is allowed to exit. Once all flagged daemon threads exit, the waiter thread exits and allows the server application to properly terminate. The waiter thread uses an efficient mechanism to maintain a queue of threads. When a daemon thread is flagged, it is simply appended to the end of the queue. The waiter thread waits for the first thread in the queue to complete. Once the first thread in the queue completes, it is removed from the queue. At this point, the queue is searched for any other inactive threads and those threads are also removed from the queue.
    Type: Grant
    Filed: April 5, 2001
    Date of Patent: July 12, 2005
    Assignee: International Business Machines Corporation
    Inventor: Kevin Gary Tapperson
  • Patent number: 6910211
    Abstract: A system and method for managing simultaneous access to a scarce or serially re-usable resource by multiple process threads. A stationary queue is provided, including a wait counter for counting the cumulative number of threads that have been temporarily denied the resource; a satisfied counter for counting the cumulative number of threads that have been denied access and subsequently granted access to said resource; a sleep code routine responsive to the wait counter for generating a run identifier; and a wakeup code routine responsive to the satisfied counter for generating the run identifier.
    Type: Grant
    Filed: March 14, 1997
    Date of Patent: June 21, 2005
    Assignee: International Business Machines Corporation
    Inventor: George William Wilhelm, Jr.
  • Patent number: 6910209
    Abstract: Apparatus, methods, and computer program products are disclosed for a process of terminating a thread in a clean, certain, and forcible manner. A thread is forcibly terminated in such a manner that data structures in the system are not left in an inconsistent state and the overall system status is not damaged. The methods and systems described are for terminating a thread in a computer language execution environment. Methods are implemented in an interpretive loop executing in a language that is interpreted and in runtime support libraries in a language that are not interpreted. A method of forcibly terminating a thread in a computer language execution environment is described. A thread receives a terminate thread command. The thread has associated with it a termination flag, a value of the termination flag being immutable once set, and one or more monitors. The termination flag is then set for the thread.
    Type: Grant
    Filed: April 30, 2001
    Date of Patent: June 21, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Hideya Kawahara, William F. Foote, Dean R. E. Long
  • Patent number: 6910210
    Abstract: A computer application program executing on a computer, such as a portable computer, is selected for termination by first identifying computer application programs executing on the computer. A priority value is assigned to each of the identified computer applications. The priority value is based on multiple characteristics of the identified computer application programs. The computer application program with the smallest priority value is automatically terminated. If the computer application program with the smallest priority value is in a modal state in which it waits for a response from a user, then a default response is provided to the application prior to terminating the computer application program. The characteristics associated with the computer application programs may include average launch times, average memory usages, a class or type of application, frequencies of usage, and an amount of data stored on the computer by the computer application program.
    Type: Grant
    Filed: August 23, 1999
    Date of Patent: June 21, 2005
    Assignee: Microsoft Corp.
    Inventor: Chee H Chew
  • Patent number: 6904595
    Abstract: A portable thread environment comprising: an application programming interface configured to support multiple application program tasks, wherein each task is either a preemptive task comprised of preemptive threads or a cooperative task comprised of cooperative threads; host adaptation logic for communicatively interfacing said cooperative tasks, preemptive tasks, cooperative threads and preemptive threads with a host processing environment; a scheduler configured to determine an execution order of cooperative threads and preemptive threads based on each cooperative thread's and preemptive thread's priority levels.
    Type: Grant
    Filed: May 8, 2001
    Date of Patent: June 7, 2005
    Assignee: Microtune (San Diego), Inc.
    Inventors: G. Christian Alford, Hock Law, Suresh Singamsetty Kumar
  • Patent number: 6901593
    Abstract: A technique for an improved active queue management scheme which dynamically changes its threshold settings as the number of connections (and system load) changes is disclosed. Using this technique, network devices can effectively control packet losses and TCP timeouts while maintaining high link utilization. The technique also allows a network to support a larger number of connections during congestion periods.
    Type: Grant
    Filed: May 8, 2001
    Date of Patent: May 31, 2005
    Assignee: Nortel Networks Limited
    Inventors: James Aweya, Michel Ouellette, Delfin Y. Montuno
  • Patent number: 6901591
    Abstract: Improved frameworks for implementing class files that are particularly useful in virtual machine based computing systems will be described. In one aspect of the invention, each method within a class file is associated with a corresponding “reference cell.” The reference cells typically include sufficient information to facilitate the invocation of the corresponding method. By way of example, each reference cell may include a class pointer field, a method name field, a signature field and potentially other fields. In another aspect of the invention, a process for loading class files into a virtual machine based computing system is described. Each method invocation within the class file is translated into an internal invocation that references a reference cell associated with the internal class representation that contains the method.
    Type: Grant
    Filed: October 31, 2000
    Date of Patent: May 31, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Stepan Sokolov
  • Patent number: 6901441
    Abstract: The invention relates to an application adapted to run on a client apparatus connectable with a server across a network. The server is adapted to simultaneously share information (ideas) maintained therein with a plurality of heterogeneous clients. The application is able to retrieve ideas from the server and to define new ideas in a manner dependent on the client apparatus platform. The newly defined ideas can then be transmitted to the server for maintenance in a platform-independent manner. At the client, the information is rendered appropriately for that client.
    Type: Grant
    Filed: April 13, 2001
    Date of Patent: May 31, 2005
    Assignee: International Business Machines Corporation
    Inventors: Graham Bent, Duncan George Clark, Christopher Edward Sharp
  • Patent number: 6895583
    Abstract: A task control block is implemented to provide more efficient user task access to task-specific variables and context information. The task control block uses multiple portions located in both protected system space and unprotected “user” space. Task-specific variables may be located in the user task control block, allowing user tasks to directly access these variables (without a system call). Sensitive task-specific state information may be located in the system task control block, preventing direct access by user tasks. The amount of time needed to perform context switching is reduced, and the execution time for user tasks may be reduced as well.
    Type: Grant
    Filed: March 10, 2000
    Date of Patent: May 17, 2005
    Assignee: Wind River Systems, Inc.
    Inventor: Maarten A. Koning
  • Patent number: 6894800
    Abstract: According to the present invention, printing-job information relating to printing jobs present within a print server and printing-job information relating to printing jobs present within a printer can be displayed at a time, and the user can precisely know all printing jobs to be processed by the printer. Even if the user does not know whether a printing job is present within the print server or within the printer, a change in a schedule of a printing job assigned by the user can be appropriately performed in the print server or the printer.
    Type: Grant
    Filed: February 16, 2001
    Date of Patent: May 17, 2005
    Assignee: Canon Kabushiki Kaisha
    Inventor: Akio Sugaya
  • Patent number: 6895585
    Abstract: A method of scheduling in a mixed workload environment. A high priority workload requiring bounded response times is executed on the same system with a low priority workload that is capable of tying up the CPU and multiple volume storage resources of the system by causing multiple concurrent I/O operations, thereby increasing the response times of the high priority workload beyond acceptable bounds. The method of scheduling prevents the response times of the high priority workload from increasing beyond the acceptable bounds by deferring the dispatch of processes servicing the current low priority workload for a time that depends on the priority of the low priority work and by not performing concurrent I/O operations that are requested by the current low priority work, when there is sufficient higher priority activity on the storage resource.
    Type: Grant
    Filed: March 30, 2001
    Date of Patent: May 17, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Gary Stephen Smith
  • Patent number: 6889377
    Abstract: A system and method for uniformly administering parameters for a load distribution and load control of a computer platform includes a processor and a storage mechanism. Software components run on the processor, and include a manager component, which is a load model manager, that uniformly administers parameters for a load distribution and load control of the system. The platform further includes a catalog stored in the storage mechanism via which the load model manager administers the parameters. The catalog includes a plurality of tables. Each of the tables respectively includes a load model which is a complete, consistent set of parameters that influence the load distribution of the load control of the computer system.
    Type: Grant
    Filed: March 3, 1999
    Date of Patent: May 3, 2005
    Assignee: Siemens Aktiengesellschaft
    Inventors: Elisabeth Gasthaus, Jörg Oehlerich, Walter Held
  • Patent number: 6889243
    Abstract: A job scheduling analysis method and system are disclosed in which a job schedule is analyzed by use of historical job execution data in a computer system in which a plurality of jobs are executed in parallel. Historical execution data of a plurality of jobs and the file names of files accessed by the jobs are collected. The maximum multiplicity of jobs capable of operating in parallel on the computer system is inputted. When the file name of a file accessed by one job and the file name of a file accessed by another other job coincide with each other, an execution start condition of the plurality of jobs are determined to execute the one job and the other job at the earliest instants within the maximum job multiplicity so that the sequence of execution of processings by the one job and the other job is maintained and the execution time of the one job and the execution time of said other job do not overlap each other.
    Type: Grant
    Filed: February 16, 1999
    Date of Patent: May 3, 2005
    Assignee: Hitachi, Ltd.
    Inventors: Yuri Hondou, Hirofumi Nagasuka, Tadashi Yamagishi, Shunji Tanaka, Toshiyuki Kinoshita
  • Patent number: 6886162
    Abstract: A high-speed method for maintaining a summary of thread activity reduces the number of remote-memory operations for an n processor, multiple node computer system from n2 to (2n?1) operations. The method uses a hierarchical summary of-thread-activity data structure that includes structures such as first and second level bit masks. The first level bit mask is accessible to all nodes and contains a bit per node, the bit indicating whether the corresponding node contains a processor that has not yet passed through a quiescent state. The second level bit mask is local to each node and contains a bit per processor per node, the bit indicating whether the corresponding processor has not yet passed through a quiescent state. The method includes determining from a data structure on the processor's node (such as a second level bitmask) if the processor has passed through a quiescent state. If so, it is then determined from the data structure if all other processors on its node have passed through a quiescent state.
    Type: Grant
    Filed: July 31, 1998
    Date of Patent: April 26, 2005
    Assignee: International Business Machines Corporation
    Inventor: Paul E. McKenney
  • Patent number: 6886164
    Abstract: A method for selecting a resource from a plurality of resources includes determining a score for that resource on the basis of a stochastic property of that resource. An interval corrsesponding to that resource is then defined to have an extent that depends on the score. A particular resource is then selected by generating a random number and selecting that resource when the random number falls within the interval.
    Type: Grant
    Filed: May 8, 2001
    Date of Patent: April 26, 2005
    Assignee: EMC Corporation
    Inventor: David Meiri
  • Patent number: 6877157
    Abstract: The invention relates to a computer program product comprising semaphore means for stalling a first task until one of a predetermined set of events occurs. The computer program product comprises specific message files associated with said first task for receiving data to be processed by the first task. The occurrence of one of said set of predetermined events causes a piece of data to be written in one of the associated messages files. The computer program in accordance with the invention can be implemented by using any operating system having basic synchronization tools. Such synchronization tools include semaphore means for causing a task to be waiting for a unique event such as the release of the semaphore by another task. They also include blocking mechanisms for temporarily blocking “interruptions” coming from interruption handlers during data writing (message reception) in the message files associated with the first task.
    Type: Grant
    Filed: December 27, 2000
    Date of Patent: April 5, 2005
    Assignee: Koninklijke Philips Electronics N.V.
    Inventor: Yves Marco
  • Patent number: 6868540
    Abstract: Methods, systems, computer program products, and methods of doing business by automatically and dynamically annotating events in an event management system (“EMS”) to adapt to capabilities of a management system of which the EMS is an integral part. Furthermore, the EMS may automatically and dynamically recycle existing events (including events which are already annotated) for processing with newly-defined or different EMS capabilities. Events may also be re-annotated to reflect new or different capabilities of the EMS. These benefits of “smart events” are realized without requiring re-instrumentation of the event generation code of managed applications.
    Type: Grant
    Filed: May 4, 2001
    Date of Patent: March 15, 2005
    Assignee: International Business Machines Corporation
    Inventors: Kenneth Mark Hunsinger, Patrick P. Reynolds, Abdolreza Salahshour
  • Patent number: 6865670
    Abstract: A system and method for utilizing generic computer operating system software for computer hardware systems designed subsequent to the operating system software. The system and method of the present invention employs a separate modular software file called a System Enabler that has all patches, code, data and resources needed to make a particular computer system operational. The System Enabler file is matched to a particular hardware system and may be bundled with that hardware system. During computer system start up the System Enabler file modifies the generic operating system software for optimum operation with the particular computer hardware system.
    Type: Grant
    Filed: December 21, 2001
    Date of Patent: March 8, 2005
    Assignee: Apple Computer, Inc.
    Inventors: Dean T. Yu, Christopher S. Derossi
  • Patent number: 6862635
    Abstract: Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evaluation of values, parallel access of multiple threads to a list, synchronized and unsynchronized access to a data buffer, use of forwarding to avoid checking for an end of a buffer, use of sentinel word to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.
    Type: Grant
    Filed: July 27, 1999
    Date of Patent: March 1, 2005
    Assignee: Cray Inc.
    Inventors: Gail A. Alverson, Charles David Callahan, II, Simon H. Kahan, Brian D. Koblenz, Allan Porterfield, Burton J. Smith
  • Patent number: 6859928
    Abstract: A computer system, including a processor, an input device and an output device and that executes an operating system to support the execution, is used to execute first and second sets of application programs. The operating system includes a graphical user interface coupleable through an output driver to the output device and an input interface including an input queue coupleable through an input driver to the input device. 1An environment manager program is also executed by the processor. This program includes a third list of a second set of application programs and a fourth list of application program windows corresponding to the second list of application programs. Execution of the environment manager program provides for the inclusion of the environment manager program in the first and second sets and for selectively swapping with the operating system the first and third lists and the second and fourth lists to switch between the execution of the first and second sets of application programs.
    Type: Grant
    Filed: March 5, 2001
    Date of Patent: February 22, 2005
    Assignee: Trepton Research, Inc.
    Inventor: Daniel W. Wright