On Jan 23, 2008, at 4:27 PM, David Brodbeck wrote:
On Jan 22, 2008, at 8:54 PM, Rick Thomas wrote:The rule of thumb comes from UNIX days (BSD and even before that with AT&T UNIX). In order to be completely sure you would be able to swap out a program when memory became full, UNIX allocated a page of swap for every page of virtual memory a program occupied. So if vi required 256K to run, there was 256K of swap space allocated to it. The 2 to 1 ratio came from the observation that a busy UNIX time-sharing system with lots of users ran most of it's time with half the users doing something that required CPU/ memory resources and the other half thinking, so you could afford to overcommit memory by a factor of two.Thanks for the interesting history lesson. :)
You're welcome. It had the interesting side-effect that people developed the habit, after they were done thinking and wanted to start working on the computer again, of hitting the <return> key to "wake up the computer" (really, to initiate a bunch of swap-in operations) then wait several seconds for the cursor to actually return and the command prompt to re-appear. The swapping algorithms knew about this behavior and optimized for it. When a process group had been idle long enough to indicate the start of a "think" cycle, the whole process group was swapped out at once. When the user started up again, the whole process group was swapped in -- assuming that the user would be needing it soon.
I'm really gettin' old! Rick