CS262A Reading Summary 21

Cooperative Task Management without Manual Stack Management

Atul Adya et al
Summary by Feng Zhou
10/22/2002

3 key features,
  1. 5 key concepts or choices related to concurrent programming models are presented. A certain model can choose from preemptive or cooperative task management, automatic or manual stack management, synchronous or asynchronous I/O management, pessimistic or optimistic conflict management, whether or not to do data partitioning. These concepts define the design space of concurrent programming models and related techniques.
  2. The authurs argue that there are better alternatives to the two mostly discussed models: multithreaded and event-driven. The "sweet spot" they claim is the combination of cooperative task management and automatic stack management (and, implicitly asynchronous I/O). These analysis are insightful and the claim is convincing. However, a little problem is to my understanding, this "new" approach is exactly user-level threads, which have been around for a long time.
  3. An "adaptor" mechanism is introduced to let code using automatic stack management and code using manual stack management call each other. This mechanism can be very help in engineering of large project containing heterogenious code using both models.

1 flaw:

The authors never mentioned the essence of "fibers" - they are user-level threads. So actually the paper does not invent anything new regarding programming model.