mbrennan@swift.cs.tcd.ie (11/09/90)
Anyone out there know about sharing large(ish) amounts of data between two cooperating processes under ULTRIX 4.0 on a 5820. I want to modify a LISP interpreter so that the garbage collector runs in parallel with the mutator process, rather than have the mutator stop and wait while the GC is running. To do this I want to share relatively large amounts of data between the two processes. At the moment I know about: 1. ptrace() system call which allows you look at a specific word of data in the address space of another process. For even modest amounts of data the overhead associated with a system call per word of data becomes unbearable. 2. shmat()/shmget()/shmop() which allow the two processes access a piece of shared memory. The problem with this is that one is restricted to 24K (6 segments x 4K/seg) of shared memory. I need quite a bit more than this. Surely there are some operating system primitives to support symmetric multiprocessing? Can anyone help? Thanks in advance. -- , , , , , , , , , , Micheal O Braonain Roinn Riomheolaiochta, Colaiste Na Trinoide, BAC 2. Email mbrennan@cs.tcd.ie
yedinak@motcid.UUCP (Mark A. Yedinak) (11/15/90)
mbrennan@swift.cs.tcd.ie writes:
:At the moment I know about:
: 2. shmat()/shmget()/shmop() which allow the two processes access
: a piece of shared memory. The problem with this is that one
: is restricted to 24K (6 segments x 4K/seg) of shared memory.
: I need quite a bit more than this.
This limitation is depndent on the system. It is not imposed directly by the
library calls. Sorry I cannot give you anything more useful, just wanted to
clear this point up.
:--
: , , , , , , , , , ,
:Micheal O Braonain Roinn Riomheolaiochta, Colaiste Na Trinoide, BAC 2.
:Email mbrennan@cs.tcd.ie
--
Mark A. Yedinak - uunet!motcid!yedinak * "Don't take life too
Motorola - General Systems Sector * seriously, you will
3205 Wilke Road, Arlington Heights, IL 60004 * never get out of it
708-632-2874 (I said it, not the big M) * ALIVE!"
aab@cichlid.com (11/21/90)
In article <2251@megadon.UUCP> you write: >I want to modify a LISP interpreter so that the garbage collector >runs in parallel with the mutator process, rather than have the mutator >stop and wait while the GC is running. To do this I want to share >relatively large amounts of data between the two processes. ... If mmap is available (try man mmap) you might want to check it out. I maintain a LISP system on Suns et al and use mmap (not for multiprocessing) and it gives you fast startup (no malloc then read from heap file, just mmap) and automatuc state saving (no explicit writing the heap to disk). Good luck Andy -- Andy Burgess Independent Consultant aab@cichlid.com uunet!silma!cichlid!aab