Push/Pull
Bryan Ford
baford@schirf.cs.utah.edu
Wed, 07 Dec 94 13:25:26 MST
> I think I may be unclear on what exactly you mean by "permissions".
> In your definition, does "permissions" mean the parts of a memory
> object that can be read or written, given a particular memory object
> capability? Or is it something to do with how a memory object is
> mapped in virtual memory, e.g. the access rights given to mapped
> pages?
>
> If it's the former, then I guess I've been pretty much assuming all along
> that permissions generally apply at the memory object granularity.
>
>I'm reacting to the KeyKOS segment model. It is possible, in KeyKOS,
>to construct a two-page segment as follows (I hope emacs doesn't turn
>my spaces into tabs...):
>
>RW Seg Key
>----------->+----------------+ +---------------------+
> | RW page key --+------>| Page 0 of segment |
> +----------------+ +---------------------+
> | RO page key --+--\
> +----------------+ \ +---------------------+
> -->| Page 1 of segment |
> +---------------------+
OK, I see. However, note that in the presence of external pagers,
there is really no need for a "segment" or "composed memory object"
to be a basic system abstraction at all - it can be implemented as
an arbitrary layer between the "real" memory object and the kernel/VMM.
The semantics of this intermediate "composition" layer can be whatever
you want. If particular types of composition layers turn out to be
very common, they can be implemented in the kernel, but in any case
I don't think the fundamental design of the system needs to dictate
exactly what "composition" means.
Bryan