Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!snorkelwacker!apple!oracle!news From: csimmons@jewel.oracle.com (Charles Simmons) Newsgroups: comp.arch Subject: Re: Real disk FASTER than Ram disk Message-ID: <1990Jun8.103608.15877@oracle.com> Date: 8 Jun 90 10:36:08 GMT References: <431@garth.UUCP> <641@sibyl.eleceng.ua.OZ> <136299@sun.Eng.Sun.COM> <1990May27.210935.8564@murdoch.acc.Virginia.EDU> <3402@auspex.auspex.com> <60196@lll-winken.LLNL.GOV> <5490@titcce.cc.titech.ac.jp> Sender: news@oracle.com Reply-To: csimmons@oracle.com Organization: Oracle Corp Lines: 41 In article <431@garth.UUCP>, fouts@bozeman.ingr.com (Martin Fouts) writes: > From: fouts@bozeman.ingr.com (Martin Fouts) > Subject: Re: Real disk FASTER than Ram disk > Date: 7 Jun 90 18:46:14 GMT > > In article <5490@titcce.cc.titech.ac.jp> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes: > > > A better solution (as has been pointed out) is to allow for memory > >resident file systems that are only written out to backing disk when > >space is needed. > > That is what I have described in a paper titled: > > A fast /tmp file system by delay mount option > > Excuse me for disagreeing, but replacing /tmp with a file system that > gets paged isn't a good solution. What you are doing here is working > around the lack of advance in the underlying software. The compiler > is still writing to /tmp because it isn't managing its own address > space effectively in a virtual memory environment. Direct mapping > files into the compiler address space and paging from that is much > more effective than using a second order paging for a "file system" > ala /tmp. > > -- > Martin Fouts Er, um, it's not clear that virtual memory is the most desirable abstraction here. The compiler uses files in /tmp in order to communicate results from one pass of the compiler to the next. On modern architechtures (i.e. massively parallel processors), we would probably want to run 'cpp', 'cc', 'as', 'ld', and possibly a few optimization passes in parallel with something vaguely resembling a pipe connecting the processes together and holding various translated versions of the source code. The compilation process is my favorite example of a computational task that can be easily parallized by making use of a pipeline. -- Chuck