The virtual memory subsystem and the storage subsystem are typically tightly coupled and requires careful
design in a layered system due to the following interactions. Many systems allow files to be mapped into the
virtual memory space of an executing process. On the other hand, the virtual memory subsystem typically
uses the storage system to provide the backing store for pages that do not currently reside in memory. Also,
updates to the file system are sometimes buffered in physical memory before it is flushed to disk, thereby
requiring careful coordination of the usage of memory between the virtual memory subsystem and the file
system.