40
计计计计•计计计计计计计 Lecture 14 Cache Manager xlanchen@05/27/2005

计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

Embed Size (px)

Citation preview

Page 1: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

计算机系•信息处理实验室

Lecture 14 Cache Manager

xlanchen@05/27/2005

Page 2: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

2计算机系信息处理实验室

Cache Manager

Key Features of the Windows 2000 Cache Manager

Cache Structure

Cache Size

Cache Data Structures

Cache Operation

Cache Support Routines

Page 3: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

3计算机系信息处理实验室

Cache Manager

A set of kernel-mode functions and system threads

Provide data caching for all 2K FS drivers

Both local and network

Cooperate with the memory manager

Cache

the purpose of a cache is to keep a subset of frequently accessed data in physical memory as a way to improve I/O performance

Page 4: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

4计算机系信息处理实验室

Key Features of 2K Cache Manager

Supports all file system types (both local and network)

Uses the memory manager to control what parts of what files are in physical memory

Caches data on a virtual block basis

Supports "hints" passed by applications at file open time (such as random versus sequential access, temporary file creation, and so on)

Supports recoverable file systems

Page 5: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

5计算机系信息处理实验室

Single, Centralized System Cache

Some operating systems rely on each individual file system to cache data

2K offers a centralized caching facility

caches all externally stored data

local hard disks, floppy disks, network file servers, or CD-ROMs

user data streams or file system metadata

Page 6: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

6计算机系信息处理实验室

The memory manager

Cache held in virtual (no phys) memory

Cache manager can’t tell what’s in phys mem

Files mapped by Section Objects

Cc copies data to/from Section Object (ref I/O system)

MM pages data in and flushes it out

Each section logically n * (256-byte) views

Maintained until all handles for file x closed

Page 7: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

7计算机系信息处理实验室

The memory manager

Cache manager

Memory manager

Physical pages

Virtual memory

Page 8: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

8计算机系信息处理实验室

Cache coherency

Must ensure that any process accessing cached data will get the most recent version of that data

Example:

Process 1, open/read/write

Process 2, map into its address space

Page 9: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

9计算机系信息处理实验室

Coherent caching scheme

Page 10: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

10计算机系信息处理实验室

Virtual Block Caching

Logical blocks

Keeps track of which blocks of a disk partition are in the cache

Novell NetWare, OpenVMS, OS/2, and older UNIX systems

Virtual block caching

Keeps track of which parts of which files are in the cache

Page 11: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

11计算机系信息处理实验室

Virtual block caching

Benefits

Opens up the possibility of doing intelligent read-ahead

Allows the I/O system to bypass going to the file system for requests for data that is already in the cache (fast I/O)

Page 12: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

12计算机系信息处理实验室

Stream-Based Caching

Stream caching vs. file caching

A stream is a sequence of bytes within a file

Some file systems allow a file to contain more than one stream

NTFS

Stream caching: caching each stream independently

Page 13: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

13计算机系信息处理实验室

Recoverable File System Support

Recoverable file systems

Can reconstruct the disk volume structure after a system failure

A log file is maintained

NTFS

Page 14: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

14计算机系信息处理实验室

Recoverable File System Support

The cache manager and the file system must work together

The file system writes a log file record documenting the volume update it intends to make.

The file system calls the cache manager to flush the log file record to disk.

The file system writes the volume update to the cache; that is, it modifies its cached metadata.

The cache manager flushes the altered metadata to disk, updating the volume structure. (Actually, log file records are batched before being flushed to disk, as are volume modifications.)

Page 15: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

15计算机系信息处理实验室

Cache structure

Cache manager caches data on a virtual basis

A region of system virtual address spaces is divided into views

View: 256KB slots

See System cache address space

Page 16: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

16计算机系信息处理实验室

System cache address space

Page 17: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

17计算机系信息处理实验室

Round-robin

Page 18: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

18计算机系信息处理实验室

Cache Size how Windows 2000 computes the size of the system cache ?

Cache Virtual Size ?

Cache Physical Size ?

Page 19: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

19计算机系信息处理实验室

Cache Virtual Size

Default size : 64 MB

If physical memory is more than 16 MB :

128 MB + (64 MB - 16 MB) / 4 MB * PMEM = 896 MB

Size and Location of System Data Cache

Platform Address Range Min/Max

Virtual Size

x86 2-GB system space

0xC1000000-E0FFFFFF, 0xA4000000-BFFFFFFF

64-960 MB

x86 1-GB system space

0xC1000000-DBFFFFFF 64-432 MB

x86 1-GB system space with Terminal

Services 0xC1000000-DCFFFFFF 64-448 MB

Page 20: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

20计算机系信息处理实验室

Cache Physical Size

The Windows 2000 Task Manager doesn't report the size of the system cache

Page 21: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

21计算机系信息处理实验室

Some Confused conceptssystem cache

system cache working set

system working set

Some System VariablesMemory: System Cache Resident Bytes

MmSystemCachePage

Memory: Cache Bytes

MmSystemCacheWs.WorkingSetSize

Memory: Cache Bytes Peak

MmSystemCacheWs.Peak

Memory: Cache Faults/Sec

MmSystemCacheWs.PageFaultCount

A part

Page 22: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

22计算机系信息处理实验室

Cache data structure

to keep track of cached files

A virtual address control block

For each 256-KB slot in the system cache

A private cache map

For each separately opened cached file

A single shared cache map structure

For mapped views of the cached file

Page 23: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

23计算机系信息处理实验室

Systemwide Cache Data Structures

system cache and virtual address control blocks (VACBs)

VACB structure 256KB

Page 24: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

24计算机系信息处理实验室

Per-File Cache Data Structures File Handle

Page 25: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

25计算机系信息处理实验室

If read fileIs the file in the cache?

If so, which VACB, if any, refers to the requested location?

VACB index arrays

Page 26: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

26计算机系信息处理实验室

Cache Operation

Write-Back Caching and Lazy Writing

Intelligent Read-Ahead

Page 27: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

27计算机系信息处理实验室

Write-Back Caching and Lazy Writing

Data written to files is first stored in memory in cache pages and then written to disk later

Flush timing

Cache manager Memory manager

Demand for physical memory exceeds supply

System thread—the lazy writer

Created once per second

1/8 of the dirty pages in the system cache or more to be written to disk

Page 28: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

28计算机系信息处理实验室

Dirty Page Threshold

The number of pages that the system cache keeps in memory before waking up the lazy writer

Calculating the Dirty Page Threshold

System Memory Size Dirty Page ThresholdSmall Physical pages/8Medium Physical pages/4Large Sum of the above two

Page 29: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

29计算机系信息处理实验室

Disabling Lazy Writing for a File

Win32 CreateFile function

Specifies FILE_ATTRIBUTE_TEMPORARY to create a temporary file

The lazy writer won't write dirty pages to the disk unless there is a severe shortage of physical memory or the file is closed

To improve system performance

Page 30: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

30计算机系信息处理实验室

Write Through Caching

Win32 CreateFile function

Specifies FILE_FLAG_WRITE_THROUGH flag

Or, Win32 FlushFileBuffers function

Page 31: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

31计算机系信息处理实验室

Flushing Mapped Files

Page 32: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

32计算机系信息处理实验室

Page 33: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

33计算机系信息处理实验室

Page 34: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

34计算机系信息处理实验室

Page 35: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

35计算机系信息处理实验室

Page 36: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

36计算机系信息处理实验室

Cache support routines

File map

Cache manager

System cache

Copy read

data

Process

User space

Map

Pin

Phys. Mem. access

File System Driver

Cached file read

Noncached file read

File write

File read/write

Device Driver

Device

I/O

Memory Manager

Page fault

Per file structure

CcInitializeCacheMap

Page 37: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

37计算机系信息处理实验室

Copying to and from the Cache

Process address space

User space

Process address space

User space

System address space System cache

O

Kernel-Mode Functions for Copying to and from the Cache

CcCopyRead

CcFastCopyRead

CcCopyWrite

CcFastCopyWrite

Page 38: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

38计算机系信息处理实验室

Mapping and Pinning

File system driver

Kernel mode

System cache

metadata

Functions for Finding Metadata Locations

CcMapData

CcPinRead

CcPreparePinWrite

CcPinMappedData

CcSetDirtyPinnedData

CcUnpinData

Page 39: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

39计算机系信息处理实验室

DMA

Functions That Create the DMA Interface

CcMdlRead

CcMdlReadComplete

CcMdlWrite

CcMdlWriteComplete

Network file system

Network deviceSystem

cache

Kernel mode

DMA

DMA

Phys. Mem.

VMà PM

MDL

MDL:Memory descriptor list

Page 40: 计算机系 信息处理实验室 Lecture 14 Cache Manager xlanchen@05/27/2005

xlanchen@05/27/2005 Understanding the Inside of Windows2000

40计算机系信息处理实验室

Write Throttling

Write throttling: cache manager’s lazy writer

Upgrade system performance for large write operation

Useful for network redirectors transmitting data over slow communication line

Example: writes a large amount of data to a remote file system over a 9600-baud line