Memory Management Duties. Overview of Presentation. (User View: code segments) User View: address space

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Memory Management Duties. Overview of Presentation. (User View: code segments) User View: address space"

Transcription

1 Overview of Presentation responsibilities of a memory manager user view of memory management memory management strategies, algorithms fixed partitions, variable partitions algorithms, fragmentation, coalescing swapping and the relocation problem material adequately covered by the text dynamic address relocation, swapping memory management 3/5/03-1 Memory Management Duties allocate/assign memory to processes explicit requests: malloc implicit: program loading, stack extension map in and out of process address space when allocated, with each context switch manage migration to/from 2 nd ary storage optimize use of main storage minimize overhead (waste, migrations) memory management 3/5/03-2 User View: address space Code segment Data segment Hole Stack segment 0x xFFFFFFFF DLL DLL DLL ALL of these segments appear to be present whenever process runs memory management 3/5/03-3 (User View: code segments) program code allocated when program loaded initialized with contents of load module Dynamically Loadable Libraries automatically mapped in whenever needed somehow shared by multiple processes all are read-only and fixed size memory management 3/5/03-4

2 (User View: data segments) initialized data allocated when program loaded initialized from load module expansion/contraction of data segment requested via system calls (e.g. sbrk) only added/truncated part is affected process stack allocated and grown automatically memory management 3/5/03-5 Implementing: code segments program loader ask for memory (size and virtual location) copy code from load module into memory run-time loader request DLL be mapped (location and size) edit linkage pointers from program to DLL memory manager allocates memory, maps into process memory management 3/5/03-6 Implementing: data segments program loader ask for memory (location and size) copy data from load module into memory zero the BSS memory manager invoked for allocations and stack extensions allocates and deallocates memory adjusts process address space accordingly memory management 3/5/03-7 Memory Allocation Strategies fixed partitions pre-allocate partitions for N processes each process assigned to one partition variable allocation one massive "heap" of memory divided among processes based on their needs paged allocation... and in that moment he became enlightened memory management 3/5/03-8

3 Fixed Partition Memory Allocation very easy to implement common in old batch processing systems well suited to well-known job mix presumes largest possible process size must reconfigure system for larger processes likely to use memory inefficiently large internal fragmentation losses swapping results in convoys on partitions memory management 3/5/03-9 Internal Fragmentation partition 1 8mb waste 2mb proc 1 6mb partition 2 4mb waste 1mb proc 2 3mb partition 3 4mb waste 3mb proc 3 1mb total waste = = 6/16Mb = 37% memory management 3/5/03-10 (Internal Fragmentation) wasted space in fixed sized blocks caused by a mis-match between the chosen sizes of a fixed-sized blocks the actual sizes that programs request average waste: 50% of each block overall waste reduced by multiple sizes Frequency of allocation requests frequency suppose blocks come in sizes S 1 and S 2 average waste = ((S 1 /2) + (S 2 - S 1 )/2)/2 memory management 3/5/ size of request memory management 3/5/03-12

4 (distribution of allocation requests) fixed partition allocation revisited internal fragmentation in fixed partition allocation resulted from random requests but are memory allocations really random? if we know what the popular sizes are create/reserve special pools of fixed size buffers satisfy matching requests from those pools there are peaks in the frequency v.s. size curve, some sizes are used and reused very often many services use fixed size transient buffers benefit: improved efficiency much simpler than variable partition allocation reduces external fragmentation of heap OS: terminal I/O, network packets, disk blocks,... but... we must know how much to reserve applications: messages, request descriptors,... too little -> contention, too much -> wasted space memory management 3/5/03-13 memory management 3/5/03-14 fixed partition bit-map free list Variable Memory Allocation free partition bit map (one bit per partition) start with one large "heap" of memory when a process requests more memory find a large enough chunk of memory carve off a piece of the requested size partn 1 in use partn 2 free partn 3 free partn 4 in use actual memory partitions partn 5 in use a bit-map is a very simple and compact way to keep track of which partitions are free and in use memory management 3/5/03-15 put the remainder back on the free list when a process frees memory put it back on the free list eliminates internal fragmentation losses memory management 3/5/03-16

5 External Fragmentation P 0 P 0 P 0 P 5 P 1 P 3 P 3 P 3 P 2 P 2 P 2 P 2 P 4 P 4 memory management 3/5/03-17 (External/Global Fragmentation) each allocation creates left-overs over time they become smaller and smaller the small left-over fragments are useless they are too small to satisfy any request a second form of fragmentation waste solutions: try not to create tiny fragments try to recombine fragments into big chunks memory management 3/5/03-18 head variable partition free list free free free Each chunk begins with a header: size of chunk, pointer to next chunk, other optional diagnostic information List might contain only free chunks, or all chunks memory management 3/5/03-19 (Free lists: keeping track of it all) fixed sized blocks are easy to track a bit map indicating which blocks are free variable allocation requires more information a linked list of descriptors, one per chunk each lists size of chunk, whether it is free each has pointer to next chunk on list descriptors often at front of each chunk allocated memory often has descriptors too memory management 3/5/03-20

6 Which chunk: best fit Which chunk: worst fit search for the "best fit" chunk search for the "worst fit" chunk smallest size greater/equal to requested size largest size greater/equal to requested size advantages: advantages: might find a perfect fit tends to create very large fragments disadvantages: disadvantages: have to search entire list every time still have to search entire list every time quickly creates very small fragments memory management 3/5/03-21 memory management 3/5/03-22 Which chunk: first fit take first chunk that is big enough advantages: very short searches creates random sized fragments disadvantages: the first chunks quickly fragment searches become longer ultimately it fragments as badly as best fit memory management 3/5/03-23 head Which chunk: next fit guess free free free after search, leave guess pointing to next free chunk next search starts where previous search left off when guess reaches end of list, wrap back to start memory management 3/5/03-24

7 (next-fit... guess pointers) Coalescing de-fragmentation the best of both worlds all VP algorithms have external fragmentation short searches (maybe shorter than first fit) some do it faster, some spread them out spreads out fragmentation (like worst fit) we need a way to reassemble fragments guess pointers are a general technique check neighbors when ever a chunk is freed think of them as a lazy (non-coherent) cache recombine free neighbors whenever possible if they are right, they save a lot of time free list can be designed to make this easier if they are wrong, the algorithm still works e.g. where are the neighbors of this chunk? they can be used in a wide range of problems this counters forces of external fragmentation memory management 3/5/03-25 memory management 3/5/03-26 Free list must support coalescing Coalescing vs. Fragmentation coalescing happens at free time opposing processes operate in parallel when freeing a region, check its neighbors if either neighbor is free, recombine them which of the two processes will dominate? what fraction of space is typically allocated? it must be easy to find both adjacent regions coalescing works better with more free space e.g. doubly linked list of region descriptors how fast is allocated memory turned over? other coupling between neighbors chunks held for long time cannot be coalesced (e.g. buddy system, where all regions are paired) how variable are requested chunk sizes? high variability increases fragmentation rate memory management 3/5/03-27 memory management 3/5/03-28

8 fixed vs. variable partitions memory allocation within a process fixed partition allocation use OS allocation to get memory for process internal fragmentation is inevitable e.g. sbrk system call to extend data segment multiple sizes may greatly reduce the problem variable partition allocation UNIX malloc (user mode memory allocation) variable partition, first fit-allocation more complex free lists, possible long searches go back to OS to get more if heap is empty external fragmentation evolves over time coalescing can counteract the fragmentation UNIX mfree (return memory when done) return memory to free list w/neighbor coalescing at a cost of more complexity and longer operations memory management 3/5/03-30 memory management 3/5/03-29 Diagnostic Free lists garbage collection common mistakes made w/dynamic memory memory leaks (allocate it and never free it) programmers often forget to free memory garbage collection is an alternative to freeing overruns (use more memory than you allocated) applications allocate objects, but never free them clobbers (keep on using it after you free it) free list can help to catch these problems when we run out, start garbage collection search data space finding every object pointer all chunks in list (whether allocated or free) note address/size of all accessible objects record of who last allocated each chunk compute the compliment (what is inaccessible) guard zones at beginning and end of chunks add all inaccessible memory to the free list memory management 3/5/03-31 memory management 3/5/03-32

9 enabling garbage collection What to do when coalescing loses how to find all accessible data? garbage collection is just another way to free in the general case, this is impossible ongoing activity can always starve coalescing object oriented languages often enable this chunks reallocated before they can be combined all object references are tagged we could stop accepting new allocations all object descriptors include size information convoy on memory manager destroys throughput it is often possible for system resources we need a way to rearrange active memory where all possible references are known (e.g. do any processes still owned by this user) re-pack all processes in one end of memory create one big chunk of free space at other end memory management 3/5/03-33 memory management 3/5/03-34 Memory Compaction Reasons to Relocate a Process to compact fragmented free space P 5 when a process increases its data space size P 3 swap device P 5 P 4 for example, the UNIX sbrk system call migration to and from 2 nd ary storage P 2 P 3 primary memory needed for runnable processes P 4 P 2 swap blocked processes to 2 nd ary storage memory before compaction memory after compaction memory management 3/5/03-35 swap them back-in when they become runnable the original memory may no longer be available? memory management 3/5/03-36

10 The Relocation Problem... how to move a process from memory region where it was initially loaded into a new and different region of memory all addresses in the program will be wrong references in the code segment calls and branches to other parts of the code references to variables in the data segment plus new pointers in data and stack segments memory management 3/5/03-37 The Relocation Problem... it is not feasible to re-relocate a process maybe we could re-relocate references to code if we kept the relocation information around but how can we relocate references to data pointer values may have been changed new pointers may have been created we could never find/fix all address references like the general case of garbage collection can we make processes location independent? memory management 3/5/03-38 Virtual Address Translation physical address space addresses on CPU/memory bus NNNN memory management unit virtual address space addresses seen by processes MMMM memory management 3/5/03-39 Segment Relocation computer has special relocation registers they are called segment base registers used in IBM/360, still used in Intel Pentium point to start of code, data, stack in memory code and data references are relative to these OS initializes base registers when loading program if process must be moved to a new location reset base registers to point to start of new region all code/data references are automatically relocated memory management 3/5/03-40

11 Segment Relocation base registers memory code base code data base stack base data stack physical = virtual + base Paged Memory Management divide physical memory into fixed-size pages typically 1,024, 4,096 or 8,192 bytes long divide virtual memory into same sized pages paging Memory Management Unit maps virtual page #s into physical page #s more flexible than base register relocation consecutive virtual pages need not map to consecutive physical pages memory management 3/5/03-41 memory management 3/5/03-42 Paging Address Translation Paging and Fragmentation virtual pages physical pages A code or data segment is made up of multple pages memory management unit vpage = virtual/pagesize; offset = virtual%pagesize; ppage = map(vpage); physical = (ppage * pagesize) + offset; memory management 3/5/03-43 Internal fragmentation is limited to the unused portion of the last page of the segment. If a page is 4K, the average waste is 2K. If the average segment is 200K, the expected loss due to internal fragmentation is 1%. External fragmentation is non-existent because we only allocate whole pages, we don't carve them up. memory management 3/5/03-44

12 (Paging solves many problems) internal fragmentation average of ½ page per address space segment but there are many pages per segment e.g. a 200K segment and a 4K page yields 1% loss external fragmentation non-existent: pages are never carved up finding enough contiguous memory contiguous physical memory is not required mapping can make any pages appear contiguous memory management 3/5/03-45 For the next lecture read chapter 12 there will be a quiz on this material topics for next lecture paging virtual address translation page faults and demand paging replacement algorithms and working sets segmentation and shared memory user and kernel address spaces memory management 3/5/03-46 key points key points memory manager responsibilities allocation, map-in, map-out, migration fixed partitions, internal fragmentation estimating and mitigating fragmentation variable partition, external fragmentation algorithms, performance, free-lists, coalescing special pools of fixed size buffers garbage collection what it is, why it is done, how it is done the relocation problem what it is, why it is hard how virtual address spaces solve it segment relocation, paged relocation advantages of paged allocation memory management 3/5/03-47 memory management 3/5/03-48

Memory Management. Today. Next Time. ! Basic memory management! Swapping! Kernel memory allocation. ! Virtual memory

Memory Management. Today. Next Time. ! Basic memory management! Swapping! Kernel memory allocation. ! Virtual memory Memory Management Today! Basic memory management! Swapping! Kernel memory allocation Next Time! Virtual memory Memory management! Ideal memory for a programmer Large Fast Non volatile Cheap! Nothing like

More information

Operating Systems. Memory Management. Lecture 9 Michael O Boyle

Operating Systems. Memory Management. Lecture 9 Michael O Boyle Operating Systems Memory Management Lecture 9 Michael O Boyle 1 Chapter 8: Memory Management Background Logical/Virtual Address Space vs Physical Address Space Swapping Contiguous Memory Allocation Segmentation

More information

Section I Section Real Time Systems. Processes. 1.7 Memory Management. (Textbook: A. S. Tanenbaum Modern OS - ch. 3) Memory Management Introduction

Section I Section Real Time Systems. Processes. 1.7 Memory Management. (Textbook: A. S. Tanenbaum Modern OS - ch. 3) Memory Management Introduction EE206: Software Engineering IV 1.7 Memory Management page 1 of 28 Section I Section Real Time Systems. Processes 1.7 Memory Management (Textbook: A. S. Tanenbaum Modern OS - ch. 3) Memory Management Introduction

More information

OPERATING SYSTEM - MEMORY MANAGEMENT

OPERATING SYSTEM - MEMORY MANAGEMENT OPERATING SYSTEM - MEMORY MANAGEMENT http://www.tutorialspoint.com/operating_system/os_memory_management.htm Copyright tutorialspoint.com Memory management is the functionality of an operating system which

More information

CSE 380 Computer Operating Systems. Instructor: Insup Lee. University of Pennsylvania, Fall 2002 Lecture Note: Memory Management.

CSE 380 Computer Operating Systems. Instructor: Insup Lee. University of Pennsylvania, Fall 2002 Lecture Note: Memory Management. CSE 380 Computer Operating Systems Instructor: Insup Lee University of Pennsylvania, Fall 2002 Lecture Note: Memory Management 1 Memory Management q The memory management portion of the Operating System

More information

Goals of memory management. Today s desktop and server systems. Tools of memory management. A trip down Memory Lane

Goals of memory management. Today s desktop and server systems. Tools of memory management. A trip down Memory Lane Goals of memory management CSE 451: Operating Systems Spring 212 Module 11 Memory Management Allocate memory resources among competing processes, maximizing memory utilization and system throughput Provide

More information

Main Memory. Memory. Address binding. Memory spaces. All processes need main memory.

Main Memory. Memory. Address binding. Memory spaces. All processes need main memory. Memory If we define memory as a place where data is stored there are many levels of memory: Processor registers Primary (or main) memory RAM Secondary memory slower and more permanent disks Tertiary memory

More information

Memory Management. Main memory Virtual memory

Memory Management. Main memory Virtual memory Memory Management Main memory Virtual memory Main memory Background (1) Processes need to share memory Instruction execution cycle leads to a stream of memory addresses Basic hardware CPU can only access

More information

Memory Management. Memory Management

Memory Management. Memory Management Memory Management Chapter 7 1 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable supply of ready processes to consume available processor

More information

4 Main Memory Management

4 Main Memory Management 4 Main Memory Management 4.1 Introduction A large part of the OS s responsibility is organising main memory for processes. GOAL pack as many processes into memory as possible so that the processor will

More information

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation Dynamic Storage Allocation CS 44 Operating Systems Fall 5 Presented By Vibha Prasad Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need

More information

Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()

Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic

More information

Virtual Memory & Memory Management

Virtual Memory & Memory Management CS 571 Operating Systems Virtual Memory & Memory Management Angelos Stavrou, George Mason University Memory Management 2 Logical and Physical Address Spaces Contiguous Allocation Paging Segmentation Virtual

More information

Memory Management Basics

Memory Management Basics Memory Management Basics 1 Basic Memory Management Concepts Address spaces Physical address space The address space supported by the hardware Starting at address, going to address MAX sys Logical/virtual

More information

LOGICAL AND PHYSICAL ORGANIZATION MEMORY MANAGEMENT TECHNIQUES (CONT D)

LOGICAL AND PHYSICAL ORGANIZATION MEMORY MANAGEMENT TECHNIQUES (CONT D) MEMORY MANAGEMENT Requirements: Relocation (to different memory areas) Protection (run time, usually implemented together with relocation) Sharing (and also protection) Logical organization Physical organization

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 20: Main Memory Management Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 20 1 / 29 O/S/ course overview Introduction

More information

Last Class: File System Abstraction. Protection

Last Class: File System Abstraction. Protection Last Class: File System Abstraction Naming Protection Persistence Fast access Lecture 17, page 1 Protection The OS must allow users to control sharing of their files => control access to files Grant or

More information

PROJECT REPORT MEMORY MANAGEMENT DATE :

PROJECT REPORT MEMORY MANAGEMENT DATE : PROJECT REPORT MEMORY MANAGEMENT DATE : GROUP MEMBERS: MEMORY MANAGEMENT PURPOSE: To simulate memory management of a simple system in order to better comprehend the complex memory management system of

More information

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 602

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 602 Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement

More information

CHAPTER 8 Exercises 8.1 Answer: 8.2 Answer: 8.3 Answer:

CHAPTER 8 Exercises 8.1 Answer: 8.2 Answer: 8.3 Answer: CHAPTER 8 Although many systems are demand paged (discussed in Chapter 12), there are still many that are not, and in many cases the simpler memory-management strategies may be better, especially for small

More information

Chapter 7 Memory Management

Chapter 7 Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 7 Memory Management Patricia Roy Manatee Community College, Venice, FL 2008, Prentice Hall Memory Management Subdividing

More information

Objectives and Functions

Objectives and Functions Objectives and Functions William Stallings Computer Organization and Architecture 6 th Edition Week 10 Operating System Support Convenience Making the computer easier to use Efficiency Allowing better

More information

Learning Outcomes. Memory Management

Learning Outcomes. Memory Management Learning Outcomes Memory Management Appreciate the need for memory management in operating systems, understand the limits of fixed memory allocation schemes. Understand fragmentation in dynamic memory

More information

Memory Management. In most schemes, the kernel occupies some fixed portion of main memory and the rest is shared by multiple processes

Memory Management. In most schemes, the kernel occupies some fixed portion of main memory and the rest is shared by multiple processes Memory Management Is the task carried out by the OS and hardware to accommodate multiple processes in main memory If only a few processes can be kept in main memory, then much of the time all processes

More information

Memory Management. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

Memory Management. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum Memory Management Yücel Saygın These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum 1 Memory Management Ideally programmers want memory that is large fast non volatile

More information

Last Class: File System Abstraction! Today: File System Implementation!

Last Class: File System Abstraction! Today: File System Implementation! Last Class: File System Abstraction! Lecture 19, page 1 Today: File System Implementation! Disk management Brief review of how disks work. How to organize data on to disks. Lecture 19, page 2 How Disks

More information

Lectures 21 : Memory Management (ii) Thu 19 Nov 2009

Lectures 21 : Memory Management (ii) Thu 19 Nov 2009 CS211: Programming and Operating Systems Lectures 21 : Memory Management (ii) Thu 19 Nov 2009 CS211 Lectures 21 : Memory Management (ii) 1/23 This afternoon... 1 Recall... Memory management 2 Contiguous

More information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18 PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2013-2014, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations

More information

Agenda. Memory Management. Binding of Instructions and Data to Memory. Background. CSCI 444/544 Operating Systems Fall 2008

Agenda. Memory Management. Binding of Instructions and Data to Memory. Background. CSCI 444/544 Operating Systems Fall 2008 Agenda Background Memory Management CSCI 444/544 Operating Systems Fall 2008 Address space Static vs Dynamic allocation Contiguous vs non-contiguous allocation Background Program must be brought into memory

More information

Memory management. The memory manager. Explicit deallocation. Advanced Compiler Construction Michel Schinz

Memory management. The memory manager. Explicit deallocation. Advanced Compiler Construction Michel Schinz Memory management Memory management Advanced Compiler Construction Michel Schinz 2014 04 10 The memory of a computer is a finite resource. Typical programs use a lot of memory over their lifetime, but

More information

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 02 Lecture No. # 05 Run-time Environments-Part 3 and Local Optimizations

More information

Chapter 7 Memory Management

Chapter 7 Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 7 Memory Management Dave Bremer Otago Polytechnic, N.Z. 2009, Prentice Hall Roadmap Basic requirements of Memory Management

More information

Announcement. HW#3 will be posted today. Exercise # 4 will be posted on Piazza today.

Announcement. HW#3 will be posted today. Exercise # 4 will be posted on Piazza today. Announcement HW#3 will be posted today. Exercise # 4 will be posted on Piazza today. Operating Systems: Internals and Design Principles Chapter 7 Memory Management Seventh Edition William Stallings Modified

More information

Goals of Memory Management

Goals of Memory Management Memory Management Goals of Memory Management Allocate available memory efficiently to multiple processes Main functions Allocate memory to processes when needed Keep track of what memory is used and what

More information

Outline. V Computer Systems Organization II (Honors) (Introductory Operating Systems) (Review) Memory Management

Outline. V Computer Systems Organization II (Honors) (Introductory Operating Systems) (Review) Memory Management Outline V22.0202-001 Computer Systems Organization II (Honors) (Introductory Operating Systems) Lecture 14 Memory Management March 28, 2005 Announcements Lab 4 due next Monday (April 4 th ) demos on 4

More information

CSL373: Lecture 14 User level memory management

CSL373: Lecture 14 User level memory management CSL373: Lecture 14 User level memory management Today: dynamic memory allocation Almost every useful program uses dynamic allocation: gives wonderful functionality benefits don t have to statically specify

More information

Chapter 9: Memory Management

Chapter 9: Memory Management Chapter 9: Memory Management Background Logical versus Physical Address Space Overlays versus Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging Operating System Concepts 9.1 Background

More information

OS - Memory Management

OS - Memory Management OS - Memory Management Memory management is the functionality of an operating system which handles or manages primary memory. Memory management keeps track of each and every memory location either it is

More information

7. Memory Management

7. Memory Management Lecture Notes for CS347: Operating Systems Mythili Vutukuru, Department of Computer Science and Engineering, IIT Bombay 7. Memory Management 7.1 Basics of Memory Management What does main memory (RAM)

More information

Chapter 7 Memory Management

Chapter 7 Memory Management Operating Systems: Internals and Design Principles Chapter 7 Memory Management Eighth Edition William Stallings Frame Page Segment A fixed-length block of main memory. A fixed-length block of data that

More information

CS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College April 7, 2015

CS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College April 7, 2015 CS 31: Intro to Systems Virtual Memory Kevin Webb Swarthmore College April 7, 2015 Reading Quiz Memory Abstraction goal: make every process think it has the same memory layout. MUCH simpler for compiler

More information

Operating Systems, 6 th ed. Test Bank Chapter 7

Operating Systems, 6 th ed. Test Bank Chapter 7 True / False Questions: Chapter 7 Memory Management 1. T / F In a multiprogramming system, main memory is divided into multiple sections: one for the operating system (resident monitor, kernel) and one

More information

Memory Management and Paging. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han

Memory Management and Paging. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han Memory Management and Paging CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han Announcements PA #2 due Friday March 18 11:55 pm - note extension of a day Read chapters 11 and 12 From last time...

More information

Memory management basics (1) Requirements (1) Objectives. Operating Systems Part of E1.9 - Principles of Computers and Software Engineering

Memory management basics (1) Requirements (1) Objectives. Operating Systems Part of E1.9 - Principles of Computers and Software Engineering Memory management basics (1) Requirements (1) Operating Systems Part of E1.9 - Principles of Computers and Software Engineering Lecture 7: Memory Management I Memory management intends to satisfy the following

More information

Virtual Memory. Reading: Silberschatz chapter 10 Reading: Stallings. chapter 8 EEL 358

Virtual Memory. Reading: Silberschatz chapter 10 Reading: Stallings. chapter 8 EEL 358 Virtual Memory Reading: Silberschatz chapter 10 Reading: Stallings chapter 8 1 Outline Introduction Advantages Thrashing Principal of Locality VM based on Paging/Segmentation Combined Paging and Segmentation

More information

CH 7. MAIN MEMORY. Base and Limit Registers. Memory-Management Unit (MMU) Chapter 7: Memory Management. Background. Logical vs. Physical Address Space

CH 7. MAIN MEMORY. Base and Limit Registers. Memory-Management Unit (MMU) Chapter 7: Memory Management. Background. Logical vs. Physical Address Space Chapter 7: Memory Management CH 7. MAIN MEMORY Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation adapted from textbook slides Background Base and Limit Registers

More information

Chapter 2 Memory Management: Early Systems. Understanding Operating Systems, Fourth Edition

Chapter 2 Memory Management: Early Systems. Understanding Operating Systems, Fourth Edition Chapter 2 Memory Management: Early Systems Understanding Operating Systems, Fourth Edition Memory Management: Early Systems Memory is second only to processes in importance (and in intensity) with which

More information

Lecture 10: Memory Management

Lecture 10: Memory Management Lecture 10: Memory Management CSE 120: Principles of Operating Systems guest starring Amin Vahdat Project 2 Due 11/14 Memory Management Next few lectures are going to cover memory management Goals of memory

More information

406 memory pool memory allocation handle memory deallocation dynamic storage allocation

406 memory pool memory allocation handle memory deallocation dynamic storage allocation 406 Chap. 12 Lists and Arrays Revisited 12.4 Memory Management Most of the data structure implementations described in this book store and access objects all of the same size, such as integers stored in

More information

CS5460: Operating Systems

CS5460: Operating Systems CS5460: Operating Systems Lecture 13: Memory Management (Chapter 8) Where are we? Basic OS structure, HW/SW interface, interrupts, scheduling Concurrency Memory management Storage management Other topics

More information

Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging

Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging Memory Management Outline Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging 1 Background Memory is a large array of bytes memory and registers are only storage CPU can

More information

8 Memory Management. 8.1 Requirements. 8 Memory Management Protection Relocation INTRODUCTION TO MEMORY MANAGEMENT OPERATING SYSTEMS

8 Memory Management. 8.1 Requirements. 8 Memory Management Protection Relocation INTRODUCTION TO MEMORY MANAGEMENT OPERATING SYSTEMS OPERATING SYSTEMS INTRODUCTION TO MEMORY MANAGEMENT 1 8 Memory Management In a multiprogramming system, in order to share the processor, a number of processes must be kept in. Memory management is achieved

More information

Operating Systems Memory Management

Operating Systems Memory Management Operating Systems Memory Management ECE 344 ECE 344 Operating Systems 1 Memory Management Contiguous Memory Allocation Paged Memory Management Virtual Memory ECE 344 Operating Systems 2 Binding of Instructions

More information

Memory Management. Operating Systems. Monoprogramming without Swapping or Paging. Multiprogramming

Memory Management. Operating Systems. Monoprogramming without Swapping or Paging. Multiprogramming Operating Systems User OS Kernel & Device Drivers Interface Programs Management Management is an important resource that needs to be managed by the OS manager is the component of the OS responsible for

More information

An Introduction to Memory Management: appendix. Copyright : University of Illinois CS 241 Staff 1

An Introduction to Memory Management: appendix. Copyright : University of Illinois CS 241 Staff 1 An Introduction to Memory Management: appendix Copyright : University of Illinois CS 241 Staff 1 Memory partitioning Nowadays memory management is based on a sophisticated technique known as (paged) virtual

More information

Memory Management. Prof. P.C.P. Bhatt. P.C.P Bhat OS/M4/V1/2004 1

Memory Management. Prof. P.C.P. Bhatt. P.C.P Bhat OS/M4/V1/2004 1 Memory Management Prof. P.C.P. Bhatt P.C.P Bhat OS/M4/V1/2004 1 What is a Von-Neumann Architecture? Von Neumann computing requires a program to reside in main memory to run. Motivation The main motivation

More information

Lecture 17: Paging Mechanisms

Lecture 17: Paging Mechanisms Operating Systems (A) (Honor Track) Lecture 17: Paging Mechanisms Tao Wang School of Electronics Engineering and Computer Science http://ceca.pku.edu.cn/wangtao Fall 2013 Acknowledgements: Prof. Xiangqun

More information

Chapter 9: Virtual Memory

Chapter 9: Virtual Memory Chapter 9: Virtual Memory Chapter 9: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Demand Segmentation Operating System Examples 9.2 Background

More information

Memory management challenges

Memory management challenges Virtual Page 1 Memory management challenges Wednesday, October 27, 2004 7:59 AM Memory management challenges Fragmentation: memory is broken up into segments with gaps between them; must find a "fragment"

More information

Chapter 9: Virtual Memory. Operating System Concepts 8 th Edition,

Chapter 9: Virtual Memory. Operating System Concepts 8 th Edition, Chapter 9: Virtual Memory, Silberschatz, Galvin and Gagne 2009 Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating

More information

CS420: Operating Systems

CS420: Operating Systems Virtual Memory James Moscola Department of Engineering & Computer Science York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Background Code needs

More information

Computer Systems Engineering Department, QUEST, Nawabshah OPERATING SYSTEMS

Computer Systems Engineering Department, QUEST, Nawabshah OPERATING SYSTEMS OPERATING SYSTEMS Memory Management Introduction Fixed Partitioning Variable Partitioning Memory Hole/Allocation management Problems Introduction Techniques to manage Main memory efficiently Provides multitasking

More information

William Stallings Computer Organization and Architecture

William Stallings Computer Organization and Architecture William Stallings Computer Organization and Architecture Chapter 8 Operating System Support Rev. 3.2 (2009-10) by Enrico Nardelli 8-1 Objectives and Functions Convenience Making the computer easier to

More information

Operating System Concepts 7 th Edition, Feb 22, 2005

Operating System Concepts 7 th Edition, Feb 22, 2005 Chapter 9: Virtual Memory Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations

More information

Last Class: Memory Management. Recap: Paging

Last Class: Memory Management. Recap: Paging Last Class: Memory Management Static & Dynamic Relocation Fragmentation Paging Lecture 12, page 1 Recap: Paging Processes typically do not use their entire space in memory all the time. Paging 1. divides

More information

Module 4: Memory Management

Module 4: Memory Management Module 4: Memory Management The von Neumann principle for the design and operation of computers requires that a program has to be primary memory resident to execute. Also, a user requires to revisit his

More information

Memory Management Thrashing, Segmentation and Paging

Memory Management Thrashing, Segmentation and Paging Memory Management Thrashing, Segmentation and Paging CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers Sakai: 01:198:416 Sp11 (https://sakai.rutgers.edu) Summary of Page

More information

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 17 by Kuo-pao Yang

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 17 by Kuo-pao Yang CHAPTER 6 Memory 6.1 Memory 313 6.2 Types of Memory 313 6.3 The Memory Hierarchy 315 6.3.1 Locality of Reference 318 6.4 Cache Memory 319 6.4.1 Cache Mapping Schemes 321 6.4.2 Replacement Policies 333

More information

Lesson 6: Memory Management & Virtualization

Lesson 6: Memory Management & Virtualization Lesson 6: Memory Management & Virtualization Contents Dynamic allocation, Memory fragmentation Paging Address translation with paging Paging hardware Page table structures Segmentation Virtual memory background

More information

3. Memory Management

3. Memory Management Principles of Operating Systems CS 446/646 3. Memory Management René Doursat Department of Computer Science & Engineering University of Nevada, Reno Spring 2006 Principles of Operating Systems CS 446/646

More information

Address spaces and address binding compile-time load-time run-time Memory management: mapping virtual address to physical addresses

Address spaces and address binding compile-time load-time run-time Memory management: mapping virtual address to physical addresses Outline Address spaces and address binding compile-time load-time run-time Memory management: mapping virtual address to physical addresses Paging contiguous allocation and fragmentation paging hardware

More information

Chapter 8: Memory Management

Chapter 8: Memory Management Chapter 8: Memory Management Chapter 8: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging 8.2 Memory Management Examine basic (not virtual) memory

More information

Contiguous Allocation. Contiguous Allocation. Free List. Dynamic Storage-Allocation Problem. Fragmentation

Contiguous Allocation. Contiguous Allocation. Free List. Dynamic Storage-Allocation Problem. Fragmentation Contiguous Allocation Main memory usually into two partitions: Resident operating system, usually held in low memory with interrupt vector. User processes then held in high memory. Memory Management --

More information

Lecture 4: Memory Management

Lecture 4: Memory Management Lecture 4: Memory Management Background Program must be brought into memory and placed within a process for it to be run Input queue collection of processes on the disk that are waiting to be brought into

More information

Today. Memory management. Memory Management. Computer Hardware Review

Today. Memory management. Memory Management. Computer Hardware Review Memory management Knut Omang Ifi/Paradial 1 Oct, 2009 (with slides from V. Goebel, C. Griwodz (Ifi/UiO), P. Halvorsen (Ifi/UiO), K. Li (Princeton), A. Tanenbaum (VU Amsterdam), and M. van Steen (VU Amsterdam))

More information

8.1 Background. Base and Limit Registers. Chapter 8: Memory-Management Management Strategies. Objectives

8.1 Background. Base and Limit Registers. Chapter 8: Memory-Management Management Strategies. Objectives Chapter 8: Memory-Management Management Strategies Objectives To provide a detailed description of various ways of organizing memory hardware To discuss various memory-management techniques, including

More information

Segmentation and Fragmentation

Segmentation and Fragmentation Segmentation and Fragmentation Operating System Design MOSIG 1 Instructor: Arnaud Legrand Class Assistants: Benjamin Negrevergne, Sascha Hunold September 16, 2010 A. Legrand Segmentation and Fragmentation

More information

Chapter 9: Virtual Memory

Chapter 9: Virtual Memory Chapter 9: Virtual Memory Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory Other Considerations

More information

Virtual and Physical Addresses

Virtual and Physical Addresses Virtual and Physical Addresses Physical addresses are provided by the hardware: one physical address space per machine; valid addresses are usually between 0 and some machinespecific maximum; not all addresses

More information

Start of Lecture: March 10, Chapter 8: Main Memory

Start of Lecture: March 10, Chapter 8: Main Memory Start of Lecture: March 10, 2014 1 Reminders Assignment 2 is done! Assignment 3 has been released, due last day of classes Exercise 4 is due on March 18 Paul Lu started talking about memory management

More information

Operating Systems. Memory Management. Memory management

Operating Systems. Memory Management. Memory management Oerating Systems Memory management Memory Management List of Toics 1. Memory Management 2. Memory In Systems Design 3. Binding Times 4. Introduction to Memory Management 5. Raw Memory Model 6. Single Contiguous

More information

Paging & Segmentation

Paging & Segmentation & Frédéric Haziza Department of Computer Systems Uppsala University Spring 2007 Outline 1 Paging Implementation Protection Sharing 2 Setup Implementation Definition Paging Memory-management

More information

Virtual Memory. Virtual Memory

Virtual Memory. Virtual Memory Virtual Memory Gordon College Stephen Brinton Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Demand Segmentation Operating System Examples Background

More information

Last Class: Memory Management. Today: Paging

Last Class: Memory Management. Today: Paging Last Class: Memory Management Uniprogramming Static Relocation Dynamic Relocation Lecture 15, page 1 Today: Paging Processes typically do not use their entire space in memory all the time. Paging 1. divides

More information

Basic Page Replacement

Basic Page Replacement Basic Page Replacement 1. Find the location of the desired page on disk. Find a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a

More information

memory management Vaibhav Bajpai

memory management Vaibhav Bajpai memory management Vaibhav Bajpai OS 2014 motivation virtualize resources: multiplex CPU multiplex memory (CPU scheduling) (memory management) why manage memory? controlled overlap processes should NOT

More information

ICS Principles of Operating Systems

ICS Principles of Operating Systems ICS 143 - Principles of Operating Systems Lectures 15 and 16 - Virtual Memory Prof. Ardalan Amiri Sani Prof. Nalini Venkatasubramanian ardalan@uci.edu nalini@ics.uci.edu Virtual Memory Background Demand

More information

Chapter 9: Virtual-Memory Management

Chapter 9: Virtual-Memory Management Chapter 9: Virtual-Memory Management Chapter 9: Virtual-Memory Management Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel Memory

More information

Module 10: Virtual Memory

Module 10: Virtual Memory Module 10: Virtual Memory Background Demand Paging Performance of Demand Paging Page Replacement Page-Replacement Algorithms Allocation of Frames Thrashing Other Considerations Demand Segmenation Applied

More information

Ecient Programming in C

Ecient Programming in C Ecient Programming in C Memory Allocation Comparison and implementation of basic malloc algorithms Marcel Ellermann(6315155) DKRZ - Deutsches Klima Rechenzentrum Contents Ecient Programming in C........................................

More information

Memory Management. Overview

Memory Management. Overview Memory Management 1 Overview Basic memory management Address Spaces Virtual memory Page replacement algorithms Design issues for paging systems Implementation issues Segmentation 2 1 Memory Management

More information

Introduction. Memory Management. Issues in sharing memory. Storage allocation. Transparency

Introduction. Memory Management. Issues in sharing memory. Storage allocation. Transparency Introduction The CPU fetches instructions and data of a program from memory; therefore, both the program and its data must reside in the main (RAM and ROM) memory. Memory Management Modern multiprogramming

More information

Chapter 9: Virtual-Memory Management

Chapter 9: Virtual-Memory Management Chapter 9: Virtual-Memory Management Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocation Kernel Memory Other

More information

One of the most difficult aspects of operating system design is memory management.

One of the most difficult aspects of operating system design is memory management. M07_STAL6329_06_SE_C07.QXD 2/21/08 9:30 PM Page 309 PART THREE Memory One of the most difficult aspects of operating system design is memory management. Although the cost of memory has dropped dramatically

More information

System Software Prof. Dr. H. Mössenböck

System Software Prof. Dr. H. Mössenböck System Software Prof. Dr. H. Mössenböck 1. Memory Management 2. Garbage Collection 3. Linkers and Loaders 4. Debuggers 5. Text Editors Marks obtained by end-term exam http://ssw.jku.at/misc/ssw/ 1. Memory

More information

Chapter 8: Memory Management!

Chapter 8: Memory Management! The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still

More information

Embedded RTOS Memory Management

Embedded RTOS Memory Management CS512 Embedded RTOS Embedded RTOS Memory Management C.-Z. Yang http://syslab.cse.yzu.edu.tw/~czyang Background Program must be brought into memory and placed within a process for it to be run. Binding

More information

CSC501 Operating Systems Principles. Memory Management

CSC501 Operating Systems Principles. Memory Management CSC501 Operating Systems Principles Memory Management 1 Previous Lectures q Linker & Loader q Today Q Memory Management 2 Layer user filesystem inter-machine net. memory mgr (high) device mgr + drivers

More information

Chapter 9: Memory Management. Background

Chapter 9: Memory Management. Background Chapter 9: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging 9.1 Background Program must be brought into memory and placed within a process for it

More information

Memory Management CS 447. Prof. R.K. Joshi Dept of CSE IIT Bombay

Memory Management CS 447. Prof. R.K. Joshi Dept of CSE IIT Bombay Memory Management CS 447 Prof. R.K. Joshi Dept of CSE IIT Bombay Some Simple Memory schemes Some Simple Memory schemes Some Simple Memory schemes Overlays: User level memory management (e.g. TurboPascal)

More information