52
Memory Management Dr. Yingwu Zhu

Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Management

Dr. Yingwu Zhu

Page 2: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Big picture

• Main memory is a resource• A process/thread is being executing, the

instructions & data must be in memory• Assumption: Main memory is super big to hold a

program– Allocation of memory to processes– Address translation

• Real world: a program and its data is larger than physical memory– VM comes to rescue

OS needs to manage this resource

Page 3: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

First cut

• Background: Program must be brought into memory and placed within a process for it to be run

• An assumption for this discussion:

– Physical memory is large enough to hold an any sized process

– We will relax this assumption later

Page 4: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Logical vs. Physical Address Space

• Logical address (virtual address)

– Generated by the CPU, always starting from 0

• Physical address

– Address seen/required by the memory unit

• Logical address space is bound to a physical address space

– Central to proper memory management

Page 5: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Binding logical address space to physical address space

• Binding instructions & data into memory can happen at 3 different stages– Compile time: If memory location known a priori, absolute code can be

generated; must recompile code if starting location changes

– Load time: Must generate relocatable code if memory location is not known at compile time

– Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., relocation and limit registers)

– Logical address = physical address for compile time and load time; logical address != physical address for execution time

Page 6: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Management Unit (MMU)

• Hardware device

– logical address physical address (mapping)

• Simplest MMU scheme: relocation register

The user program deals with logical addresses; it never sees the real physical addresses

Page 7: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Allocation, How?

• In the context of

– Multiprocessing, competing for resources

– Memory is a scarce resource shared by processes

• Questions:

– #1: How to allocate memory to processes?

– #2: What considerations need to be taken in memory allocation?

– #3: How to manage free space?

Page 8: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Allocation

• Contiguous allocation

• Non-contiguous allocation: Paging

Page 9: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Contiguous Allocation

• Fact: memory is usually split into 2 partitions– Low end for OS (e.g., interrupt vector)

– High end for user processes where allocation happens

Page 10: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Contiguous Allocation

• Definition: each process is placed in a single contiguous section of memory

– Single partition allocation

–Multiple-partition allocation

Page 11: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Contiguous Allocation

• Single partition allocation, needs hardware support– Relocation register: the base physical address

– Limit register: the range of logical address

Page 12: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Contiguous Allocation

Base register + limit registerdefine a logical address space in memory !

Page 13: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Contiguous Allocation

• Single partition allocation (high-end partition), needs hardware support– Relocation register: the base physical address

– Limit register: the range of logical address

– Protect user processes from each other, and from changing OS code & data

Page 14: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Protection by Base + Limit Registers

CPU < + Memory

Logicaladdress

Limit register

Relocation register

Trap: address error

yesPhysical address

no

Page 15: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Contiguous Allocation

• Multiple-partition allocation

– Divide memory into multiple fixed-sized partitions

– Hole: block of free/available memory

• Holes of various sizes are scattered thru memory

– When a process arrives, it is allocated from a hole large enough to hold it

• May create a new hole

– OS manages

• Allocated blocks & holes

Page 16: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Multiple-Partition Allocation

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

process 9

OS

process 5

process 9

process 2

process 10

rm p8 add p9 add p10

Page 17: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Multiple-Partition Allocation

• Dynamic storage allocation problem

– How to satisfy a request of size n from a list of holes?

• Three strategies

– First fit: allocate the first hole large enough

– Best fit: allocate the smallest hole that is big enough

– Worst fit: allocate the largest hole

– First & best fit outperform worst fit (in storage utilization)

Page 18: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Fragmentation

• Storage allocation produces fragmentation!

• External fragmentation

– Total available memory space exists to satisfy a request, but it is not contiguous

• Internal fragmentation

– Allocated memory may be slightly larger than requested memory, this size difference is memory internal to a partition, but not being used

– Why?

Page 19: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Fragmentation

• Storage allocation produces fragmentation!

• External fragmentation

– Total available memory space exists to satisfy a request, but it is not contiguous

• Internal fragmentation

– Allocated memory may be slightly larger than requested memory, this size difference is memory internal to a partition, but not being used

– Why?

Memory is allocated in block size rather than in the unit of bytes

Page 20: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Thinking

• What fragmentations are produced by multiple-partition allocation?

• What fragmentation is produced by single-partition allocation?

• Any solution to eliminate fragmentations?

Page 21: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Allocation

• Contiguous allocation

• Non-contiguous allocation: Paging

Page 22: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Paging

• Memory allocated to a process is not necessarily contiguous– Divide physical memory into fixed-sized blocks, called

frames (size is power of 2, e.g., 512B – 16MB)

– Divide logical address space into blocks of same size, called pages

– Memory allocated to a process in one or multiple of frames

– Page table: maps pages to frames, per-process structure

– Keep track of all free frames

Page 23: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Paging Example

Page 24: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Address Translation Scheme

• Logical address Physical address

• Address generated by the CPU is divided into

– Page number (p): used as an index into a pagetable which contains base address of each page in physical memory

– Page offset (d): combined with base address to define the physical memory address that is sent to the memory unit

Page 25: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Logical Address

p d

n bitsm-n bits

Logical address space 2^m

Page 26: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Address Translation

Page 27: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Exercise

• Consider a process of size 72,776 bytes and page size of 2048 bytes

How many entries are in the page table?

What is the internal fragmentation size?

Page 28: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Discussion

• How to implement page tables? Where to store page tables?

Page 29: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Implementation of Page Tables (1)

• Option 1: hardware support, using a set of dedicated registers

• Case study

16-bit address, 8KB page size, how many registers needed for the page table?

• Using dedicated registers

– Pros

– Cons

Page 30: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Implementation of Page Tables (2)

• Option 2: kept in main memory

– Page-table base register (PTBR) points to the page table

– Page-table length register (PTLR) indicates size of the page table

– Problem?

Page 31: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Implementation of Page Tables (2)

• Option 2: kept in main memory

– Page-table base register (PTBR) points to the page table

– Page-table length register (PTLR) indicates size of the page table

– Problem?

Page 32: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Implementation of Page Tables (2)

• Option 2: kept in main memory

– Page-table base register (PTBR) points to the page table

– Page-table length register (PTLR) indicates size of the page table

– Problem?

Every data/instruction access requires 2 memory accesses: one for the page table and one for the

data/instruction.

Page 33: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Option 2: Using memory to keep page tables

• How to handle 2-memory-accesses problem?

Page 34: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Option 2: Using memory to keep page tables

• How to handle 2-memory-accesses problem?

• Caching + hardware support

– Use of a special fast-lookup hardware cache called associative memory or translation look-aside buffers (TLBs)

– Cache page-table entries (LRU, etc.)

– Expensive but faster

– Small: 64 – 1024 entries

Page 35: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Associative Memory

• Associative memory – parallel search

• Address translation (A´, A´´)

– If A´ is in associative register, get frame # out

– Otherwise get frame # from page table in memory

Page # Frame #

Page 36: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Paging with TLB

Page 37: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Protection

• Memory protection implemented by associating protection bit with each frame

• Valid-invalid bit attached to each entry in the page table:

– “valid” indicates that the associated page is in the process’s logical address space, and is thus a legal page

– “invalid” indicates that the page is not in the process’s logical address space

Page 38: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Memory Protection

Page 39: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Page Table Structure

• Hierarchical Paging

• Hashed page tables

• Inverted hash tables

Page 40: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Why Hierarchical Paging?

• Most modern computer systems support a large logical address space, 2^32 – 2^64

• Large page tables– Example: 32-bit logical address space, page size is 4KB,

then 2^20 page table entries. If address takes 4 bytes, then the page table size costs 4MB

– Contiguous memory allocation for large page tables may be a problem!

– Physical memory may not hold a single large page table!

Page 41: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Hierarchical Paging

• Break up the logical address space into multiple page tables

– Page table is also paged!

• A simple technique is a two-level page table

Page 42: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Two-Level Paging Example

• A logical address (on 32-bit machine with 4K page size) is divided into:– A page number consisting of 20 bits what’s the page table size in bytes?

– A page offset consisting of 12 bits

• Since the page table is paged, the page number is further divided into:– A 10-bit page number

– A10-bit page offset

• Thus, a logical address is as follows:

where pi is an index into the outer page table, and p2 is the displacement within the page of the outer page table

page number page offset

pi p2 d

10 10 12

Page 43: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Address Translation

• 2-level 32-bit paging architecture

Page 44: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Address Translation Example

Page 45: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Page Table Structure

• Hierarchical Paging

• Hashed page tables

• Inverted hash tables

Page 46: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Hashed Page Tables

• A common approach for handling address space > 32 bits

– The virtual page number is hashed into a page table. This page table contains a chain of elements hashing to the same location.

– Virtual page numbers are compared in this chain searching for a match. If a match is found, the corresponding physical frame is extracted.

Page 47: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Hashed Page Tables

Page 48: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Page Table Structure

• Hierarchical Paging

• Hashed page tables

• Inverted hash tables

Page 49: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Inverted Page Tables

• Why need it?

• How?

– One entry for each memory frame

– Each entry consists of the virtual address of the page stored in the memory frame, with info about the process that owns the page: <pid, page #>

– One page table system wide

• Pros & Cons

Page 50: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Inverted Hash Tables

• Pros: reduce memory consumption for page tables

• Cons: linear search performance!

Page 51: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Exercise

• Consider a system with 32GB virtual memory, page size is 2KB. It uses 2-level paging. The physical memory is 512MB. Show how the virtual memory address is split in page directory, page

table and offset.

How many (2nd level) page tables are there in this system (per process)?

How many entries are there in the (2nd level) page table?

What is the size of the frame number (in bits) needed for implementing this?

How large should be the outer page table size?

Page 52: Memory Management - Seattle Universityfac-staff.seattleu.edu/.../lectures/memory_part1.pdf · 2011-05-03 · Two-Level Paging Example • A logical address (on 32-bit machine with

Summary

• Basic concepts

• MMU: logical addr. physical addr.

• Memory Allocation– Contiguous

– Non-contiguous: paging• Implementation of page tables

• Hierarchical paging

• Hashed page tables

• Inverted page tables

• TLB & effective memory-access time