[Oberon] RE: Input.Time

Pieter Muller pieter.muller at alumni.ethz.ch
Mon Feb 10 20:31:47 CET 2003


On Thu, 6 Feb 2003 09:27:55 -0800 (PST), John Drake <jmdrake_98 at yahoo.com> 
wrote:
> I've been thinking of a 5th option.  From what I've seen of the code 
> BlueBottle has a priority based locking mechnism.  The lock
> AosLocks.AosHeap hasthe highest priority.  A new lock could be added 
> AosLocks.AosHardReal that has an even higher priority.  Then they could 
> interrupt the GC.  There's only one catch, but it's a big one.  Such 
> tasks would need to be prohibited from doing anything that would affect 
> the heap.  I would imagine
> that there is a large class of RT problems
> that could be handled this way, but this
> would require much programming discipline.
> But I agree, implementing an incremental GC
> is the best overall solution.

Even worse, such tasks are not allowed to *use* pointers, since the GC 
modifies all pointers while traversing the heap.  This is due to the 
pointer rotation algorithm.  There are other traversal algorithms that do 
not do this.  For more information, see the book "Garbage Collection" by 
Jones & Lins and Knuth's "Art of Computer Programming, Volume 1".

-- Pieter




More information about the Oberon mailing list