Method and apparatus for resuse of a thread for different...

Electrical computers and digital processing systems: virtual mac – Task management or control – Process scheduling

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C718S103000

Reexamination Certificate

active

06832376

ABSTRACT:

FIELD OF THE INVENTION
The present invention generally relates to threads of computer program execution, and more particularly, to use and reuse of a thread for different programmed operations.
BACKGROUND OF THE INVENTION
A thread is commonly viewed as a light-weight flow of control within a process, wherein a process is a heavy-weight flow of control. A process is heavy-weight in that the operating system allocates a dedicated memory domain for program code and data used by the process, whereas a thread is lightweight in that a thread exists within the memory domain of a process. Some processes are multithreaded such that multiple threads can execute concurrently within a process.
Threads are generally created with support from an operating system and are commonly executed by coupling the thread with a specific operation. That is, a thread is created for the purpose of performing a specific operation. After the operation is complete, the thread may be destroyed or reused in performing the same operation with perhaps different input data.
Creating and initiating new threads can be expensive in terms of consuming operating system resources. Each time a new thread is required, control must be passed to the operating system in order to create the thread, and establish and create any structures required to manage the thread. Thus, some applications create multiple threads for performing the same operation within a process. However, the threads are dedicated to the specific operations for which they were created, which may be inefficient for resource utilization. For example, a first set of threads may be created and dedicated to a first function of a system, and a second set of threads may be created and dedicated to a second function of the system. If demand for the first function is low, wherein only a few of the first set of threads are called upon, and demand for the second function is high, wherein there exists more demand for the second function than there are available threads, then the system's performance may be constrained by the limited number of threads available for performing the second function. In other words, demands for work performed by the second function may be delayed because of the limited number of threads associated with the second function.
The foregoing scenario illustrates a situation where performance may be degraded even though there may be processing capacity available to meet the demand. Specifically, threads associated with the first function are idle while threads associated with the second function are fully utilized.
A method an apparatus that addresses the aforementioned problems, as well as other related problems, is therefore desirable.
SUMMARY OF THE INVENTION
In various embodiments, the invention provides reuse of a thread for executing application operations of different types. A thread operation class is defined as an abstract class from which concrete application operations can be instantiated. The application operation instances implement different functions for example. A separate thread is instantiated from a thread class. The various application operations can be scheduled for execution using the thread either by queuing the operations against the thread with the operating system or by starting the thread with one of the application operations and using an attach method to associate the other application operations with the thread.
In accordance with another embodiment of the invention, there is provided a computer program product that is configured to be operable to provide reuse of a thread for executing application operations of different types.
The above summary of the present invention is not intended to describe each disclosed embodiment of the present invention. The figures and detailed description that follow provide additional example embodiments and aspects of the present invention.


REFERENCES:
patent: 5504894 (1996-04-01), Ferguson et al.
patent: 5542088 (1996-07-01), Jennings et al.
patent: 5835763 (1998-11-01), Klein
patent: 6085217 (2000-07-01), Ault et al.
patent: 6112196 (2000-08-01), Zimowski et al.
patent: 6175916 (2001-01-01), Ginsberg et al.
patent: 6189023 (2001-02-01), Emlich et al.
patent: 6240440 (2001-05-01), Kutcher
patent: 6418458 (2002-07-01), Maresco
patent: 6499047 (2002-12-01), Kikuchi et al.
patent: 6687729 (2004-02-01), Sievert et al.
patent: 2003/0163600 (2003-08-01), Lankinen et al.
patent: 2003/0200253 (2003-10-01), Cheung et al.
Booch, Grady. “Object-Oriented Design with Applications”. The Benjamin/Cummings Publishing Company, Inc. 1991. pp. 54-57.*
Microsoft Corporation. “DirectShow C++ Class Library.” 1997.*
Rao, Bindu R. “C++ and the OOP Paradigm.” Chapter 5, Polymorphism. 1993.*
Rogue Wave Software. Chapter 11, “The priority queue Data Abstraction.”. 1996.*
IBM Corporation. “IThread” and “IThreadFn”. 1998.*
Wang, Jing. “Thread Optimizations in Concurrent Object Oriented Languages.” Sep. 1998.*
IBM Corporation. “Starting a Thread.” 1998.*
Bass, Phil. “Supporting Threads in Standard C++ Part 1”. The Association of C & C++ Users, 2000.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for resuse of a thread for different... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for resuse of a thread for different..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for resuse of a thread for different... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3293746

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.