html5-img
1 / 40

Memory Management

Memory Management. 11. VirtualAlloc(). exec(). VMQuery(). shmalloc(). VirtualFree(). sbrk(). VirtualLock(). getrlimit(). ZeroMemory(). The External View of the Memory Manager. Application Program. File Mgr. Device Mgr. Memory Mgr. File Mgr. Device Mgr. Memory Mgr. Process Mgr.

effie
Download Presentation

Memory Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating Systems: A Modern Perspective, Chapter 11

  2. MemoryManagement 11 Operating Systems: A Modern Perspective, Chapter 11

  3. VirtualAlloc() exec() VMQuery() shmalloc() VirtualFree() sbrk() VirtualLock() getrlimit() ZeroMemory() The External View of the Memory Manager Application Program File Mgr Device Mgr Memory Mgr File Mgr Device Mgr Memory Mgr Process Mgr Process Mgr UNIX Windows Hardware Operating Systems: A Modern Perspective, Chapter 11

  4. 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 Operating Systems: A Modern Perspective, Chapter 11

  5. Storage Hierarchies Less Frequently Used Information More Frequently Used Information Operating Systems: A Modern Perspective, Chapter 11

  6. The Basic Memory Hierarchy CPU Registers Less Frequently Used Information Primary Memory (Executable Memory) e.g. RAM More Frequently Used Information Secondary Memory e.g. Disk or Tape Operating Systems: A Modern Perspective, Chapter 11

  7. Contemporary Memory Hierarchy &Dynamic Loading CPU Registers Primary (Executable) L1 Cache Memory L2 Cache Memory “Main” Memory Larger storage Rotating Magnetic Memory Faster access Optical Memory Secondary Sequentially Accessed Memory Operating Systems: A Modern Perspective, Chapter 11

  8. 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 Operating Systems: A Modern Perspective, Chapter 11

  9. Background Operating Systems: A Modern Perspective, Chapter 11

  10. Binding of instructions and Data to Memory Operating Systems: A Modern Perspective, Chapter 11

  11. Address Binding CNTD • Source program references data and instructions using identifiers (e.g. variable names etc.) • Compiler translates source program into object module. • A collection of object modules is combined using a link editor to produce an absolute module. • Can compiler/linker generate physical addresses? • Actual physical addresses are not known yet. Why Not? • Link editor produce re-locatable code: all addresses are relative to memory address 0 ==> compile-time binding Operating Systems: A Modern Perspective, Chapter 11

  12. Address Binding CNTD • When module is loaded in memory for executionthe loader, knowing where module is to be loaded in memory, can set the addresses at load time to produce the executable image of the module with physical addresses ==> load time binding • What if module is swapped out of memory? • Dynamic Binding: binding is delayed until execution time. At load time, each identifier is associated a relative address. Physical address is computed at execution time by hardware . Operating Systems: A Modern Perspective, Chapter 11

  13. Address Space vs Primary Memory Hardware Primary Memory Process Address Space Mapped to object other than memory Operating Systems: A Modern Perspective, Chapter 11

  14. Library code Other objects Secondary memory Link Edit Primary memory Loader Process address space • Link time: Combine elements • Load time: • Allocate primary memory • Adjust addresses in address space • Copy address space from secondary to primary memory Creating an Executable Program Source code C Reloc Object code • Compile time: Translate elements Operating Systems: A Modern Perspective, Chapter 11

  15. A Sample Code Segment ... static int gVar; ... int proc_a(int arg){ ... gVar = 7; put_record(gVar); ... } Operating Systems: A Modern Perspective, Chapter 11

  16. The Relocatable Object module Code Segment RelativeAddress Generated Code 0000 ... ... 0008 entry proc_a ... 0220 load =7, R1 0224 store R1, 0036 0228 push 0036 0232 call ‘put_record’ ... 0400 External reference table ... 0404 ‘put_record’ 0232 ... 0500 External definition table ... 0540 ‘proc_a’ 0008 ... 0600 (symbol table) ... 0799 (last location in the code segment) Data Segment RelativeAddress Generated variable space ... 0036 [Space for gVar variable] ... 0049 (last location in the data segment) Operating Systems: A Modern Perspective, Chapter 11

  17. The Absolute Program Code Segment RelativeAddress Generated Code 0000 (Other modules) ... 1008 entry proc_a ... 1220 load =7, R1 1224 store R1, 0136 1228 push 1036 1232 call 2334 ... 1399 (End of proc_a) ... (Other modules) 2334 entry put_record ... 2670 (optional symbol table) ... 2999 (last location in the code segment) Data Segment RelativeAddress Generated variable space ... 0136 [Space for gVar variable] ... 1000 (last location in the data segment) Operating Systems: A Modern Perspective, Chapter 11

  18. The Program Loaded at Location 4000 Relative Address Generated Code 0000 (Other process’s programs) 4000 (Other modules) ... 5008 entry proc_a ... 5036 [Space for gVar variable] ... 5220 load =7, R1 5224 store R1, 7136 5228 push 5036 5232 call 6334 ... 5399 (End of proc_a) ... (Other modules) 6334 entry put_record ... 6670 (optional symbol table) ... 6999 (last location in the code segment) 7000 (first location in the data segment) ... 7136 [Space for gVar variable] ... 8000 (Other process’s programs) Operating Systems: A Modern Perspective, Chapter 11

  19. C-Style Memory Layout Text Segment Initialized Part Data Segment Uninitialized Part Data Segment Heap Storage Stack Segment Environment Variables, … Operating Systems: A Modern Perspective, Chapter 11

  20. Program and Process Address Spaces Process Address Space Primary Memory Absolute Program Address Space 0 User Process Address Space Supervisor Process Address Space 3GB 4GB Operating Systems: A Modern Perspective, Chapter 11

  21. Multiprogramming Memory Support 0 Operating System R0 Unused A In Use B Process 1 R1 C Process 3 R2 D E Process 0 R3 F G Process 1 R4 H Operating Systems: A Modern Perspective, Chapter 11

  22. Static Memory Allocation Operating System Unused In Use Process 3 Process 0 pi Process 2 Issue: Need a mechanism/policy for loading pi’s address space into primary memory Process 1 Operating Systems: A Modern Perspective, Chapter 11

  23. Fixed-Partition Memory Mechanism Operating System pi needs ni units Region 0 N0 pi ni Region 1 N1 N2 Region 2 Region 3 N3 Operating Systems: A Modern Perspective, Chapter 11

  24. Fixed-Partition MemoryBest-Fit Operating System • Loader must adjust every address in the absolute module when placed in memory Region 0 N0 Region 1 N1 Internal Fragmentation pi N2 Region 2 Region 3 N3 Operating Systems: A Modern Perspective, Chapter 11

  25. Fixed-Partition MemoryWorst-Fit Operating System pi Region 0 N0 Region 1 N1 N2 Region 2 Region 3 N3 Operating Systems: A Modern Perspective, Chapter 11

  26. Fixed-Partition MemoryFirst-Fit Operating System pi Region 0 N0 Region 1 N1 N2 Region 2 Region 3 N3 Operating Systems: A Modern Perspective, Chapter 11

  27. Fixed-Partition MemoryNext-Fit Operating System Region 0 N0 pi Region 1 N1 Pi+1 N2 Region 2 Region 3 N3 Operating Systems: A Modern Perspective, Chapter 11

  28. Operating System Operating System Operating System Process 0 Process 0 Process 0 Process 1 Process 6 Process 6 Process 2 Process 2 Process 2 Process 5 Process 3 Process 5 Process 4 Process 4 Process 4 • External fragmentation Loader adjusts every address in every absolute module when placed in memory • Compaction moves program in memory Variable Partition Memory Operating System Operating Systems: A Modern Perspective, Chapter 11

  29. 3F016010 Program loaded at 0x04000 • Must run loader over program again! Cost of Moving Programs load R1, 0x02010 3F013010 Program loaded at 0x01000 Consider dynamic techniques Operating Systems: A Modern Perspective, Chapter 11

  30. Moving an Executable Image 02000 Executable Image Executable Program Loader 06000 Executable Image Loader Operating Systems: A Modern Perspective, Chapter 11

  31. 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 Operating Systems: A Modern Perspective, Chapter 11

  32. Dynamic Address Binding • All addresses to data and instructions are made relative to beginning of the module i.e. as if process address space starts at physical address 0. • Hardware provides a base register (also called a relocation register). • When process is switched to CPU the base register is loaded with the initial address of the module. • At run time: Operating Systems: A Modern Perspective, Chapter 11

  33. + Dynamic Address Relocation CPU Relative Address 0x02010 0x12010 Relocation Register 0x10000 load R1, 0x02010 MAR • Program loaded at 0x10000  Relocation Register = 0x10000 • Program loaded at 0x04000  Relocation Register = 0x04000 We never have to change the load module addresses! Operating Systems: A Modern Perspective, Chapter 11

  34. + Multiple Segment Relocation Registers CPU Relative Address 0x12010 Code Register Stack Register MAR Data Register Operating Systems: A Modern Perspective, Chapter 11

  35. +  Runtime Bound Checking CPU Relative Address Relocation Register < Limit Register • Bound checking is inexpensive to add • Provides excellent memory protection MAR Interrupt Operating Systems: A Modern Perspective, Chapter 11

  36. 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 Operating Systems: A Modern Perspective, Chapter 11

  37. Swapping Image for pi Swap pi out Swap pj in Image for pj Operating Systems: A Modern Perspective, Chapter 11

  38. Sharing a Portion of the Address Space Address Space for Process 1 Process 1 Process 2 Primary Memory Address Space for Process 2 Operating Systems: A Modern Perspective, Chapter 11

  39. Figure 11‑26: Multiple Segments CPU Executing Process 1 Private to Process 1 Limit Relocation Limit Relocation Shared CPU Executing Process 2 Private to Process 2 Limit Relocation Limit Relocation Primary Memory Operating Systems: A Modern Perspective, Chapter 11

  40. 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 Operating Systems: A Modern Perspective, Chapter 11

More Related