"Memory management is a form of resource management applied to computer memory."
The techniques used to manage cache and memory, including caching algorithms, page replacement policies, and memory allocation strategies.
Basic concepts: :.
Memory hierarchy: :.
Cache types: :.
Cache coherence: :.
Paging: :.
Thrashing: :.
Memory mapping: :.
DMA: :.
Direct-mapped cache: A type of cache memory in which each main memory location is mapped to a unique cache memory location with no overlapping.
Associative cache: A type of cache memory in which each main memory location can be mapped to multiple cache memory locations.
Set-associative cache: A type of cache memory that combines the direct-mapped and associative cache concepts. Each main memory location can be mapped to a select set of cache locations.
Victim cache: A cache memory that temporarily stores data that has been recently evicted from the main memory cache.
Inclusive cache: A type of cache memory in which all data in the lower-level cache is also present in the higher level.
Exclusive cache: A type of cache memory in which the lower-level cache does not contain data present in the higher level.
Write-back cache: A cache memory that modifies the contents of the cache and updates the main memory at a later time.
Write-through cache: A cache memory that modifies the contents of the cache and updates the main memory simultaneously.
Write-allocate cache: A type of cache memory that fetches data from the main memory into the cache before writing to it.
No-write-allocate cache: A type of cache memory that writes to the main memory without first fetching the data to the cache.
Paging: A memory management technique that divides physical memory into fixed-size pages and virtual memory space into the same-sized frames.
Segmentation: A memory management approach that divides a process into segments of varying sizes instead of pages.
Demand Paging: It is a memory management scheme, in which pages needed by a process are only brought in memory, and not pre-loaded.
Swap Space: A reserved area on the disk where the system can temporarily store inactive pages.
Paging with page table: A method of mapping virtual memory to physical memory, which uses a page table.
Page Replacement Algorithms: A set of algorithms implemented for deciding which page to remove from memory when there is not enough space. Examples are LRU, FIFO, and OPT.
Memory Mapping: Mapping of virtual memory space with the physical memory space so that each process only accesses their designated memory.
Buddy system: An algorithm which divides the memory into partitions that are powers of 2, where the allocation is done with the nodes of a binary tree.
Copy-on-write: A mechanism in which a resource is not duplicated until a write actually occurs to protect and better utilize the physical memory.
"The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when no longer needed."
"This is critical to any advanced computer system where more than a single process might be underway at any time."
"Virtual memory systems separate the memory addresses used by a process from actual physical addresses, allowing separation of processes and increasing the size of the virtual address space beyond the available amount of RAM using paging or swapping to secondary storage."
"The quality of the virtual memory manager can have an extensive effect on overall system performance."
"In some operating systems, e.g. OS/360 and successors, memory is managed by the operating system."
"In other operating systems, e.g. Unix-like operating systems, memory is managed at the application level."
"Memory management within an address space is generally categorized as either manual memory management or automatic memory management."