[vm][q] what's needed to support multiple, disjoint ObjectMemories?

Robert Withers rwithers12 at attbi.com
Sat Jan 25 21:04:02 UTC 2003


folks,

I am trying to think what facilities we could build that generates the 
most secure squeak environment.   After a lot of reading, my approach 
has been to create special object references, partition them, and 
modify the way they react to message sending.  Other complimentary 
approaches establish filtered method-dictionaries, at the meta-level.  
I believe these two approaches will start to integrate.

In focusing on reference partitioning, a minimalist implementation 
would be vm-supported partitioning.   To really ensure that two 
different secured areas (vats) don't leak in undetectable ways, I 
believe that the capability to instantiate multiple instances of 
ObjectMemory is the most effective.

[requirements for multiple Objectmemories in one squeak process]
- Each ObjectMemory would have an eden space, survivor spaces, old 
space segments, a large space, a fixed space, a compiled code cache and 
a stack space.
- The memory layout, in squeak's heap, would have a partition table 
referencing these objectMemories, and they wouldn't overlap in the heap.
- Each would be garbage collected separately and have all appropriate 
GC agents.
- The only limit to the number and size of these objectMemories will be 
available memory, a limit to the total overhaed cost and optimizing the 
success of QoS constraints.
- Out pointers and in pointers between objectMemories would be 
implemented using a vm implementation of the EventualSend references 
(found at http://minnow.cc.gatech.edu/squeak/2410).
- An optimization to asynchronous eventual sending would be to 
immediately evaluate message invocations and resolve the promises to 
references.

[questions and comments]
1) What problems or difficulties would there be in allowing 
ObjectMemory to be multiply instantiated?
2) How would the interpreter need to be changed for allocation?
3) How would the interpreter need to be changed for collection?
4) What would need to be the stack representation of partitioned 
references?
5) Do you think this is an interesting direction of research in squeak?

cheers,
robert


squeaker maxim:
A small hack can fix a small problem
A big problem is really many small problems
Hack the image! 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 2302 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030125/c98156ee/attachment.bin


More information about the Squeak-dev mailing list