Cache Manager Yonghyun Kim Microsoft MVP Dev 5 team leader, ESTsoft

Slides:



Advertisements
Similar presentations
© 2008 IBM Corporation IBM Systems nmon 매뉴얼. IBM Systems nmon 이란 ?  AIX 및 linux 를 위한 성능 모니터링 툴  Free  IBM 이 공식적으로 지원하는 툴은 아님  IBM UK 의 Nigel Griffiths.
Advertisements

Issues in Flash Memory. Contents  Flash Memory 개요  FTL (Flash Translation Layer)  S/W 연구분야의 이슈.
더존다스 경영전략과 비젼 1 ERP 개발부문
J-Stream part1 (Software streaming service) ▪ 팀명 : Jukdori ▪ 팀원 : 16 th 윤병호 (PL) 15 th 송인규 16 th 김영진.
/11 CUDA 를 이용한 병렬 프로그래밍 DirectX 3D 를 이용한 3D 프로그래밍
When Poll is Better than Interrupt
Project #2-2. Pintos User Program
1. 개발 시스템 개요.
Data Interface, Data mart Technology
기술 표준 6대 필수 기술 요소에 대해 지정한 그룹 IT 기술 표준에 따라 DBMS는 MS SQL과 Oracle에 대해 검토 함 구분 OS DBMS WAS Web Sever 검토대상 종합의견 x86 기반 OS(64bit 권장) 성능, 안정성 및 HW의 확장성 향상으로.
1.1 병렬처리의 한계와 가능성 1.2 병렬처리의 단위 1.3 병렬컴퓨터의 분류 1.4 병렬컴퓨터의 성능 척도
제 2장 컴퓨터 구조.
Understanding of Socket and File I/O
IT R&D Global Leader Finger Motion 인식 SoC ETRI Technology Marketing
Ablecom Type-7 IVR 에이블컴 기술연구소.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Windows CE 메모리 아키텍처 및 관리 서진호
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
Operating Systems Overview
AWR DB 보고서 분석.
Chapter 32 Analyzing Web Traffic
7장 : 캐시와 메모리.
안드로이드 기반에서 MapServer를 이용한 지도 서비스
임베디드 하드웨어 Lecture #6.
12. 데이터베이스 설계.
소프트웨어 공학 (Software Engineering)
14장. 병렬 프로세서 다루는 내용 병렬 프로세서로의 개념 병렬 처리와 병렬 컴퓨터 분류 배열 프로세서와 다중 프로세서의 개념
DSP와 TMS320F28x의 이해.
Unix Project2 <test character device 생성>
6장. 기 억 장 치 Lecture #6.
SSAS 변화된 구조와 사용자 분석 화면 구현 우철웅 기술이사 BI 사업부 인브레인.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Embedded System Porting (2)
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Geek-OS Project 정영진
운영체제 (Operating Systems)
하둡 기반 빅데이터 처리 방법.
병렬 처리/컴퓨터 기초.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
Xen and the Art of Virtualization
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
Computer System Architecture
Programmable Logic Device
제10장 파일 시스템 인터페이스(File System Interface)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux/UNIX Programming
유승석 FILE I/O File Input/Output 유승석 SD50 – C# & .NET Platform.
기억장치 관리(Memory Management)
1조 김성수 백현기 석광우 김지원 박광연.
운영체제 (Operating Systems) (Memory Management Strategies)
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
Stocker Controller System 소개
About ‘GPs’ 베트남어과 김지연 영어학과 박진형.
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
JFS operation HP Korea / Operations JFS operation.
12장. 파일 시스템 구현.
5장. 캐시 기억장치 다루는 내용 컴퓨터 본체에서 기억장치 위치 살펴보기 컴퓨터 기억장치의 계층적 구조 캐시 기억장치 원리
Chapter 12 Memory Organization
시스템 분석 및 설계 글로컬 IT 학과 김정기.
CHAPTER 04 파일 설계(FiLE Design).
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
그 미소가 아이가 사랑을 배우는 힘이 되게 하소서!
콘텐츠 디자인 황아현.
System Security Operating System.
데이터 베이스의 내부 구조.
1. 데이터베이스 환경.
임베디드 하드웨어 Lecture #6.
가상 기억장치 (Virtual Memory)
Presentation transcript:

Cache Manager Yonghyun Kim Microsoft MVP Dev 5 team leader, ESTsoft Debuglab Windows Internals study member

Cache, Do you think about it?

Maybe.. Is it Buffers?

Benefits – Virtual Block Basis OS Side Application Side Virtual Block Basis Raw data each file system Logical Block Basis Photo Data Manager Sound Data Manager Binary Data Manager

Benefits – Virtual Block Basis Cache Block in Memory Manager 256k Random Access Sequential Access Intelligent Read-Ahead File1 256k

H E L L O \n Benefits - Fast I/O void GoodFile::readFile() { char c; FILE* stream = fopen(“data.bin”, “r”); while(1) c = fread(&c, sizeof(char), 1, stream) if(‘\0’ == c) break; }

Benefits – Intelligent Read-Ahead 나는 니가 다음에 읽을 데이터를 알고 있다

Cache Coherency Both cache manager and map files use the same memory management file mapping service. Process1 Cached File view Cache Manager Memory Management File Mapping Services File block File block File block Process2 Mapped File view File block

Windows Cache Manager 모든 파일 시스템 타입들을 지원 메모리 관리자를 이용 가상 블록 기반의 Fast I/O Stream Based Caching

Cache Mechanism Overview System Cache Virtual Address After 0x80000000 Shared Cache map File1 User Mode CcCopyRead HANDLE 0x15 FILE OBJECT NTFS

Cache Mechanism Overview Virtual Address Control Block Kernel Virtual Address Space FOVA File1 256k File1 256k

Cache Size – LargeSystemCache 사용자가 선택한 UI 에 따라 LargeSystemCache 값이 바뀜

Viewing the Cache Virtual Size

Big File Processing with Cache 처리 해야 될 파일이 클 경우 허용되는 물리 메모리가 모두 파일 데이터를 캐시 하는데 쓰임

Looking at the Cache’s Working Set

Systemwide Cache Data Structures CcVacbs System VACB Array View System VACB Array System VACB Array View System VACB Array View Virtual Address of Data in system cache Pointer to shared cache map File offset Active count View

Per-file cache data structures

VACB Index Arrays

Multilevel VACB arrays

Looking at Shared and Private Cache Maps

File system interaction with cache Virtual Memory Manager Virtual Memory Page Fault 새로운 view mapping 파일 읽기 요청 File System Drvier Cache Manager IRP 요청 Cache Manager 에게 데이터 요청

File system interaction with cache Virtual Memory Manager Virtual Memory 데이터가 들어옴 데이터를 캐시로 가져옴 파일 읽음 File System Drvier Cache Manager 데이터 리턴

File Function interaction with cache Virtual Memory Manager Virtual Memory PageFault MmCreateSection MmFlushSection IoPageRead File System Drvier Cache Manager NtReadFile NtWriteFile CcCopyRead / CcFastCopyRead CcCopyWrite / CcFastCopyWrite

Fast I/O Decision tree

Intelligent Read-Ahead Asynchronous Read-Ahead with History CcReadAheadIos 를 통하여 확인 두번 읽기 요청한 파일 핸들을 보관 (private cache map) Sequential Read-Ahead CreateFile에 FILE_FLAG_SEQUENTIAL_SCAN 인자 해당 파일의 비활성 뷰를 해제 두배의 데이터를 미리 읽음(64k -> 128k)

Write-Back Caching and Lazy Writing 시스템 작업쓰레드 초당1회 실행 시스템 캐시 내 변경 페이지의 1/8을 씀 Lazy Writing CreateFile에 FILE_ATTRIBUTE_TEMPORARY 인자 물리메모리 부족이나 파일 갱신이 이루어 지지 않으면 디스크에 쓰지 않음 (시스템 성능 향상)

Write Through CreateFile에 FILE_FLAG_WRITE_THROUGH FlushFileBuffers 파일 쓰기와 변경작업의 즉시 적용 FlushFileBuffers CcDataFlushes CcDataPages

References Windows Internals Windows 구조와 원리 Channel 9 - Cache Manager

Thank you