Null thread library and thread abstraction interface

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000

Reexamination Certificate

active

06173309

ABSTRACT:

FIELD OF THE INVENTION
This invention relates generally to multithreaded programming and more particularly to a system for operating common code in both a non-threaded and a multithreaded environment.
BACKGROUND
A multithreaded programming environment allows programmers to request execution of multiple threads at the same time. However, multithreaded programs must manage contention for data between threads which may result in severe performance penalties. Multithreaded systems must allow context switching between threads and support mutual exclusion. When the performance penalty of a multithreaded environment is deemed too severe, users often give up the flexibility of multithreading and run programs non-threaded.
One common solution to the performance penalty problem in multithreaded systems is to have two versions of the program. One version of the program is designed to run threaded and one version of the program is designed to run non-threaded. This technique has the drawback that separate versions of the source code must be maintained and tested.
Another common solution uses a conditional compilation feature of a preprocessor to compile the same source files to produce different binaries for threaded and non-threaded execution. The thread management code is then ignored when compiling the non-threaded case. However, conditionally compiled code is extremely difficult to debug and test.
A third solution is to use a single source and simply test at run time whether threading is desired. This has the disadvantages that (1) it is generally still necessary to link with the thread library, causing a potentially large growth in size, (2) some thread packages impose a performance penalty for their own bookkeeping, etc., merely by being loaded, and (3) there is a performance cost for checking whether to run in a threaded or non-threaded mode.
When code is written for a threaded environment, the programmer generally needs to be aware of which threading package they are writing for. Thread package interfaces differ greatly from platform to platform making portability of code difficult.
The problem with different thread package interfaces is generally ignored. Code is typically written for a single platform and therefore a single thread package. If portability is desired, separate source or conditional compilation models as described above are generally used. Separate source or conditional compilation code has the disadvantages of maintaining and supporting multiple versions of similar code and increases debug and testing complexity.
Accordingly, a need remains for code that operates efficiently in both a multithreaded and a non-threaded environment without significantly increasing code complexity or decreasing performance.
SUMMARY OF THE INVENTION
A thread model is abstracted into a single interface providing objects and facilities for launching threads, ensuring mutual exclusion, maintaining thread-specific data, etc. The implementation of the interface is implemented in terms of any particular thread package, and the question of which thread package to use is left for program link time. The single interface abstracts away the peculiarities of any particular thread package. The programmer then creates a single program written in terms of the interface which is able to work with any of the thread packages.
The foregoing and other objects, features and advantages of the invention will become more readily apparent from the following detailed description of a preferred embodiment of the invention which proceeds with reference to the accompanying drawings.


REFERENCES:
patent: 5452459 (1995-09-01), Drury et al.
patent: 5465363 (1995-11-01), Orton et al.
patent: 5481706 (1996-01-01), Peek
patent: 5630136 (1997-05-01), Davidson et al.
patent: 5717926 (1998-02-01), Browning et al.
patent: 5742822 (1998-04-01), Motomura
patent: 5951653 (1999-09-01), Hill et al.
patent: 5953530 (1999-09-01), Rishi et al.
SunSoft, Multithreaded Programming Guide, Sun Microsystems, Inc., pp. 101-109, 1994.
M. B. Jones, “Bringing the C Libraires with Us into a Muti-Threaded Future”, USENIX, Winter '91, pp. 81-91, 1991.*

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

Null thread library and thread abstraction interface does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Null thread library and thread abstraction interface, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Null thread library and thread abstraction interface will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2440176

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