GC & sensory pointers.
Mark S. Miller
Thu, 24 Dec 1998 12:44:30 -0800
I think we are all agreed on the direction of sense keys. However, I think
you guys may be missing Norm's point.
At 10:49 AM 12/23/98 , email@example.com wrote:
>We agree that the holder of a "weak pointer sense key" can ask if the key
>is still valid. This conveys no information to holders of strong keys to
>the same object, which is as it should be. Also, it does not change the
>state of the object itself.
>We agree that when the last strong key is dropped the garbage collector
>will reclaim the object. Thus, dropping the last strong key (or explicitly
>destroying the object, per my note on managed storage), conveys one bit of
>information from a holder of a strong key to all holders of a weak sensory
[-] The question is not whether the observing weak keys are sensory.
The question is whether dropping the last strong key leaks information to
those holding weak keys. It does not matter whether the weak keys in this
question are sensory. It does matter whether the strong key is sensory, as
that is the one I claim is leaking information.
Given that those holding weak keys can test whether the object still
exists, an action that causes the object not to exist communicates
information to those that can check. Therefore a strong key cannot be
sensory. Therefore a sense key must be weak.
>This is no different from what happens presently when the holder of a
>strong key sells the object back to the space bank (the KeyKOS storage
>manager). The key that was previously a sense key becomes a zero number
>key, and subsequently returns KT+1 as its return code.
[-] It is very different.
To sell a strong key back to the space bank, you must have the space bank.
A key to a space bank, powerful enough to sell back pages, is definitely
not sensory, for this among other reasons. Not being sensory, if it came
from a factory in its initial endowment to its yield, it would be a hole
subject to hole-check analysis.
Btw, I also agree that GC and KeyKOS/EROS-like explicit storage management
coexist perfectly fine, but only as long as sense keys are weak.