1 memory management from chapter 4, modern operating systems, andrew s. tanenbaum

23
1 Memory Management Chapter 4, Modern Operating Systems, Andrew S. Tane

Upload: bartholomew-shelton

Post on 11-Jan-2016

242 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

1

Memory Management

From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

Page 2: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

2

Memory Management

• Ideally programmers want memory that is– large

– fast

– non volatile

• Memory hierarchy – small amount of fast, expensive memory – cache

– some medium-speed, medium price main memory

– gigabytes of slow, cheap disk storage

• Memory managers handle the memory hierarchy

Page 3: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

3

Basic Memory ManagementMonoprogramming without Swapping or Paging

Three simple ways of organizing memory- an operating system with one user process

Page 4: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

4

Multiprogramming with Fixed Partitions

• Fixed memory partitions– separate input queues for each partition– single input queue

Page 5: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

5

Relocation and Protection

• Cannot be sure where program will be loaded in memory– address locations of variables, code routines cannot be absolute

– must keep a program out of other processes’ partitions

• Use base and limit values– address locations added to base value to map to physical addr

– address locations larger than limit value is an error

• Self-relocation– Program computes its own references

Page 6: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

6

Swapping (1)

Memory allocation changes as – processes come into memory– leave memory

Shaded regions are unused memory(global fragmentation)

Page 7: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

7

Swapping (2)

• Allocating space for growing data segment• Allocating space for growing stack & data segment

Page 8: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

8

Virtual MemoryPaging (1)

The position and function of the MMU

Page 9: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

9

Paging (2)

The relation betweenvirtual addressesand physical memory addresses given bypage table

Frame#

Page 10: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

10

Page Tables (1)

Internal operation of MMU with 16 4 KB pages

Page 11: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

11

Page Tables (2)

• 32 bit address with 2 page table fields

• Two-level page tables

Top-level page table

Second-level page tables

Page 12: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

12

Page Tables (3)

Typical page table entry

Page 13: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

13

TLBs – Translation Lookaside Buffers

A TLB to speed up paging

Page 14: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

14

Inverted Page Tables

Comparison of a traditional page table with an inverted page table

Page 15: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

15

Page Replacement Algorithms (1)

• Page fault forces choice – which page must be removed– make room for incoming page

• Modified page must first be saved– unmodified just overwritten

• Better not to choose an often used page– will probably need to be brought back in soon

Page 16: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

16

Page Replacement Algorithms (2)

• Optimal Page Replacement– Replace page needed at the

farthest point in future– Optimal but unrealizable

• Not Recently Used (NRU)

• FIFO

• Second Chance

• Clock

• Least Recently Used (LRU)

• Not Frequently Used (NFU)

• Aging

• Working Set

• WSClock

Page 17: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

17

Design Issues for Paging SystemsLocal versus Global Allocation Policies

• Original configuration

• Local page replacement

• Global page replacement

Page 18: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

18

Cleaning Policy (Garbage Collection)

• Need for a background process, paging daemon– periodically inspects state of memory

• When too few page frames are free– selects pages to evict using a replacement algorithm

Page 19: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

19

Load Control

• Despite good designs, system may still thrash when– some processes need more memory – but no processes need less

• Solution :Reduce number of processes competing for memory– swap one or more to disk, divide up pages they held– reconsider degree of multiprogramming

Page 20: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

20

Page Size

Small page size

• Advantages– less internal fragmentation – better fit for various data structures, code sections

• Disadvantages– program needs more pages has larger page table

Page 21: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

21

Separate Instruction and Data Spaces

• One address space• Separate I and D spaces

Page 22: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

22

Shared Pages

Two processes sharing same program sharing its page table

Page 23: 1 Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum

23

References• Chapters 8 and 9 :OS Concepts, Silberschatz, Galvin, Gagne

• Chapter 4: Modern Operating Systems, Andrew S. Tanenbaum

• X86 architecture– http://en.wikipedia.org/wiki/Memory_segment

• Memory segment– http://en.wikipedia.org/wiki/X86

• Memory model– http://en.wikipedia.org/wiki/Memory_model

• IA-32 Intel Architecture Software Developer’s Manual, Volume 1: Basic Architecture– http://www.intel.com/design/pentium4/manuals/index_new.htm