Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "计算机系 信息处理实验室 Lecture 14 Cache Manager"— Presentation transcript:

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

2 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

3 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

4 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

5 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

6 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

7 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 7 The memory manager Cache manager Memory manager Physical pages Virtual memory

8 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

9 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 9 Coherent caching scheme

10 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

11 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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)

12 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

13 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

14 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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.)

15 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

16 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 16 System cache address space

17 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 17 Round-robin

18 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 18 Cache Size how Windows 2000 computes the size of the system cache ? Cache Virtual Size ? Cache Physical Size ?

19 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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 PlatformAddress Range Min/Max Virtual Size x86 2-GB system space 0xC1000000-E0FFFFFF, 0xA4000000-BFFFFFFF 64-960 MB x86 1-GB system space0xC1000000-DBFFFFFF64-432 MB x86 1-GB system space with Terminal Services 0xC1000000-DCFFFFFF64-448 MB

20 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 20 Cache Physical Size The Windows 2000 Task Manager doesn't report the size of the system cache

21 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 21 Some Confused concepts system cache system cache working set system working set Some System Variables Memory: System Cache Resident Bytes MmSystemCachePage Memory: Cache Bytes MmSystemCacheWs.WorkingSetSize Memory: Cache Bytes Peak MmSystemCacheWs.Peak Memory: Cache Faults/Sec MmSystemCacheWs.PageFaultCount A part

22 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

23 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 23 Systemwide Cache Data Structures system cache and virtual address control blocks (VACBs) VACB structure 256KB

24 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 24 Per-File Cache Data Structures File Handle

25 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 25 If read file Is the file in the cache? If so, which VACB, if any, refers to the requested location? VACB index arrays

26 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 26 Cache Operation Write-Back Caching and Lazy Writing Intelligent Read-Ahead

27 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

28 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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 Threshold SmallPhysical pages/8 MediumPhysical pages/4 LargeSum of the above two

29 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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

30 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 30 Write Through Caching Win32 CreateFile function Specifies FILE_FLAG_WRITE_THROUGH flag Or, Win32 FlushFileBuffers function

31 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 31 Flushing Mapped Files

32 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 32

33 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 33

34 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 34

35 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 35

36 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 36 Cache support routines

37 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 37 Copying to and from the Cache Kernel-Mode Functions for Copying to and from the Cache CcCopyRead CcFastCopyRead CcCopyWrite CcFastCopyWrite

38 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 38 Mapping and Pinning Functions for Finding Metadata Locations CcMapData CcPinRead CcPreparePinWrite CcPinMappedData CcSetDirtyPinnedData CcUnpinData

39 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding the Inside of Windows2000 39 DMA Functions That Create the DMA Interface CcMdlRead CcMdlReadComplete CcMdlWrite CcMdlWriteComplete MDL: Memory descriptor list

40 计算机系 信息处理实验室 xlanchen@05/27/2005Understanding 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


Download ppt "计算机系 信息处理实验室 Lecture 14 Cache Manager"

Similar presentations


Ads by Google