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,
-
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.
-
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.
-
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.