Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.