Xref: utzoo comp.sys.dec:2099 comp.os.vms:19426 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!wuarchive!decwrl!vixie!pacbell!rtech!mikes@rtech.UUCP From: mikes@rtech.UUCP (Mike Schilling(This sentence no verb.)) Newsgroups: comp.sys.dec,comp.os.vms Subject: Re: Map Process address space - help! Message-ID: <4043@rtech.rtech.com> Date: 12 Nov 89 18:29:21 GMT References: <3334@vax1.tcd.ie> Sender: news@rtech.rtech.com Lines: 28 From article <3334@vax1.tcd.ie>, by mbrennan@vax1.tcd.ie: > I am implementing a garbage collector in C on a VAX 6230, and need a > little help. > > The garbage collection process is running in parallel with the user process. > The algorithm requires that the collector process be able to access(read) > the data segment(s) of the running user process. The reason for this is > that the collector needs to examine the current value of variables in > the user process each time it 'sweeps'. A parent/child relationship exists > between the collector process, and user process. > Does the garbage collector have to run in a separate process? running it as a timer-driver AST has the following advantages: 1. You map the "parent"'s complete address space with no additional work. 2. You can block the garbage collector around critical sections easily, with the SYS$SETAST service. 3. Assuming the garbage collector is compute-bound, you don't lose any parallelism, at least on a single-processor machine. 4. You don't have to pay the full context-switch penalty every time the garbage-collector runs. ---------------------------------------------------------------------------- Any resemblance between the opinions expressed above and those of any living person is a coincidence. ---------------------------------------------------------------------------- Mike Schilling mikes@rtech.com Relational Technology Alameda, CA