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

Slides:



Advertisements
Similar presentations
Part IV: Memory Management
Advertisements

Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11.
11 Memory Management The External View of the Memory Manager Hardware Application Program Application Program File MgrDevice MgrMemory Mgr Process Mgr.
CS 31003: Compilers ANIRUDDHA GUPTA 11CS10004 G2 CLASS DATE : 24/07/2013.
Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11.
Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter Memory Management.
Memory Management Chapter 7.
Memory Management Chapter 7. Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as.
Chapter 7 Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Dave Bremer Otago Polytechnic, N.Z. ©2009, Prentice.
CS 311 – Lecture 21 Outline Memory management in UNIX
Memory Management. Managing Memory … The Simplest Case The O/S User Program 0 0xFFF … * Early PCs and Mainframes * Embedded Systems One user program at.
1 CSE 380 Computer Operating Systems Instructor: Insup Lee University of Pennsylvania, Fall 2002 Lecture Note: Memory Management.
Memory Management Chapter 7. Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as.
Multiprocessing Memory Management
Memory Management CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
Memory Management Chapter 7 B.Ramamurthy. Memory Management Subdividing memory to accommodate multiple processes Memory needs to allocated efficiently.
Memory Management 2010.
Memory Management Chapter 5.
MEMORY MANAGEMENT By KUNAL KADAKIA RISHIT SHAH. Memory Memory is a large array of words or bytes, each with its own address. It is a repository of quickly.
Silberschatz, Galvin and Gagne  Operating System Concepts Multistep Processing of a User Program User programs go through several steps before.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 9 – Real Memory Organization and Management Outline 9.1 Introduction 9.2Memory Organization.
03/05/2008CSCI 315 Operating Systems Design1 Memory Management Notice: The slides for this lecture have been largely based on those accompanying the textbook.
1 Lecture 8: Memory Mangement Operating System I Spring 2008.
Chapter 91 Memory Management Chapter 9   Review of process from source to executable (linking, loading, addressing)   General discussion of memory.
Tutorial 6 Memory Management
Tutorial 7 Memory Management presented by: Antonio Maiorano Paul Di Marco.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 8: Main Memory.
Swapping and Contiguous Memory Allocation. Multistep Processing of a User Program User programs go through several steps before being run. Program components.
Memory Management. Process must be loaded into memory before being executed. Memory needs to be allocated to ensure a reasonable supply of ready processes.
1. Memory Manager 2 Memory Management In an environment that supports dynamic memory allocation, the memory manager must keep a record of the usage of.
Memory Management.
CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11: :30 AM.
Operating Systems Memory management. Memory Management List of Topics 1. Memory Management 2. Memory In Systems Design 3. Binding Times 4. Introduction.
Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.
CIS250 OPERATING SYSTEMS Memory Management Since we share memory, we need to manage it Memory manager only sees the address A program counter value indicates.
Memory Management. Roadmap Basic requirements of Memory Management Memory Partitioning Basic blocks of memory management –Paging –Segmentation.
Silberschatz and Galvin  Operating System Concepts Module 8: Memory Management Background Logical versus Physical Address Space Swapping Contiguous.
Memory. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation.
Memory Management Operating Systems CS550. Memory Manager Memory manager - manages allocation and de-allocation of main memory Plays significant impact.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Main Memory. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The.
1 CSCI/CMPE 4334 Operating Systems Review: Final Exam.
CS6502 Operating Systems - Dr. J. Garrido Memory Management – Part 1 Class Will Start Momentarily… Lecture 8b CS6502 Operating Systems Dr. Jose M. Garrido.
NETW3005 Memory Management. Reading For this lecture, you should have read Chapter 8 (Sections 1-6). NETW3005 (Operating Systems) Lecture 07 – Memory.
CSCI 6307 Foundation of Systems Review: Final Exam Xiang Lian The University of Texas – Pan American Edinburg, TX 78539
Memory Management Chapter 5 Advanced Operating System.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 9 – Real Memory Organization and Management Outline 9.1 Introduction 9.2Memory Organization.
Slide 11-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 11.
2010INT Operating Systems, School of Information Technology, Griffith University – Gold Coast Copyright © William Stallings /2 Memory Management.
COMP 3500 Introduction to Operating Systems Memory Management: Part 1 Dr. Xiao Qin Auburn University Slides.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 8: Main Memory.
Main Memory CSSE 332 Operating Systems Rose-Hulman Institute of Technology.
Chapter 8: Main Memory.
Main Memory Management
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
Memory Management 11/17/2018 A. Berrached:CS4315:UHD.
MEMORY MANAGEMENT & their issues
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 8 11/24/2018.
Multistep Processing of a User Program
Memory management Igor Radovanović.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 9 12/1/2018.
Main Memory Background Swapping Contiguous Allocation Paging
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 9 4/5/2019.
OPERATING SYSTEMS MEMORY MANAGEMENT BY DR.V.R.ELANGOVAN.
Page Main Memory.
Presentation transcript:

Memory Management

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

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

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

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

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

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-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

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

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

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

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

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

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

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

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!

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

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

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

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

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