memory: paging - cornell university · 2 today what is paging and why do we need it? paging address...

23
1 CS 4410 Operating Systems Memory: Paging Summer 2011 Cornell University

Upload: lamtuyen

Post on 10-Apr-2018

238 views

Category:

Documents


5 download

TRANSCRIPT

1

CS 4410Operating Systems

Memory:Paging

Summer 2011Cornell University

2

Today● What is paging and why do we need it?● Paging● Address translation scheme● Page table● Implementation of page table● TLB● Structure of page table in memory

3

Paging● Memory management scheme.● Noncontiguous physical address space of a

process.● The process is allocated physical memory wherever

the latter is available.● It avoids external fragmentation.

4

Paging● Divide physical memory into fixed-sized blocks called

frames (size is power of 2, between 512 bytes and 8,192 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

5

Paging

6

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

p d

m - n n

page number

page offset

7

Address Translation Scheme

8

Address Translation Scheme0000 a0001 b0010 c0011 d0100 e0101 f0110 g0111 h1000 i1001 j1010 k1011 l1100 m1101 n1110 o1111 p

logical memory

00 10101 11010 00111 010

page table

00000

00100 ijkl

01000 mnop

01100

10000

10100 abcd

11000 efgh

physical memory

9

Paging● User's view: memory is one single space● Actual view: the program is scattered

throughout physical memory● The OS manages physical memory.

● Frame table: Availability and owner of every frame

10

Hardware Support● The OS allocates one page table per process.● A pointer to the page table is stored in the PCB.● The dispatcher defines the correct hardware

page-table values.

11

Implementation of page table● Set of dedicated registers.

● Fast● Small

● In memory● Page-table base register (PTBR)● Slow● Large

● TLB + memory● Translation look-aside buffer● Special, small, fast-lookup hardware cache● Contains a few of the page-table entries● If page_number is in TLB get frame_number out

12

Paging Hardware With TLB

13

Memory Protection● Implemented by associating protection bit with

each frame.

14

Shared Pages● Shared code

● One copy of read-only (reentrant) code shared among processes (i.e., text editors, compilers, window systems).

● Shared code must appear in same location in the logical address space of all processes

● Private code and data ● Each process keeps a separate copy of the code and data● The pages for the private code and data can appear

anywhere in the logical address space

15

Structure of the Page Table● Hierarchical Paging● Hashed Page Tables● Inverted Page Tables

16

Hierarchical Paging

17

Hierarchical Paging● Two-Level Paging Example● A logical address (on 32-bit machine with 4K page size) is divided into:

● a page offset of 12 bits● a page number of 20 bits

● Since the page table is paged, the page number is further divided into:● a 10-bit page number ● a 10-bit page offset

● Thus, a logical address is as follows:

page number page offset

p1 p2 d

10 10 12

18

Hierarchical Paging

19

Hashed Page Tables● Common in address spaces > 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.

20

Hashed Page Tables

21

Inverted Page Table● One entry for each real page of memory.● Entry consists of the virtual address of the page stored

in that real memory location, with information about the process that owns that page.

● Decreases memory needed to store each page table, but increases time needed to search the table when a page reference occurs.

● Use hash table to limit the search to one — or at most a few — page-table entries.

22

Inverted Page Table

23

Today● What is paging and why do we need it?● Paging● Address translation scheme● Page table● Implementation of page table● TLB● Structure of page table in memory