pagingcs-3013 a-term 20091 paging cs-3013, operating systems a-term 2009 (slides include materials...

56
Paging CS-3013 A-term 200 9 1 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7 th ed., by Silbershatz, Galvin, & Gagne)

Post on 19-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 1

Paging

CS-3013, Operating SystemsA-term 2009

(Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne)

Page 2: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 2

Review – Memory Management

• Allocation of physical memory to processes

• Virtual Address• Address space in which the process “thinks”• Each virtual address is translated “on the fly” to a

physical address

• Fragmentation• Internal fragmentation – unused within an allocation• External fragmentation – unused between allocations

Page 3: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 3

Review – Memory Management (cont’d)

• Segmentation• Recognition of different parts of virtual address

space

• Different allocation strategies

• The rule of “no free lunch”• Fixed size allocations no external fragmentation,

more internal fragmentation

• Variable allocations no internal fragmentation, more external fragmentation

Page 4: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 4

Reading Assignment

• Tanenbaum– §§ 3.1-3.2 (previous topic – Memory

Management)

– § 3.3 (this topic on Paging)

Page 5: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 5

Paging

• A different approach

• Addresses all of the issues of previous topic

• Introduces new issues of its own

Page 6: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 6

Memory Management• Virtual (or logical) address vs.

Physical address

• Memory Management Unit (MMU)– Set of registers and mechanisms to

translate virtual addresses to physical addresses

• Processes (and processors) see virtual addresses– Virtual address space is same for all

processes, usually 0 based– Virtual address spaces are protected

from other processes

• MMU and devices see physical addresses

Processor

MMU

Memory I/O Devices

Logical Addresses

Physical Addresses

Page 7: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 7

Paging

• Use small fixed size units in both physical and virtual memory

• Provide sufficient MMU hardware to allow page units to be scattered across memory

• Make it possible to leave infrequently used parts of virtual address space out of physical memory

• Solve internal & external fragmentation problems

page X

frame 0

frame 1

frame 2

frame Y

physical memory

page 0

page 1

page 2

Logical Address Space (virtual memory)

page 3 MMU

Page 8: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 8

Paging• Processes see a large virtual address space

• Either contiguous or segmented

• Memory Manager divides the virtual address space into equal sized pieces called pages

• Some systems support more than one page size

• Memory Manager divides the physical address space into equal sized pieces called frames– Size usually a power of 2 between 512 and 8192 bytes

– Some modern systems support 64 megabyte pages!

– Frame table • One entry per frame of physical memory; each entry is either

– Free– Allocated to one or more processes

• sizeof(page) = sizeof(frame)

Page 9: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 9

Address Translation for Paging

• Translating virtual addresses– a virtual address has two parts: virtual page number &

offset– virtual page number (VPN) is index into a page table– page table entry contains page frame number (PFN)– physical address is: startof(PFN) + offset

• Page tables– Supported by MMU hardware– Managed by the Memory Manager– Map virtual page numbers to page frame numbers

• one page table entry (PTE) per page in virtual address space• i.e., one PTE per VPN

Page 10: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 10

Paging Translation

pageframe 0

pageframe 1

pageframe 2

pageframe Y

pageframe 3

physical memory

offset

physical address

F(PFN)page frame #

page table

offset

logical address

virtual page #

Page 11: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 11

Page Translation Example

• Assume a 32-bit contiguous address space– Assume page size 4KBytes (log2(4096) = 12 bits)

– For a process to address the full logical address space• Need 220 PTEs – VPN is 20 bits

• Offset is 12 bits

• Translation of virtual address 0x12345678– Offset is 0x678– Assume PTE(0x12345) contains 0x01010– Physical address is 0x01010678

Page 12: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 12

PTE Structure

• Valid bit gives state of this PTE– says whether or not a virtual address is valid – in memory and VA range– If not set, page might not be in memory or may not even exist!

• Reference bit says whether the page has been accessed– it is set by hardware whenever a page has been read or written to

• Modify bit says whether or not the page is dirty– it is set by hardware during every write to the page

• Protection bits control which operations are allowed– read, write, execute, etc.

• Page frame number (PFN) determines the physical page– physical page start address

• Other bits dependent upon machine architecture

page frame numberprotMRV

202111

Page 13: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 13

Paging – Advantages

• Easy to allocate physical memory• pick any free frame

• No external fragmentation• All frames are equal

• Minimal internal fragmentation• Bounded by page/frame size

• Easy to swap out pages (called pageout)• Size is usually a multiple of disk blocks• PTEs may contain info that help reduce disk traffic

• Processes can run with not all pages swapped in

Page 14: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 14

Definition — Page Fault

• Trap when process attempts to reference a virtual address in a page with Valid bit in PTE set to false

• E.g., page not in physical memory

• If page exists on disk:–• Suspend process• If necessary, throw out some other page (& update its PTE)• Swap in desired page, resume execution

• If page does not exist on disk:–• Return program error

or• Conjure up a new page and resume execution

– E.g., for growing the stack!

Page 15: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 15

Steps in Handling a Page Fault

Page 16: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 16

Definition — Backing Storage

• A place on external storage medium where copies of virtual pages are kept

• Usually a hard disk (locally or on a server)

• Place from which contents of pages are read after page faults

• Place where contents of pages are written if page frames need to be re-allocated

Page 17: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 17

Backing Storage

• Executable code and constants:–• The loadable image file produced by compiler

• Working memory (stack, heap, static data)• Special swapping file (or partition) on disk

• Persistent application data• Application data files on local or server disks

Page 18: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 18

Requirement for Paging to Work!

• Machine instructions must be capable of restarting

• If execution was interrupted during a partially completed instruction, need to be able to – continue or – redo without harm

• This is a property of all modern CPUs …– … but not of some older CPUs!

Page 19: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 19

Note

• Protection bits are important part of paging

• A process may have valid pages that are• not writable

• execute only

• etc.

• E.g., setting PTE protection bits to prohibit certain actions is a legitimate way of detecting the first action to that page.

Page 20: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 20

Example

• A page may be logically writable, as required by the application, but …

• … setting PTE bits to disallow writing is a way of detecting the first attempt to write

• Take some action

• Reset PTE bit

• Allow process to continue as if nothing happened

Page 21: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 21

Questions?

Page 22: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 22

Observations

• Recurring themes in paging– Temporal Locality – locations referenced

recently tend to be referenced again soon– Spatial Locality – locations near recent

references tend to be referenced soon

• Definitions– Working set: The set of pages that a process

needs to run without frequent page faults– Thrashing: Excessive page faulting due to

insufficient frames to support working set

Page 23: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 23

Paging Issues

• #1 — Page Tables can consume large amounts of space– If PTE is 4 bytes, and use 4KB pages, and have 32 bit VA space

4MB for each process’s page table• Stored in main memory!

– What happens for 64-bit logical address spaces?

• #2 — Performance Impact– Converting virtual to physical address requires multiple operations

to access memory • Read Page Table Entry from memory!• Get page frame number• Construct physical address • Assorted protection and valid checks

– Without fast hardware support, requires multiple memory accesses and a lot of work per logical address

Page 24: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 24

Issue #1: Page Table Size

• Process Virtual Address spaces– Not usually full – don’t need every PTE – Processes do exhibit locality – only need a subset of the

PTEs

• Two-level page tables• I.e., Virtual Addresses have 3 parts

– Master page number – points to secondary page table– Secondary page number – points to PTE containing

page frame #– Offset

• Physical Address = offset + startof (PFN)

Page 25: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 25

Two-level page tables

pageframe 0

pageframe 1

pageframe 2

pageframe Y

pageframe 3

physical memory

offset

physical address

page frame #

masterpage table

secondary page#

virtual address

master page # offset

secondarypage table #secondary

page table # addr

page framenumber

Page 26: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 26

Two-level page tables

pageframe 0

pageframe 1

pageframe 2

pageframe Y

pageframe 3

physical memory

offset

physical address

page frame #

masterpage table

secondary page#

virtual address

master page # offset

secondarypage table #secondary

page table # addr

page framenumber

12 bits

12 bits

8 bits

Page 27: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 27

Note

• Note: Master page number can function as Segment number– previous topic

• n-level page tables are possible, but rare in 32-bit systems

Page 28: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 28

Multilevel Page Tables

• Sparse Virtual Address space – very few secondary PTs ever needed

• Process Locality – only a few secondary PTs needed at one time

• Can page out secondary PTs that are not needed now– Don’t page Master Page Table– Save physical memory

However• Performance is worse

– Now have 3 (or more) memory accesses per virtual memory reference or instruction fetch

• How do we get back to about 1 memory access per VA reference?– Problem #2 of “Paging Issues” slide

Page 29: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 29

Paging Issues

• Minor issue – internal fragmentation– Memory allocation in units of pages (also file allocation!)

• #1 — Page Tables can consume large amounts of space– If PTE is 4 bytes, and use 4KB pages, and have 32 bit VA space -

> 4MB for each process’s page table– What happens for 64-bit logical address spaces?

• #2 — Performance Impact– Converting virtual to physical address requires multiple operations

to access memory • Read Page Table Entry from memory!• Get page frame number• Construct physical address • Assorted protection and valid checks

– Without fast hardware, requires multiple memory accesses and a lot of work per logical address

Page 30: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 30

Solution — Associative Memoryaka Dynamic Address Translation — DATaka Translation Lookaside Buffer — TLB

• Do fast hardware search of all entries in parallel for VPN

• If present, use page frame number (PFN) directly

• If not,a) Look up in page table (multiple accesses)

b) Load VPN and PFN into Associative Memory (throwing out another entry as needed)

VPN # Frame #

Page 31: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 31

Translation Lookaside Buffer (TLB)

• Associative memory implementation in hardware– Translates VPN to PTE (containing PFN)– Done in single machine cycle

• TLB is hardware assist– Fully associative – all entries searched in parallel with

VPN as index– Returns page frame number (PFN)– MMU use PFN and offset to get Physical Address

• Locality makes TLBs work– Usually have 8–1024 TLB entries– Sufficient to deliver 99%+ hit rate (in most cases)

• Works well with multi-level page tables

Page 32: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 32

MMU with TLB

Page 33: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 33

Typical Machine Architecture

CPU

BridgeMemoryMemoryMemory Graphics

I/O device I/O device I/O device I/O device

MMU and TLBlive here

Page 34: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 34

TLB-related Policies

• OS must ensure that TLB and page tables are consistent– When OS changes bits (e.g. protection) in PTE, it must invalidate

TLB copy– If dirty bit is set in TLB, write it back to page table entry

• TLB replacement policies– Random– Least Recently Used (LRU) – with hardware help

• What happens on context switch?– Each process has own page tables (multi-level)– Must invalidate all TLB entries– Then TLB fills as new process executes– Expensive context switches just got more expensive!

• Note benefit of Threads sharing same address space

Page 35: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 35

Alternative Page Table format – Hashed

• Common in address spaces > 32 bits.

• The virtual page number is hashed into a page table. This page table contains a chain of VPNs hashing to the same value.

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

• Still uses TLB for execution

Page 36: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 36

Hashed Page Tables

Page 37: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 37

Alternative Page Table format – Inverted

• One entry for each real page of memory.• Entry consists of virtual address of page stored at

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 a few page-table entries.

• Still uses TLB to speed up execution

Page 38: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 38

Inverted Page Table Architecture

See also Tanenbaum, Fig 3-14

Page 39: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 39

Inverted Page Table Architecture (cont’d)

• Apollo Domain systems

• Common in 64-bit address systems

• Supported by TLB• Next topic helps to quantify size of TLB

Page 40: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 40

Paging – Some Tricks

• Shared Memory– Part of virtual memory of two or more

processes map to same frames• Finer grained sharing than segments

• Data sharing with Read/Write

• Shared libraries with eXecute

– Each process has own PTEs – different privileges

Page 41: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 41

Shared Pages (illustration)

Page 42: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 42

Paging trick – Copy-on-write (COW)

• During fork()– Don’t copy individual pages of virtual memory– Just copy page tables; all pages start out shared– Set all PTEs to read-only in both processes

• When either process hits a write-protection fault on a valid page– Make a copy of that page for that process, set write

protect bit in PTE to allow writing– Resume faulting process

• Saves a lot of unnecessary copying– Especially if child process will delete and reload all of

virtual memory with call to exec()

Page 43: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 43

Definition — Mapping

• Mapping (a part of) virtual memory to a file =

• Connecting blocks of the file to the virtual memory pages so that– Page faults in (that part of) virtual memory

resolve to the blocks of the file– Dirty pages in (that part of) virtual memory are

written back to the blocks of the file

Page 44: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 44

Warning — Memory-mapped Files

• Tempting idea:–– Instead of standard I/O calls (read(), write(),

etc.) map file starting at virtual address X– Access to “X + n” refers to file at offset n– Use paging mechanism to read file blocks into

physical memory on demand … – … and write them out as needed

• Has been tried many times• Rarely works well in practice

Hard to program; even

Harder to manage performance

Page 45: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 45

Virtual Memory Organization

0x00000000

0xFFFFFFFF

Virtual

address space

program code(text)

static data

heap(dynamically allocated)

stack(dynamically allocated)

PC

SP

From an

earlier to

pic

Page 46: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 46

Virtual Memory Organization

program code& constants

static data

heap(dynamically allocated)

stack(dynamically allocated)

PC

SP

Mapped to read-only executable file

Map to writable swap file

Map to writable swap file

Map to writable swap file

Unmapped, may be dynamically mapped

guard page (never mapped)

Page 47: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 47

thread 3 stack

Virtual Memory Organization (continued)

program code& constants

static data

heap

thread 1 stack

PC (T2)

SP (T2)thread 2 stack

SP (T1)

SP (T3)

PC (T3)

guard page (never mapped)

guard page

guard page

Mapped to read-only executable file

Map to writable swap file

Unmapped, may be dynamically mapped

Map to writable swap file

Map to writable swap file

Page 48: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 48

Virtual Memory Organization (continued)

• Each area of process VM is its own segment (or sequence of segments)

• Executable code & constants – fixed size

• Shared libraries

• Static data – fixed size

• Heap – open-ended

• Stacks – each open-ended

• Other segments as needed– E.g., symbol tables, loader information, etc.

Page 49: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 49

Virtual Memory – a Major OS Abstraction

• Processes execute in virtual memory, not physical memory

• Virtual memory may be very large• Much larger than physical memory

• Virtual memory may be organized in interesting & useful ways

• Open-ended segments

• Virtual memory is where the action is!• Physical memory is just a cache of virtual memory

Page 50: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 50

Reading Assignment

• Tanenbaum– §§ 3.1-3.2 (previous topic – Memory

Management)

– § 3.3 (this topic on Paging)

Page 51: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 51

Related topic – Caching

Page 52: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 52

Definition — Cache

• A small subset of active items held in fast storage while most of the items are in much larger, slower storage– Virtual Memory

• Very large, mostly stored on (slow) disk

• Small working set in (fast) RAM during execution

– Page tables• Very large, mostly stored in (slow) RAM

• Small working set stored in (fast) TLB registers

Page 53: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 53

Caching is Ubiquitous in Computing

• Transaction processing• Keep records of today’s departures in RAM while records of

future flights are on disk

• Program execution• Keep the bytes near the current program counter in on-chip

memory while rest of program is in RAM

• File management• Keep disk maps of open files in RAM while retaining maps of

all files on disk

• Game design• Keep nearby environment in cache of each character

• …

Page 54: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 54

Caching issues

• When to put something in the cache• What to throw out to create cache space for new

items• How to keep cached item and stored item in sync

after one or the other is updated• How to keep multiple caches in sync across

processors or machines• Size of cache needed to be effective• Size of cache items for efficiency• …

Page 55: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 55

Caching issues

• When to put something in the cache• What to throw out to create cache space for new

items• How to keep cached item and stored item in sync

after one or the other is updated• How to keep multiple caches in sync across

processors or machines• Size of cache needed to be effective• Size of cache items for efficiency• …

This is a very

important list!

Page 56: PagingCS-3013 A-term 20091 Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum

PagingCS-3013 A-term 2009 56

Questions?