coop/preempt [was: Re: release 0.0.0.20 and thoughts]

Billy Tanksley tanksley@mailhost2.csusm.edu
Mon, 21 Aug 1995 20:38:02 -0700 (PDT)



On Mon, 21 Aug 1995, Rainer Blome wrote:

> how much speedup do we get from coop?  will it be so much that it is worth
> investing the time needed to implement it?

A _very_ good question, worthy of testing, IMO.

> we might instead just wait one year for faster machines.

A _very_ silly solution, again IMO.  Speed increases inefficiency.

> what is the users' model (abstract view) of a the machine?  normally, you
> don't to care about the coop/preempt issue, it's an implementation detail
> of the os.  of course, sometimes some power-user does care.

The programmer is a user from our perspective.

> implementing this kind of safe coop will be a very hard task.  and it

Implementing coop will be incredibly easy.  Implementing proofs will be 
dramatically harder, BUT will allow many good things.

> doesn't really look like one of the central goals of tunes.  starting with

As I understood it, provable programs were one of the main goals of TUNES.

> a preemptive implementation of an abstract machine model that allows for
> later enhancement with the coop scheme seems more reasonable to me.

Several problems.

1) preemptive is far harder to implement than coop.

2) preemptive code (i.e. code written without yields) is impossible to 
run under pure coop without programmer intervention, at least without a 
proof system, and in some cases even with a proof system.

3) coop is easy to run under preemptive; you can just compile out the 
yields (or even just keep them in).

> rainer

-Billy