I ran across this today and thought some of you might find it 
interesting. The paper is "The Mapping Collector: Virtual Memory Support 
for Generational, Parallel, and Concurrent Compaction", and the URL is 
http://www.cs.ucsb.edu/~ckrintz/papers/mappinggc-asplos08.pdf. It looks 
quite promising, although I haven't put much thought into how it might 
be implemented in MRI, KRI or Rubinius. It looks like a "natural" for 
jRuby, however.