Unit 6: Real Memory organization management Operating Systems Operating Systems Unit 6: Real Memory organization management
COP 5994 - Operating Systems Memory Hierarchy COP 5994 - Operating Systems
Memory Management Strategies Allocation Single or multiple processes Fixed or variable Fetch Demand or anticipatory Decides which piece of data to load next Placement Decides where in main memory to place incoming data Replacement Decides which data to remove from main memory to make more space COP 5994 - Operating Systems
COP 5994 - Operating Systems Memory Allocation Contiguous allocation single block of contiguous addresses hard/impossible to find a large enough block low overhead Noncontiguous allocation address space divided into segments each segment can be placed in different location easier to find “holes” in which a segment will fit more processes can run simultaneously offsets the overhead incurred by this technique COP 5994 - Operating Systems
Single Process: Contiguous Memory Allocation COP 5994 - Operating Systems
Single Process : Overlays COP 5994 - Operating Systems
Single Process: Memory Protection COP 5994 - Operating Systems
Multi Process: Fixed-Partition Allocation Fixed-partition multiprogramming Each active process receives a fixed-size block of memory Processor rapidly switches between each process Security becomes important COP 5994 - Operating Systems
Multi Process: Fixed-Partition Allocation COP 5994 - Operating Systems
Multi Process: Fixed-Partition Allocation with address translation COP 5994 - Operating Systems
Multi Process: Fixed-Partition Protection COP 5994 - Operating Systems
Multi Process: Fixed-Partition Drawbacks Internal fragmentation Process does not take up entire partition, wasting memory Process can be too big to fit anywhere Variable partitions designed as replacement COP 5994 - Operating Systems
Multi Process: Variable-Partition Allocation COP 5994 - Operating Systems
Variable-Partition Characteristics processes placed where they fit No space wasted initially Internal fragmentation impossible Partitions are exactly the size they need to be External fragmentation occurs when process ends Leaves holes too small for new processes Eventually no holes large enough for new processes COP 5994 - Operating Systems
Variable-Partition: memory holes COP 5994 - Operating Systems
Reduce external fragmentation Coalescing Combine adjacent free blocks into one large block Compaction Rearranges memory into one contiguous block of free space one contiguous block of occupied space Significant overhead COP 5994 - Operating Systems
COP 5994 - Operating Systems Memory coalescing COP 5994 - Operating Systems
COP 5994 - Operating Systems Memory compaction COP 5994 - Operating Systems
Memory Placement Strategies Where to put incoming processes First-fit strategy Process placed in first hole of sufficient size found Simple, low execution-time overhead Best-fit strategy Process placed in hole that leaves least unused space More execution-time overhead Worst-fit strategy Process placed in hole that leaves most unused space remaining large hole may be used by another process COP 5994 - Operating Systems
Memory Placement: first fit COP 5994 - Operating Systems
Memory Placement: best fit COP 5994 - Operating Systems
Memory Placement: worst fit COP 5994 - Operating Systems
Multi process with Memory Swapping remove inactive processes from memory only running process is in main memory others temporarily moved to secondary storage maximizes available memory significant overhead when switching processes COP 5994 - Operating Systems
Multi process with Memory Swapping COP 5994 - Operating Systems
Multi process with Memory Swapping Idea: keep several processes in memory Less available memory per process Much faster response times Similar to paging COP 5994 - Operating Systems
Evolution of memory organization COP 5994 - Operating Systems
COP 5994 - Operating Systems Agenda for next week: Midterm exam ! In 2 weeks: Chapter 10 & 11: Virtual Memory Read ahead ! COP 5994 - Operating Systems