next up previous contents
Next: Shared Virtual Memory Up: An Abstract Model of Previous: Demand Paging

Swapping

  When the physical memory in the system runs out and a process needs to bring a page into memory then the operating system must decide what to do. It must fairly share the physical pages in the system between the processes running in the system, therefore it may need to remove one or more pages from the system to make room for the new page to be brought into memory. How virtual pages are selected for removal from physical memory affects the efficiency of the system. Linux uses a page aging technique to fairly choose pages which might be removed from the system. This scheme involves every page in the system having an age which changes as the page is accessed. The more that a page is accessed, the younger it is; the less that it is accessed the older it becomes. Old pages are good candidates for swapping.

If the page to be removed came from an image or data file and has not been written to then the page does not need to be saved. Instead it can be discarded and if the process needs that page again it can be brought back into memory from the image or data file again. However, if the page has been written to then the operating system must preserve the contents of that page so that it can be accessed at a later time.

This type of page is known as a dirty page and it is saved in a special sort of file called the swap file. These unwanted dirty virtual pages are stored on hard disk in the swap file. Accesses to the disk are very long relative to the speed of the CPU and the operating system must juggle the need to write pages to disk with the need to retain them in memory to be used again. The operating system must use an algorithm which fairly swaps out the less used pages of the processes competing for resources. If the swapping algorithm is not efficient then a condition known as thrashing occurs. In this case, pages are constantly being written to disk and then being read back and the operating system is too busy to allow much real work to be performed. If, for example, physical PFN 1 in Figure gif is being regularly accessed then it is not a good candidate for swapping to hard disk.


next up previous contents
Next: Shared Virtual Memory Up: An Abstract Model of Previous: Demand Paging

David A. Rusling
david.rusling@reo.mts.dec.com