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

Rainer Blome rainer@physik3.gwdg.de
Wed, 23 Aug 1995 17:11:04 +0200


i wrote and billy answered:

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

no, imho.  there have been statements (estimates and calculations,
actually) about this question before, could you summarize them?


> > we might instead just wait one year for faster machines.
> 
> A _very_ silly solution, again IMO.  Speed increases inefficiency.

in the long run it sure is silly.  for a start, no.  getting a system to run now
or in years makes a difference.


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

and vice versa, sure.  but that's not an answer.  somebody said that this
discussion applies to single processors only.  that's what i mean:  when
writing a program (and thereby wanting to use it), i have an abstract model
of a machine that the program runs on.  unix puts each process in its own
virtual computer.  jecel uses a reified virtual cpu object and one task
(thread) per object.  what model will tunes use to get bootstrapped?

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

a) (safe coop <=> proofs) /\ (proofs are hard) => (safe coop is hard)
   q.e.d.

b) many good things in the far future are worse than some good things now.


> > safe coop doesn't really look like one of the central goals of tunes.
> 
> As I understood it, provable programs were one of the main goals of TUNES.

where did you read that?  you must've gotten that impression from the amount
of the discussion that topic.  which was too much, imho.


> 1) preemptive is far harder to implement than coop.

wrong.  (s.a. proof. ;)


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

that's why i want an abstract machine model that gives me the illusion of
being alone.


rainer