[comp.os.research] LRU/NUR for TLB ?

amit@umn-cs.uucp (Neta Amit) (02/29/88)

There's plenty of info on page-replacement algorithms, particularly
Least Recently Used (LRU) and its approximation Not Used Recently (NUR).
NUR in some form or another is used in most OS's that support paging;
true LRU would be far too expensive (right?).

Good replacement is much more critical for the Translation Lookaside
Buffer (TLB), and the TLB is relatively small; true LRU is quite possible.  

Could the good Netlanders direct me to articles/programmer's guides etc.
that describe TLB entry-replacement in existing products?
TIA,


-- 
  Neta Amit 
  U of Minnesota CSci
  Arpanet: amit@umn-cs.cs.umn.edu

lamaster@ames.arc.nasa.gov (Hugh LaMaster) (03/01/88)

[ Hugh:  what are the interesting things about the OS for the Cyber 205? ]
[ I have seen NOS and was not impressed; has CDC learned how to write an ]
[ OS after all these years?  --DL                                        ]

The Cyber 205 actually does full LRU in hardware for the entire page table
(including the part that is in the 16 entry TLB).  Being a memory to memory
vector computer, it doesn't cost much.  However, it does have drawbacks.  The
page table is global, and the hardware does global LRU.  In my opinion,
LRU should be by virtual memory segment.  On the 205, special non-page
table entries have to be made to manage process working sets individually,
which is actually what you want done in the first place.  Shared memory
complicates things further- whose working set do those pages belong to?
If you are not careful, shared memory pages which are frequently used by
many processes can force everything else out of memory, and increase the 
paging rate. 

Query:  Are there any operating systems out there which intelligently
handle process working sets in the face of multiple shared virtual memory
segments?