This document discusses virtual memory and cache memory. It defines virtual memory as a technique that allows programs to behave as if they have contiguous memory even if the actual physical memory is fragmented. It also describes how virtual memory provides each process with its own address space and hides fragmentation. The document also defines cache memory as a small, fast memory located close to the CPU that stores frequently accessed instructions and data to improve performance. It describes levels 1 and 2 caches and how they work with memory and disk caches.