release 0.0.0.20 and thoughts
Fri, 18 Aug 1995 01:39:34 -0400
Cooperate is more flexible than preemptive simply because it's more
primitive, more basic. Preemptive is a simple addition to
cooperative, and could easily be done in a small part of the system
without requiring any change to the rest.
Technologically, sure -- for the case where the underlying hardware
supports pre-emption, but you've procastinated on making it available
in the system.
But, in terms of interface definition, not in the least bit. You
*need* the concept of atomic (indivisible) actions -- these are
trivial to obtain in a cooperative multitasking environment, but must
be explicitly defined in a preemptive multitasking environment.
This is *why* environments like MS-Windows, and the Macintosh, still
lack a robust implementation of pre-emptive multitasking -- it would
break existing applications that people rely on.