operating systems chapter 8 memory management. logical vs. physical address space the concept of a...

28
Operating Systems Chapter 8 Memory Management

Upload: leon-horton

Post on 28-Dec-2015

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Operating SystemsChapter 8

Memory Management

Page 2: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Logical vs. Physical Address Space

The concept of a logical address space that is bound to a separate physical address space is central to proper memory management.• Logical address – generated by the CPU; also

referred to as virtual address.

• Physical address – address seen by the memory unit.

Page 3: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Memory-Management Unit (MMU) Hardware device that

maps virtual to physical address.

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

Page 4: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

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.

Single-partition allocation• Relocation-register scheme used to protect user processes

from each other, and from changing operating-system code and data.

• Relocation register contains value of smallest physical address; limit register contains range of logical addresses – each logical address must be less than the limit register.

Page 5: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Hardware Support for Relocation and Limit Registers

Page 6: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Contiguous Allocation (Cont.) Multiple-partition allocation

• Hole – block of available memory; holes of various size are scattered throughout memory.

• When a process arrives, it is allocated memory from a hole large enough to accommodate it.

• Operating system maintains information about:a) allocated partitions b) free partitions (hole)

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

Page 7: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Fragmentation

External Fragmentation - total memory space exists to satisfy request but it is not contiguous

OS

process 2

process 3

process 8

50k

100k

Process 9125k ?

Page 8: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Compaction Shuffle memory contents to place all free memory together in one

large block

128 MB RAM, 100 nsec/access 1.5 seconds to compact!

Process 9

OS

process 2

process 3

process 8

OS

process 2

process 3

process 8

50k

100k

OS

process 2

process 3

process 8

90k

60k

125k

Page 9: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Paging Logical address space of a process can be noncontiguous;

process is allocated physical memory whenever the latter is available.

Divide physical memory into fixed-sized blocks called frames (size is power of 2, between 512 bytes and 8192 bytes).

Divide logical memory into blocks of same size called pages. Keep track of all free frames. To run a program of size n pages, need to find n free frames and

load program. Set up a page table to translate logical to physical addresses. Internal fragmentation.

Page 10: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Address Translation Scheme Address generated by

CPU is divided into:• Page number (p) – used as

an index into a page table 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 11: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Paging Example

Page 12: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Pag

e 0

Pag

e 1

Pag

e 2

Pag

e 3

01

11

00

10

00

01

10

11

Page Table

000

001

010

011

100

101

110

111

PhysicalMemory

000

001

010

011

100

101

110

111

0 0 1 0 1 1

Page

Offset

Frame

Paging Example

Page 13: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Another Paging Example

1

4

0

1

Page Table

Page 0

Page 1

Process A

Page 1A

Page 1B

Page 0A

Page 0B

0

1

2

3

4

5

6

7

Page 0

Page 1

Process B

3

7

0

1

Page Table

page numberp

page offsetd

m-n n

Page 14: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Implementation of Page Table Page table is kept in main memory. Page-table base register (PTBR) points to the page

table. Page-table length register (PRLR) indicates size of

the page table. In this scheme every data/instruction access requires

two memory accesses. One for the page table and one for the data/instruction.

The two memory access problem can be solved by the use of a special fast-lookup hardware cache called associative memory or translation look-aside buffers (TLBs)

Page 15: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Paging Hardware With TLB

Page 16: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

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’ logical address space, and is thus a legal page.

• “invalid” indicates that the page is not in the process’ logical address space.

Page 17: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Large Address Spaces Typical logical address spaces:

• 4 Gbytes => 232 address bits (4-byte address) Typical page size:

• 4 Kbytes = 212 bits Page table may have:

• 232 / 212 = 220 = 1million entries Each entry 3 bytes => 3MB per process! Do not want that all in RAM Solution? Page the page table

• Multilevel paging

Page 18: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Multilevel Paging

Page 0

...

......

Outer PageTable

LogicalMemory

...

...

Page Table

...

page numberp1

page offsetd

10 12p2

10

Page 19: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Segmentation Memory-management scheme that

supports user view of memory. A program is a collection of

segments. A segment is a logical unit such as:

main program,procedure, function,method,object,local variables, global variables,common block,stack,symbol table, arrays

Page 20: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Segmentation with Paging – Intel 386

Page 21: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Virtual Memory

Background Virtual memory – separation of user logical memory

from physical memory.• Only part of the program needs to be in memory for execution.

• Logical address space can therefore be much larger than physical address space.

• Allows address spaces to be shared by several processes.

• Allows for more efficient process creation.

Page 22: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Demand Paging Bring a page into memory

only when it is needed With each page table entry a

valid–invalid bit is associated(1 in-memory, 0 not-in-memory)

During address translation, if valid–invalid bit in page table entry is 0 page fault.

111

1

0

00

Frame # valid-invalid bit

Page 23: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Page Table When Some Pages Are Not in Main Memory

Page 24: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Steps in Handling a Page Fault

Page 25: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

What happens if there is no free frame? Page replacement – find some page in memory, but not really in

use, swap it out.• algorithm• performance – want an algorithm which will result in minimum

number of page faults.

Basic Page Replacement1. Find the location of the desired page on disk.

2. 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 victim frame.3. Read the desired page into the (newly) free frame. Update the page

and frame tables.4. Restart the process.

Page 26: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

FIFO Page Replacement

Page 27: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Least Recently Used (LRU) Algorithm

Page 28: Operating Systems Chapter 8 Memory Management. Logical vs. Physical Address Space The concept of a logical address space that is bound to a separate physical

Second-Chance (clock) Page-Replacement Algorithm