Subject: Re: RamFAST & GS/OS cache
From: [email-masked] (Matt Deatherage)
Date: Thu, 26 Nov 1992 02:30:20 GMT
Newsgroups: comp.sys.apple2

Dave's already come and corrected a lot of the garbage in this thread, but
it _never_ ceases to amaze me how people I usually respect and admire can
throw garbage around like it was fact -- when it comes to the GS/OS cache.
More intelligent people have more stupid ideas about this one piece of
software than anything else I've ever seen.  There have been some good
facts in here, but it's hard to pick them out from the rest of it.

I wrote an article nearly three years ago for _develop_ explaining how the
cache works; it was published in _develop_ #2.  It's been on every
Developer
CD since April 1990.  If you want to know how things work, go read the
article.

Drew's current driver is 100% correct to not use the cache at all.  If it's
faster to return information from the media than to search the cache and
copy it, there's no reason to use caching.  The RamFAST driver doesn't
use caching for this very reason.  To suggest that it should be changed
due to some mystical belief that GS/OS's cache knows better than an
individual device driver is misinformed at best.

Someone said the Apple SCSI card doesn't cache at all.  Rubbish.  It uses
the GS/OS cache like other drivers.  Not having an onboard cache, this
makes the most sense for the driver.

Todd suggested that FSTs should read cache memory directly; this is a bad
idea.  Dave is right on target -- if that happened, devices wouldn't have
a way to detect media swaps and flush the cache, and you could get blocks
belonging to a disk you ejected a while back.  Drivers can't notice disks
are ejected until someone calls the driver and gives it code time -- right
now, they get that on every read call and the driver manages the cache.
That's why it works.

Similarly, the comment that GS/OS caches "everything" or "directories" is
also rubbish.  An FST asks a driver to cache things it thinks it might
want again but doesn't want to keep around -- or things that an application
requests are cached.  The driver can then decide whether it's smart to
cache those things or not.

There's good background in the article "Demystifying the GS/OS Cache" in
_develop_ #2.  If you have questions, please dig it out and read it.

============================================================================
Matt Deatherage, Developer Support Center, Apple Computer, Inc.
Personal mail only -- please POST technical questions, questions about
Apple and its policies, where to find documents and related inquiries.
The opinions I express don't represent Apple, which makes us both happy.
============================================================================