home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!spool.mu.edu!agate!doc.ic.ac.uk!uknet!gdt!aber!fronta.aber.ac.uk!pcg
- From: pcg@aber.ac.uk (Piercarlo Grandi)
- Newsgroups: comp.object
- Subject: Re: Rethinking the Object Paradigm
- Message-ID: <PCG.93Jan22154531@decb.aber.ac.uk>
- Date: 22 Jan 93 15:45:31 GMT
- References: <C0wHIw.GM8@clear.com>
- Sender: news@aber.ac.uk (USENET news service)
- Reply-To: pcg@aber.ac.uk (Piercarlo Grandi)
- Organization: Prifysgol Cymru, Aberystwyth
- Lines: 45
- In-Reply-To: rapp@clear.com's message of 15 Jan 93 14: 56:55 GMT
- Nntp-Posting-Host: decb.aber.ac.uk
-
- >>> On 15 Jan 93 14:56:55 GMT, rapp@clear.com (Chuck Rapp) said:
-
- Rapp> If all objects exist within a single process, an operation may be
- Rapp> accessed via a routine call, i.e. pushing the arguments for the
- Rapp> operation on a stack frame and jumping to the start of the
- Rapp> operation's code. That is how C++ (my lingua franca) interprets a
- Rapp> reference to an object's operation.
-
- Rapp> But what if the objects are spread across multiple processes and
- Rapp> multiple computers? Obviously the above technique simply won't
- Rapp> work because there is no way for one process to access another
- Rapp> process' stack or code.
-
- Not so obvious... If one is clever this *is* possible. My long term
- project (started ten years ago, and constantly sidetracked, but might be
- finished in a year or so) is an OS kernel in which this is possible. The
- technique is very easy: to make a thread jump from one machine to
- another, just copy the (last relevant part of the) stack segment to the
- machine where the operation's code resides (of course if the two address
- spaces are on the same machine one just remaps the stack segment).
-
- Rapp> The solution is for some sort of message passing between objects.
-
- Not at all; one just makes threads jump from one address space to
- another, as decribed above. Each address spaces contains one or more
- "type managers" (a.k.a. classes, more or less).
-
- Thread passing has also been "reinvented " by other people; for example
- the Rochester people that did Elmwood and Psyche and the GeorgiaTech
- people that did Clouds (even if they speak of making threads jump from
- object to boejct, not class to class, which is rather odd; an
- interesting set of papers is available by anonymous FTP from
- "helios.cc.gatech.edu"); on a much more sophisticated scale it was the
- central idea of Flex by the people at the Malvern RSRE.
-
- If you want to get really farther back, the technology (albeit for the
- non distributed case, but already in essence there) was first introduced
- in the PDP-1.
-
- My usual observation that most OO people, and not just Hathaway, are
- unaware of things like capability architectures applies. Too bad for
- them.
- --
- Piercarlo Grandi <pcg@aber.ac.uk> c/o Dept of CS
- University of Wales, Penglais, Aberystwyth SY23 3BZ, UK
-