Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!mailrus!ames!ames.arc.nasa.gov!lamaster From: lamaster@ames.arc.nasa.gov (Hugh LaMaster) Newsgroups: comp.arch Subject: Re: Capabilities and Object Oriented Programming Message-ID: <45425@ames.arc.nasa.gov> Date: 20 Mar 90 02:07:29 GMT Sender: usenet@ames.arc.nasa.gov Organization: NASA - Ames Research Center Lines: 38 References: At some time in the distant past (say, 8-10 years ago...) there was a flurry of activity in Capability based computer systems. One of the ideas in vogue at the time was *System Level Objects*. That is, that it would be a *good idea* if you could give separate capabilities to individual objects. Some good results came out of some of these efforts, but, at that time, there really wasn't that much interest in OOP. (Aside: by system level objects, I mean giving each object process-like properties, with a separate address space, etc. This sort of approach is generally referred to as a Capability-Based system, although sometimes people mean varous things by that term.) Now, ignoring for the moment whether it is a *good idea* to do this, it could have some performance problems :-) OOP systems like Smalltalk can require the creation and destruction of ~10,000 objects/sec/VUPS. To support system level objects, this would require modification of page tables at the same rate. (At least; it could also require a lot more things besides. I guess it depends on what capabilities are available. But, at the least you need to create an address space and identify it to the other objects in the system.) Now, a TLB miss on some recent systems costs around 10-20 instruction cycles. But, how about a page table modification? Does anyone know how expensive creating or deleting an entry is? (On example systems, such as a MIPS or SPARC system running Unix, etc.) I don't know whether the cost of object creation would be as great as process creation, but I would guess that process creation would set an upper bound, anyway. You also need to be able to send messages from one object to the next efficiently. I don't know at what rate messages are sent in such systems. Presumably System 38/etc. data might be of some help, but I have seen precious little hard data published about that architectural family. What would be the best page table organizations to support this? (Inverted Page Tables, for example...) Hugh LaMaster, M/S 233-9, UUCP ames!lamaster NASA Ames Research Center ARPA lamaster@ames.arc.nasa.gov Moffett Field, CA 94035 Phone: (415)604-6117