Presentation is loading. Please wait.

Presentation is loading. Please wait.

Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 11 Memory Management.

Similar presentations


Presentation on theme: "Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 11 Memory Management."— Presentation transcript:

1 Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 11 Memory Management

2 Slide 11-2 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 The External View of the Memory Manager Hardware Application Program Application Program File MgrDevice MgrMemory Mgr Process Mgr UNIX File MgrDevice MgrMemory Mgr Process Mgr Windows VMQuery() VirtualFree() VirtualLock() ZeroMemory() VirtualAlloc() sbrk() exec() getrlimit() shmalloc()

3 Slide 11-3 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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

4 Slide 11-4 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Storage Hierarchies Less Frequently Used Information More Frequently Used Information

5 Slide 11-5 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 The Basic Memory Hierarchy CPU Registers Primary Memory (Executable Memory) e.g. RAM Secondary Memory e.g. Disk or Tape More Frequently Used Information Less Frequently Used Information

6 Slide 11-6 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Creating an Executable Program 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

7 Slide 11-7 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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

8 Slide 11-8 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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 (Fixed-size regions)

9 Slide 11-9 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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 Smallest hole left wasteful Smallest unallocated

10 Slide 11-10 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Fixed-Partition Memory Worst-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi Largest unallocated Largest hole left available

11 Slide 11-11 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Fixed-Partition Memory First-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi (First unallocated)Start from the beginning

12 Slide 11-12 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Fixed-Partition Memory Next-Fit Operating System Region 3 Region 2 Region 1 Region 0N0N0 N1N1 N2N2 N3N3 pipi P i+1 (Next first) Start from the present

13 Slide 11-13 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Variable Partition Memory 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 (Squeeze bubble/hole)

14 Slide 11-14 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 C-Style Memory Layout Text Segment Initialized Part Data Segment Initialized Part Data Segment Uninitialized Part Data Segment Uninitialized Part Data Segment Heap Storage Stack Segment Environment Variables, … Environment Variables, … No moving but stretching

15 Slide 11-15 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Program and Process Address Spaces Absolute Program Address Space 0 4GB 3GB Process Address Space Supervisor Process Address Space User Process Address Space Primary Memory

16 Slide 11-16 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Multiprogramming Memory Support Operating System Process 1 Process 3 Process 0 Process 1 Unused In Use 0 A B C D E F G H R0R0 R1R1 R2R2 R3R3 R4R4

17 Slide 11-17 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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

18 Slide 11-18 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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

19 Slide 11-19 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Moving an Executable Image Executable Program Executable Program Loader Executable Image Executable Image Executable Image Executable Image 02000 06000

20 Slide 11-20 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Dynamic Address Relocation CPU 0x02010 0x10000 + MAR load R1, 0x02010 0x12010 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!

21 Slide 11-21 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Multiple Segment Relocation Registers CPU Relative Address Code Register + MAR 0x12010 Stack Register Data Register

22 Slide 11-22 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Runtime Bound Checking CPU Relative Address Relocation Register + MAR Limit Register <  Interrupt Bound checking is inexpensive to add Provides excellent memory protection

23 Slide 11-23 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 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

24 Slide 11-24 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Swapping Image for p j Image for p i Swap p i out Swap p j in

25 Slide 11-25 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Sharing a Portion of the Address Space Process 1 Process 2 Address Space for Process 2 Address Space for Process 1 Primary Memory

26 Slide 11-26 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 Figure 11 ‑ 26: Multiple Segments Relocation Limit Relocation Limit CPU Executing Process 1 CPU Executing Process 2 Primary Memory Shared Private to Process 1 Private to Process 2


Download ppt "Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11 11 Memory Management."

Similar presentations


Ads by Google