memory management n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Memory Management PowerPoint Presentation
Download Presentation
Memory Management

Loading in 2 Seconds...

play fullscreen
1 / 29

Memory Management - PowerPoint PPT Presentation


  • 84 Views
  • Uploaded on

Memory Management. COSC513 – Spring 2004 Student Name: Nan Qiao Student ID#: 104454 Professor: Dr. Morteza Anvari. Goals of Memory Management. Relocation Protection Sharing Logical Organization Physical Organization. Relocation.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Memory Management' - thy


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
memory management

Memory Management

COSC513 – Spring 2004

Student Name: Nan Qiao

Student ID#: 104454

Professor: Dr. Morteza Anvari

goals of memory management
Goals of Memory Management
  • Relocation
  • Protection
  • Sharing
  • Logical Organization
  • Physical Organization
relocation
Relocation
  • Location of a program is not known until the program is executed
    • Where the program is loaded depends on what other programs are in the system
    • A program may be swapped out and then back into a different location
  • Need to be able to execute the program regardless of where it is loaded
protection
Protection
  • User processes cannot be allowed to read or write outside their boundaries
  • Protection must be done at runtime
    • Programs can be loaded anywhere in memory
    • Programs can dynamically allocate memory
  • Check for valid addresses during address translation
    • Verify that address is within its bound
sharing
Sharing
  • Several processes may need access to the same data
    • Shared operating system library (i.e. DLL)
    • Shared data buffer
  • More efficient to allow shared access than to copy the data
  • Contrary to protection schemes
    • Cannot just allow all processes access to all memory
logical structure
Logical Structure
  • A program is typically constructed based on different types of modules
    • i.e. code, data, stack, heap
    • Access to each type may be different (I.e. read/write/shared/execute)
  • Modules are written and compiled separately
  • References are resolved at runtime
  • Typically implemented with segmentation
physical structure
Physical Structure
  • Need the ability to swap between main and secondary storage
    • Secondary storage is large and non-volatile
    • Main memory is fast
  • Solution: Divide memory into units that can be moved between disk and memory
  • Movement is coordinated by user or the OS
    • OS knows current system resources
    • OS can perform movement more efficiently
memory partitioning
Memory Partitioning
  • Fixed partitioning
    • Processes loaded into regions of fixed size
  • Dynamic partitioning
    • Processes loaded into variable sized regions
  • Paging
    • Fixed sized regions of small size
  • Segmentation
    • Large dynamic regions
  • Virtual memory
    • Uses pages and/or segments
fixed partitioning
Fixed Partitioning
  • Memory is divided into a number of fixed sized partitions
    • Equal sized: all pages are the same
    • Unequal sized: small and large pages
  • The entire process is loaded into contiguous memory
  • Advantage: Simple to implement
  • Disadvantage: Can be wasteful
    • Page sizes are determined by the a-priori
equal sized partitions

4M Process

2M Process

Too large

Cannot be

loaded

InternalFragmentation

10M Process

Equal Sized Partitions
  • Load processes into first available region
    • Memory utilization can be low
    • Large processes may not fit

Operating System

8M Process

8M

8M

8M

8M

8M

unequal sized partitions
Unequal Sized Partitions
  • Load process into:
    • Smallest free region that fits
    • Region closest to size (may require waiting)
  • Advantages
    • Accommodates large and small processes
    • May have better utilization than a fixed scheme
  • Disadvantages
    • Memory utilization low if processes are small
    • Limits the number of active processes
unequaled sized partitions example

Operating System

2M

4M

8M

10M Process

16M

InternalFragmentation

Unequaled Sized Partitions (example)
  • Only processes larger than their partitions waste memory
    • Less internal fragmentation

2M Process

4M Process

8M Process

dynamic partitioning
Dynamic Partitioning
  • Partitions are of variable size
    • Allocate only the amount of memory needed
  • Number of partitions only limited by the amount of free memory
  • Load entire process into contiguous memory
  • Advantages:
    • No internal fragmentation
  • Disadvantages:
    • Fragmentation still possible (external)
    • More complex (requires placement scheme)
dynamic partitioning example

8M

1M

32M

ExternalFragmentation

8M Process

2M

3M Process

Does notfit

1M Process

11M Process

32M

21M

24M

20M

7M Process

10M Process

9M

2M

Dynamic Partitioning (example)
  • Load processes contiguously in memory
  • Holes are created when processes release memory

Operating System

placement algorithm
Placement Algorithm
  • The OS must decide which hole to fill when allocating memory to a process
    • Best fit: Find the smallest hole that satisfies the allocation
    • Worst fit: Use the biggest free region
    • First fit: Use the first region in memory that satisfies the allocation
    • Next fit: like first fit, but search starting from the last allocation
internal fragmentation
Internal Fragmentation
  • i.e. wasted memory within a partition
  • Occurs for fixed sized partitions
  • Occurs when a process does not use the entire partition
  • Prevent by dynamically partitioning
    • However this causes external fragmentation
external fragmentation
External Fragmentation
  • i.e. wasted memory outside of the partition
  • Occurs in variable sized partitions
  • Occurs when holes are not large enough to hold a new process
  • Solution:
    • Compaction
compaction

8M

1M

32M

8M Process

2M

3M Process

1M Process

11M Process

32M

24M

21M

20M

7M Process

9M

1M

Compaction
  • Eliminate holes by moving processes
    • Copy operation is expensive

Operating System

Operating System

3M Process

11M Process

7M Process

11M

disadvantages of partitioning
Disadvantages of Partitioning
  • Fragmentation is unavoidable
  • Must load entire process into memory
    • Limits the number of active processes
  • Solution: use paging and/or segmentation
  • Why study partitioning
    • Historical reasons
    • Paging and segmentation are based on it
    • May still be used for dynamic (heap) allocation
paging
Paging

Main Memory

Frame

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  • Memory is divided into small page frames
  • Pages of process are loaded into frames (need not be contiguous)
  • Less external fragmentation
  • Small pages limit internal fragmentation
  • Page table translates page addresses to frames
paging example

Process A (1)

Process D (1)

Process A (2)

Process D (2)

Process A (3)

Process D (3)

Process A (4)

Process D (4)

Process B (1)

Process B (2)

Process B (3)

Process B (4)

Process B (5)

Process B (6)

Process C (1)

Process C (2)

Process C (3)

Process D (5)

Process C (4)

Process D (6)

Paging (Example)

Main Memory

Frame

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  • Load pages into empty frames
  • Sufficient frames must exist for entire process
  • No compaction needed (pages can be loaded into non-contiguous frames)
page tables

Process D (1)

Process D (2)

Process D (3)

Process D (4)

Process B (1)

Process B (2)

Process B (3)

Process B (4)

Process D

Process B

Process C

Process B (5)

Process B (6)

Process C (1)

Process C (2)

Process C (3)

Process D (5)

Process C (4)

Process D (6)

Page Tables

Main Memory

Frame

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  • One page table for each process
  • Page table translates logical addresses to physical addresses
logical to physical translation

0

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

1

1

1

Frame Number

Page Offset

Logical to Physical Translation
  • Translation done in hardware
    • Upper N bits translated to frame number
    • Lower M bits contain offset into page

Logical Address

Page 0

Page Number

Page Offset

Page 1

Page Table

Page 2

Frame Number

Physical Address

...

advantages of logical addressing
Advantages of Logical Addressing
  • Logical addressing provides a means for process relocation
  • Each process uses the same logical addresses
    • Separate page tables map logical addresses of each process to different physical addresses
    • Process segments start from a fixed location
    • Makes compiling/loading easier
segmentation
Segmentation
  • Process memory is divided into segments
    • One segment for each type of data (data,code,stack,heap…)
    • Each segment can be loaded anywhere
  • Segments are of variable size
  • Address translation is required
    • Address contains segment number and offset
    • Must ensure that process does not address beyond the segment limit
comparing paging and segmentation
Comparing Paging and Segmentation
  • Size of regions
    • Small and fixed size for paging
    • Large and variable size for segmentation
  • Address translation
    • Simple bit shift for paging
    • More complicated addition for segmentation
  • Advantages
    • Paging: very little fragmentation
    • Segmentation: logical structure
combining paging and segmentation
Combining Paging and Segmentation
  • Combine to gain advantages of both
  • A process’s segments consist of a number of fixed sized pages
  • Requires two address translations
    • First logical segment to logical page address
    • Next logical page to physical page address
how paging segmentation meet requirements
How Paging/Segmentation Meet Requirements
  • Relocation
    • Logical to physical translation allow segments or pages to be loaded anywhere
  • Protection
    • Address translation gives hardware an opportunity to check for valid addresses
  • Sharing
    • Shared regions can be divided into segments
    • Two logical segments can be mapped to one physical shared segment
how paging segmentation meet requirements1
How Paging/Segmentation Meet Requirements
  • Logical Organization
    • Program is divided into segments
  • Physical Organization
    • Pages are convenient units to swap in and out of memory