Soft Ware/Windows 구조와 원리

캐시 인터페이스

달려가보자 2012. 1. 4. 15:37

캐시 관리자는 파일 시스템이 파일 데이터의 캐싱을 원할때 사용할수 있도록 복사 , 고정,
 MDL(Memory Descriptor List) 이 라는 세 가지 종류의 인터페이스를 제공

(1) 복사 인터페이스

1. 파일 시스템이 데이터에 대해 처음으로 발생하는 파일 액세스로 판단하면 파일 캐싱을 초기화한다.

         ↓

2. 이때 캐시 관리자는 공유된 캐시 맵을 생성한다.

                                  ↓

3. 파일 시스템은 캐시 관리자가 제공하는 복사 인터페이스인 CcCopyRead()함수를 호출

                                 ↓

4. CcCopyRead() 함수는 파일의 공유된 캐시 맵 구조체를 조사 

                                ↓

5.  캐시 관리자는 'Active'로 표시되지 않은 VACB(Virtual Address  Control Blocks)를 찾으며
이를 'Active' 상태로 표시
하고, 다른 파일 데이터가 매핑되어 있는지 조사 

                              

6. 캐시 관리자는 VACB에 있는 공유된 캐시 맵 포인터를 조사하고, 이 포인터가 유효하면 이전에
    사용 했던 캐시 슬롯에 대한 매핑을 해제

                              ↓

7. 메모리 관리자를 호출하여 파일 블록을 캐시의 가상 주소 영역으로 매핑
   
                             ↓

8. 캐시 메모리에서 애플리케이션이 제공한 버퍼로 메모리 복사를 수행

--> 애플리케이션이 파일에 있는 데이터의 각 페이지를 처음으로 액세스하면 어떤 물리 메모리도
      가상 메모리와 연결 되어 있지 않기 때문에 페이지 오류 가 발생 

                           ↓

9. 파일의 일부분과 일치하는 가상 메모리를 결정하고 , 이 가상 메모리와 연결하기 위한 물리 메모리를 할당 

                          

10. 메모리 관리자는 디스크에서 파일의 내용을 읽어 가상 메모리에 저장하도록 파일 시스템 드라이버를 호출 

                        

11. 애플리케이션의 버퍼로 성공적으로 복사하도록 캐시 관리자를 호출
--> 복사가 완료되면 VACB에 있는 액티브 카운트는 감소

'Soft Ware > Windows 구조와 원리' 카테고리의 다른 글

비동기 프로시저 콜 < APC > 에 대해서 ~~  (0) 2012.02.19
인터럽트 처리 방법 및 인터럽트 오브젝트 !!!  (0) 2012.02.16
지연 쓰기 란  (0) 2012.01.04
캐시 관리자  (0) 2012.01.04
스레드  (0) 2011.11.16