CITS2002 Systems Programming  
prev
next CITS2002 CITS2002 schedule  

Virtual Memory and Resident Working Sets

The principle of referential locality again tells us that at any time, only a small subset of a process's instructions and data will be required.

We define a process's set of pages in physical memory, as its resident (or working) memory set.

prompt> ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 1372 432 ? S Sep12 0:04 init root 4 0.0 0.0 0 0 ? SW Sep12 0:04 [kswapd] root 692 0.0 0.2 1576 604 ? S Sep12 0:00 crond xfs 742 0.0 0.8 5212 2228 ? S Sep12 0:23 xfs -droppriv -da root 749 0.0 0.1 1344 340 tty1 S Sep12 0:00 /sbin/mingetty tt ... chris 3865 0.0 0.6 2924 1644 pts/1 S Sep15 0:01 -zsh chris 25366 0.0 6.0 23816 15428 ? S 14:34 0:06 /usr/bin/firefox chris 25388 0.0 1.4 17216 3660 ? S 14:34 0:00 (dns helper) chris 26233 0.0 0.2 2604 688 pts/1 R 19:11 0:00 ps aux

In the steady state, the memory will be fully occupied by the working sets of the Ready and Running processes, but:

  • If the processes' working sets are permitted to be too large, fewer processes can ever be Ready.

  • If the processes' working sets are forced to be too small, then additional requests must be made of the swapping space to retrieve required pages.

All modern operating systems employ virtual memory based on paging (Q: can you determine the macOS or Linux page size?).

 


CITS2002 Systems Programming, Lecture 14, p4, 12th September 2023.