 | Fair Threads in C |  |
|
FairThreads offers a very simple framework for concurrent and
parallel programming. Basically, it defines schedulers
which are synchronization servers, to which threads can dynamically
link or unlink. All threads linked to the same scheduler are executed
in a cooperative way, at the same pace, and they can synchronize and
communicate using broadcast events. Threads which are not linked to
any scheduler are executed by the OS in a preemptive way, at their own
pace. FairThreads offers programming constructs for linking and unlinking
threads.
FairThreads is fully compatible with the standard Pthreads library and
has a precise and clear semantics for its cooperative
part; in particular, systems exclusively made of threads linked to
one unique scheduler are actually completely deterministic. Special
threads, called automata, are provided for short-lived small tasks or
when a large number of tasks is needed. Automata do not need the full
power of a native thread to execute and thus consume less
resources.
A paper describes FairThreads, the API in C, and the man pages:
A paper describes the formal semantics of the cooperative
part of FairThreads:
The main changes with the previous version v1.0 are:
- The orders issued from ft_scheduler_stop, ft_scheduler_suspend, and ft_scheduler_resume are processed
in the order in which they are issued (no more priority of suspend on
resume, or the converse...).
- Schedulers have an access in constant time to the next thread
to execute (see files itemlist.h and itemlist.c).
- This version is used as a target for the compilation of
LOFT.
FairThreads is distributed under the Gnu Public License.
Frederic Boussinot
EMP-CMA/INRIA - MIMOSA Project
2004 route des Lucioles - BP 93
F-06902 Sophia Antipolis, Cedex
This page has been generated by Scribe.
Last update Tue Nov 23 14:28:20 2004