*Draft* DIMSUM architecture paper available

William S. Frantz frantz@netcom.com
Thu, 29 Dec 1994 10:44:49 -0800 (PST)


Having dug my out of the chaos of 12 people in the house over
Christmas, I finally got a chance to read the draft, red pen in hand.
Comments:

1. Does DIMSUM distinguish between processors which share main memory,
or are they treated as a single resource?

2.1 What coherency model is implemented.  Sparc, for example, has three.

2.1 I would have understood the mapping discussion better on the first
pass if the paper made it clear that DIMSUM supports mapping a window
on a segment, and not a segment itself.  (A difference from Multics.)

2.1 If several processes share an address space, then the issue of
who gets the address fault becomes important.  My gut feel is that
the address space keeper should get it with a way of passing it to/
invoking the process keeper if the address space keeper is unwilling
to fix the problem.

2.2 Does it make sense for threads from multiple architectures to run
within a single address space?  I would think that in all cases, the
machine languages would be different, and so would require separate
address spaces, if only for the interpreter segment.

2.2.2 Can the authority of the address space key be subsetted?  Can a
user build a synthetic address space key that acts as an address
space key in a process, but still allows the user's program to 
interpret all the key invocations.  Allowing synthetic objects was
an early KeyKOS design goal.

2.2.1 Footnote 8 It can trap to the process keeper with an invalid
fault.  In general, can the segment extension fault be used to 
implement a "allocate on write" policy?

2.3 What is the contract with a real time process that doesn't want
to use the CPU?  Can it accuse DIMSUM of failing to meet its part
of the contract?

2.3 Dynamic Priorities - They can be used for policies such as, "make
the top window run well", and "make a process that is sometimes CPU
bound and some times I/O bound a good citizen".

2.3 N.B. KeyKOS only used Schedule groups for cleanly stopping a group
of processes.

2.3.2 Perhaps an exception after a certain amount of computation would
be useful.  Like running out your meter in KeyKOS.

2.4.2 Key Table Exceptions.  Addressing a key table where your process
has no key table key needs to send an exception to someone.  Perhaps the
process keeper is the logical candiate.

2.5 Footnote 9 - KeyKOS defined two address space keys for the 88000.
I'm not sure the kernel accually worked because universally people would
store the same key in both slots.  I am not sure that first class support
for Harvard architecture is worth it.  UNIX certainly won't use it.

2.5.1 2nd paragraph after the bullets says "A virtual processor in the
halted state..." is this the same as the disabled state?  Just how are
process traps handled?  KeyKOS gets machine dependent in this area, in
an attempt to provide as much debugger support as the underlying
architecture will allow.

3. Send Keys and Receive Keys seems to imply that only the high bit of
the 5 bit index resides in the message control word.

5. Where does the recursion of having to call a segment keeper to resolve
missing segment data end?  Who resolves the segment faults of the segment
keeper?

6. What are "core resources"?

7.2 Void Key - What happens when you halt?  How do you test for a 
void key?  The KeyKOS DK0 approach didn't always trap you.  If you
accepted the return code, then you could test for void as part of
your normal outcome testing.

7.2 Zero Segment - What are backing heaps?

9. Is there a reference for the Xanadu information architecture?

9. The way I read this, each server that wishes to authenticate its
clients has a segment key to the "offical" user description segment,
and can map it and see all the user authentication data.  This problem
is a specific case of a more general view that servers are more
trusted than clients.

9. What does it mean that user objects are immutable?  The underling
segment certainly isn't.  How do you throw a user off the system?


I also found some low level english type errors:

2.2.3 Second paragraph has some english problems.
2.3 Second paragraph has Realt-time.
3. FIrst paragraph says "Operations sucha s..."
7.1 first paragraph has "shedule"
-----------------------------------------------------------------
Bill Frantz                   Periwinkle  --  Computer Consulting
(408)356-8506                 16345 Englewood Ave.
frantz@netcom.com             Los Gatos, CA 95032, USA