🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #1986

Re: Memory utilization & inter-process contention

#1986
From: richard a hammond
Date: Fri, 25 Aug 1989 12:18
44 lines
2842 bytes
lgy@newton.phys.washington.edu (Laurence Yaffe) writes:
>
>>...
>>Severe, and unnecessary, performance degradation can occur if you have several
>>processes which have very poor locality of reference when accessing their
>>data, are sufficiently small that any singly process can fit in real memory,
>>and yet sufficiently large that no two processes will fit in real memory.

In article <13773@polyslo.CalPoly.EDU> ttwang@polyslo.CalPoly.EDU (Thomas Wang) comments:

>To avoid excessive page fault rate, a good algorithm is to load in multiple
>pages depending on system load.  Actually how many pages should you load in
>is still a research question.  In HP's term, loading in extra pages is
>called 'pre-fetching'.
>
>HP's MPE/XL have pre-fetching.  I don't know about Unix, but my guess is
>that Unix probably does not.

Note that in the case postulated by L. Yaffe, pre-fetching makes the thrashing
more severe, because the memory accesses have "poor locality of reference",
i.e. the working set is very close to the total memory required by the
process.  Fetching pages n through n+m because of a page fault on n
would increase the I/O overhead without increasing the probability
that you would avoid the next page fault.

Historical commentary:
The early multi-user UNIX machines, DEC PDP 11/45 and 11/70, could support
more physical memory than the largest process could use, so the scheduler
didn't worry about this sort of thrashing.

VM works fine if you have good locality of reference, while it fails miserably
if you don't.  With poor locality of reference, you need to have enough
physical memory to keep the job in memory.

Practical commentary:
Yes, the problem is interesting and can be solved, but I never observed
it except on our large number crunching machines, i.e. the Convex and Alliant.
On those machines I scheduled the jobs by hand, after all, if the job is going
to take 10 days of CPU time, you can just adjust the jobs so one runs over
night and the other one runs during the day.  So, I conclude that the problem
isn't that interesting for the vast majority of UNIX systems, i.e. all
our Suns and Vaxen didn't have the problem.

Rich Hammond
Technical Details
Message-ID: <1900@crdgw1.crd.ge.com>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!rpi!crdgw1!sunroof!hammondr
References: <3332@blake.acs.washington.edu> <13773@polyslo.CalPoly.EDU>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!rpi!crdgw1!sunroof!hammondr
From: hammondr@sunroof.crd.ge.com (richard a hammond)
Newsgroups: comp.arch,comp.sys.mips
Subject: Re: Memory utilization & inter-process contention
Message-ID: <1900@crdgw1.crd.ge.com>
Date: 25 Aug 89 12:18:06 GMT
References: <3332@blake.acs.washington.edu> <13773@polyslo.CalPoly.EDU>
Sender: news@crdgw1.crd.ge.com
Reply-To: hammondr@sunroof.crd.ge.com (richard a hammond)
Followup-To: comp.arch
Distribution: usa
Organization: General Electric Corp. R&D, Schenectady, NY
Lines: 44