Changes between Version 33 and Version 34 of LightweightConcurrency


Ignore:
Timestamp:
May 18, 2012 3:42:30 PM (3 years ago)
Author:
kc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LightweightConcurrency

    v33 v34  
    9797== Abstracting the Scheduler == 
    9898 
    99 Concurrency substrate does not impose any structure on the user-level schedulers. The programmer might choose to implement a single scheduler for the entire system or a scheduler per capability. The schedulers might also be hierarchical, with pluggable load-balancing policies. However, we need a uniform interface such that STM, asynchronous exceptions, safe-foreign calls, blackholes and other such mechanisms can interact with the user-level scheduler. 
     99Concurrency substrate does not impose any structure on the user-level schedulers. The programmer might choose to implement a single scheduler for the entire system or a scheduler per capability. The schedulers might also be hierarchical, with pluggable load-balancing policies. However, we need a uniform interface such that the concurrency libraries, STM, asynchronous exceptions, safe-foreign calls, blackholes and other such mechanisms can interact with the user-level scheduler. For this purpose, we introduce the notion of `scheduler actions`, which is expected for every SCont. The substrate interface for scheduler actions is shown below: 
     100 
     101{{{ 
     102------ Schedule SCont Action ------ 
     103 
     104------ Yield Control Action  ------ 
     105}}} 
     106 
     107We expect every SCont to belong to a particular scheduler. However, SConts are free to be migrated between schedulers.  
    100108 
    101109== Capabilities and Tasks ==