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?