M10: Memory Management Architecture Flashcards
Virtual memory
virtual memory is the memory that is allocated to a process for storing its in-memory state. It is considered “virtual” because at creation, it is not yet mapped
into physical memory locations. Virtual memory is broken down into the code, data, stack, and heap segments, creating a standardized memory representation between all processes. Virtual memory offers the OS a complete separation of logical and physical addresses
Segmentation
divides the address space into variable sized segments or logical addressable units. These include the code, stack, heap, and data segments.
Virtual memory page
a contiguous block of virtual memory addresses of a fixed range, which is the same as page frames. A page is the smallest unit of addressability to virtual
memory available to the OS for memory management. Pages will not contain addresses from different segments of virtual memory.
Page frames:
a contiguous block of physical memory addresses of a fixed range, which is the same as the size of virtual memory pages. Virtual memory pages swapped into
main memory from storage are mapped to page frames.
Paging:
Paging is the technique by which the OS swaps in various virtual memory
pages as they are needed as virtual memory is typically much larger than physical
memory.
Memory Management Unit (MMU)
translates virtual addresses to physical addresses.
Divides the virtual address space into pages.
Disk controller :
enables the CPU to communicate with the disk storage
Swap file:
space in the hard disk that operates as an extension of the RAM for portions of the process virtual memory that do not fit in RAM. Pages can be stored in the swap
file to create room for other processes to execute in RAM
Page table:
table exists for each process to map from a page number to page frame
Validity bit:
stored in the page table; 1 if a page is in memory and 0 if it is not
Protection bit:
stored in the page table; set to read, write, or execute depending on the segment
Reference bit:
stored in the page table; allows us to detect pages that are frequently used by setting this bit to 1 when a page is accessed
Modified (“dirty”) bit :
stored in the page table; set to 1 if a page has been
written to and 0 otherwise (on pure reads)
Multi-level paging:
divide up the virtual addresses such that the highest order group indexes into a top level page table, the second highest order group indexes into the next
level page table, and so on. When looking up in a multi-level page table, the corresponding bits of the page number are used to index into each level until we get to the page table of interest. This strategy is used because virtual memory is often larger than physical memory and each process has its own page table, thus the total amount of memory required to store page tables needs to be managed.
Transaction lookaside buffer (TLB):
small cache maintained within the MMU hardware
to lookup pages before we go to main memory to retrieve the page table. The TLB is associative memory.