[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OCCAM, JOYCE, SUPERPASCAL AND JAVA
- To: adrian.lawrence@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, dan@xxxxxxxxxxxxxxx, pbh@xxxxxxxxxxxxxxx, occam-com@xxxxxxxxx, mikep@xxxxxxx, gstephe1@xxxxxxxxxxx, grorr@xxxxxxx, JerryJerry@xxxxxxx, tjoccam@xxxxxxxxxxxxx, bernief1@xxxxxxxxxxx, bombcar@xxxxxxxxxxxxxxxxxxxxxxxx
- Subject: Re: OCCAM, JOYCE, SUPERPASCAL AND JAVA
- From: tjoccam@xxxxxxxxxxxxx (Lawrence Dickson)
- Date: Sun, 6 Jun 1999 09:04:07 -0700
All,
I haven't any access to Per Brinch Hansen's papers so I am working
off your summaries. It LOOKS (correct me if I'm wrong) as if Prof
Hansen's technique is equivalent to a pool of instances of each
process - an instance gets deactivated at process termination but
remains in existence to be reactivated at later need in an unrelated
spawn. Using occam-style software-hardware analogy, this would be
equivalent to addressable hardware modules, say "single level process
nesters" and "single parenthesis parsers" wired together to make a
parallel compiler. You could hot-add new hardware modules but not
hot-remove them.
Possibly such a hardware analogy could clarify some of the issues
to do with synchronization. Has Prof Hansen tried making a fine-grained
parallel compiler using his techniques?
Larry Dickson
>From ukc.ac.uk!occam-com-approval Fri Jun 4 13:59:21 1999
>Subject: Re: OCCAM, JOYCE, SUPERPASCAL AND JAVA
>To: dan@xxxxxxxxxxxxxxx (Denis A Nicole)
>Date: Fri, 4 Jun 1999 21:38:58 +0100 (BST)
>From: Adrian Lawrence <adrian.lawrence@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
>
>Denis A Nicole writes:
>
>> The memory management story is also simple. You calculate at compile time
>> the size of an activation record for each different recursively used
>> process. The compiled code then manages a separate list of exact-size
>> buffers for each recursively used process. In-line code picks a buffer
>> from the list on process activation (or sbrk()'s a new one if the list is
>> empty) and returns the buffer to the list on process termination. No
>> buffers are ever returned back from these exact-fit lists. The buffer
>> lists just grow out of contiguous free store.
>> ....
>....
>
>Each (textual) process is allocated an index and a length: calculated by the
>compiler. The length is just that of the workspace. As it stands above, the
>lowest workspace slot is used to maintain a linked list of previously used
>workspace slots, now free for re-use, but only by instances of the current
>process, as identified by the index.
>....