Cooperative Threads and Preemptive Computations
نویسندگان
چکیده
A two-level model for reactive systems programming is introduced in which threads linked to the same scheduler are run cooperatively and have the possibility to escape from the scheduler control to run preemptively. We present a type and effect system to enforce a logical separation of the memory which ensures that, when running in preemptive mode, threads do not interfere with those running in cooperative mode. Thus, the atomicity property at the basis of the cooperative model is preserved.
منابع مشابه
FairThreads: mixing cooperative and preemptive threads in C
FairThreads introduces fair threads which are executed in a cooperative way when linked to a scheduler, and in a preemptive way otherwise. Constructs exist for programming the dynamic linking/unlinking of threads during execution. Users can profit from the cooperative scheduling when threads are linked. For example, data only accessed by the threads linked to the same scheduler does not need to...
متن کاملY-Threads: Supporting Concurrency in Wireless Sensor Networks
Resource constrained systems often are programmed using an eventbased model. Many applications do not lend themselves well to an event-based approach, but preemptive multithreading pre-allocates resources that cannot be used even while not in use by the owning thread. In this paper, we propose a hybrid approach called Y-Threads. Y-Threads provide separate small stacks for blocking portions of a...
متن کاملDebugging Scheme Fair Threads
There are two main policies for scheduling thread-based concurrent programs: preemptive scheduling and cooperative scheduling. The former is known to be difficult to debug, because it is usually non-deterministic and can lead to data races or difficult thread synchronization. We believe the latter is a better model when it comes to debugging programs. In this paper, we discuss the debugging of ...
متن کاملLanguage Support for Controlling Timing-Based Covert Channels
The problem of controlling information flow in multithreaded programs remains an important open challenge. A major difficulty for tracking information flow in concurrent programs is due to the internal timing covert channel. Information is leaked via this channel when secrets affect the timing behavior of a thread, which, via the scheduler, affects the interleaving of public events. This channe...
متن کاملSpace E cient Scheduling of Parallelism with Synchronization Variables
Recent work on scheduling algorithms has resulted in prov able bounds on the space taken by parallel computations in relation to the space taken by sequential computations The results for online versions of these algorithms however have been limited to computations in which threads can only synchronize with ancestor or sibling threads Such computa tions do not include languages with futures or ...
متن کامل