Presentation is loading. Please wait.

Presentation is loading. Please wait.

Memory Management. Memory Manager Requirements –Minimize executable memory access time –Maximize executable memory size –Executable memory must be cost-effective.

Similar presentations


Presentation on theme: "Memory Management. Memory Manager Requirements –Minimize executable memory access time –Maximize executable memory size –Executable memory must be cost-effective."— Presentation transcript:

1 Memory Management

2 Memory Manager Requirements –Minimize executable memory access time –Maximize executable memory size –Executable memory must be cost-effective Today’s memory manager: –Allocates primary memory to processes –Maps process address space to primary memory –Minimizes access time using cost-effective memory configuration –May use static or dynamic techniques

3 Address Space vs Primary Memory Mapped to object other than memory Process Address Space Hardware Primary Memory

4 Building the Address Space Source code Source code Compile time: Translate elements Load time: Allocate primary memory Adjust addresses in address space Copy address space from secondary to primary memory Loader Process address space Primary memory C Reloc Object code Reloc Object code Link Edit Link Edit Library code Library code Other objects Other objects Secondary memory Link time: Combine elements

5 Primary & Secondary Memory CPU Primary Memory (Executable Memory) e.g. RAM Secondary Memory e.g. Disk or Tape CPU can load/store Ctl Unit executes code from this memory Transient storage Access using I/O operations Persistent storage Load Information can be loaded statically or dynamically

6 Static Memory Allocation Operating System Process 3 Process 0 Process 2 Process 1 Unused In Use Issue: Need a mechanism/policy for loading p i ’s address space into primary memory pipi

7 Fixed-Partition Memory Mechanism Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi p i needs n i units nini

8 Fixed-Partition Memory -- Best-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi Internal Fragmentation Loader must adjust every address in the absolute module when placed in memory

9 Fixed-Partition Memory -- Worst-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi

10 Fixed-Partition Memory -- First-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi

11 Fixed-Partition Memory -- Next-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi P i+1

12 Variable Partition Memory Mechanism Operating System Operating System Process 0 Process 6 Process 2 Process 5 Process 4 Compaction moves program in memory Operating System Process 0 Process 6 Process 2 Process 5 Process 4 External fragmentation Operating System Process 0 Process 1 Process 2 Process 3 Process 4 Loader adjusts every address in every absolute module when placed in memory

13 Cost of Moving Programs load R1, 0x F Program loaded at 0x F Program loaded at 0x04000 Must run loader over program again! Consider dynamic techniques

14 Dynamic Memory Allocation Could use dynamically allocated memory Process wants to change the size of its address space –Smaller  Creates an external fragment –Larger  May have to move/relocate the program Allocate “holes” in memory according to –Best- /Worst- / First- /Next-fit

15 Special Case: Swapping Special case of dynamic memory allocation Suppose there is high demand for executable memory Equitable policy might be to time-multiplex processes into the memory (also space-mux) Means that process can have its address space unloaded when it still needs memory –Usually only happens when it is blocked

16 Dynamic Address Relocation CPU 0x x MAR load R1, 0x x12010 Program loaded at 0x10000  Relocation Register = 0x10000 Program loaded at 0x04000  Relocation Register = 0x04000 Relocation Register Relative Address We never have to change the load module addresses!

17 Runtime Bound Checking CPU Relative Address Relocation Register + MAR Limit Register <  Interrupt Bound checking is inexpensive to add Provides excellent memory protection

18 Memory Hierarchies – Dynamic Loading CPU Registers “Main” Memory Rotating Magnetic Memory Optical Memory Sequentially Accessed Memory L1 Cache Memory L2 Cache Memory Secondary Primary (Executable) Larger storage Faster access

19 Exploiting the Hierarchy Upward moves are (usually) copy operations –Require allocation in upper memory –Image exists in both higher & lower memories Updates are first applied to upper memory Downward move is (usually) destructive –Destroy image in upper memory –Update image in lower memory Place frequently-used info high, infrequently-used info low in the hierarchy Reconfigure as process changes phases

20 Memory Mgmt Strategies Fixed-Partition used only in batch systems Variable-Partition used everywhere (except in virtual memory) Swapping systems –Popularized in timesharing –Relies on dynamic address relocation –Now dated Dynamic Loading (Virtual Memory) –Exploit the memory hierarchy –Paging -- mainstream in contemporary systems –Segmentation -- the future

21 NT Memory-mapped Files Memory mapped files Memory mapped files Executable memory Secondary memory Ordinary file Open the file Create a section object (that maps file) Identify point in address space to place the file Section object


Download ppt "Memory Management. Memory Manager Requirements –Minimize executable memory access time –Maximize executable memory size –Executable memory must be cost-effective."

Similar presentations


Ads by Google