페이지 캐시
Page cache컴퓨팅에서 페이지 캐시(디스크 [1]캐시라고도 함)는 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD)와 같은 2차 스토리지 디바이스에서 생성된 페이지의 투명 캐시입니다.운영체제는 메인메모리(RAM)의 미사용 부분에 페이지 캐시를 보관하기 때문에 캐시된 페이지의 콘텐츠에 보다 빠르게 접근할 수 있어 전체적인 퍼포먼스가 향상됩니다.페이지 캐시는 페이징 메모리 관리를 통해 커널에 구현되며 대부분 애플리케이션에 대해 투과적입니다.
통상, 애플리케이션에 직접 할당되지 않은 물리 메모리는, operating system에 의해서 페이지 캐시에 사용됩니다.그렇지 않으면 메모리가 아이돌 상태가 되어 애플리케이션이 메모리를 요구할 때 쉽게 재확보되기 때문에 일반적으로 성능 저하가 발생하지 않으며 운영체제는 메모리를 "사용 가능" 또는 "사용 가능"으로 보고할 수도 있습니다.
메인 메모리에 비해 하드 디스크 드라이브의 읽기/쓰기는 느리고 랜덤 액세스에는 고가의 디스크 검색이 필요합니다.그 결과,[2] 메모리에 캐싱할 수 있는 데이터의 양이 많아지기 때문에, 퍼포먼스가 향상됩니다.별도의 디스크 캐싱은 디스크 컨트롤러(이 경우 캐시는 하드 디스크 드라이브에 통합되어 일반적으로 디스크 버퍼라고[3] 함) 또는 디스크 어레이 컨트롤러에 있는 전용 RAM 또는 NVRAM 칩에 의해 하드웨어 측에 제공됩니다.이러한 메모리는 페이지 캐시와 혼동하지 마십시오.
메모리 절약
가져온 후 변경된 페이지 캐시의 페이지를 더티 [4]페이지라고 합니다.페이지 캐시 내의 더티하지 않은 페이지는 세컨더리 스토리지(하드 디스크 드라이브나 솔리드 스테이트 드라이브 등)에 같은 카피를 가지고 있기 때문에, 폐기나 재이용은 애플리케이션 메모리의 페이징보다 훨씬 빠릅니다.또, 대부분의 경우, 더티한 페이지를 세컨더리 스토리지로 플래시 해 재이용하는 것보다도 바람직합니다.애플리케이션이나 라이브러리와 같은 실행 가능한 바이너리도 일반적으로 페이지 캐시를 통해 액세스되고 가상 메모리를 사용하여 개별 프로세스 공간에 매핑됩니다(이는 Unix와 유사한 운영 체제의 mmap 시스템 호출을 통해 수행됩니다).이는 바이너리 파일이 다른 프로세스 간에 공유될 뿐만 아니라 바이너리의 사용되지 않는 부분이 결국 메인 메모리에서 지워져 메모리 절약으로 이어지게 된다는 것을 의미합니다.
캐시된 페이지는 쉽게 제거 및 재사용할 수 있기 때문에 Windows NT를 비롯한 일부 운영체제는 실제로 디스크 페이지에 할당되어 있는 동안 페이지 캐시 사용량을 "사용 가능한" 메모리로 보고하기도 합니다.이로 인해 Windows에서 페이지 캐시 사용률이 다소 혼란스러워졌습니다.
디스크 쓰기
페이지 캐시는 디스크에 쓰는 데도 도움이 됩니다.디스크에 데이터를 쓰는 동안 변경된 메인 메모리의 페이지는 "더러운" 것으로 표시되며, 해제되기 전에 디스크에 플러시해야 합니다.파일 쓰기가 발생하면 특정 블록의 캐시된 페이지가 조회됩니다.페이지 캐시에 이미 있는 경우는, 메인 메모리내의 그 페이지에 기입이 행해집니다.페이지 캐시에서 찾을 수 없는 경우 쓰기가 페이지 크기 경계에 완전히 도달하면 디스크에서 페이지가 읽히지 않고 할당되어 즉시 더티 마크가 붙습니다.그렇지 않으면 디스크에서 페이지를 가져와 요청된 수정이 수행됩니다.페이지 캐시에서 작성 또는 열었지만 기록되지 않은 파일은 나중에 읽을 때 0바이트 파일이 될 수 있습니다.
그러나 프로그램 코드가 읽기 전용 또는 쓰기 시 복사로 매핑되기 때문에 캐시된 모든 페이지를 쓸 수 있는 것은 아닙니다.후자의 경우 코드 수정은 프로세스 자체에서만 볼 수 있으며 디스크에 기록되지 않습니다.
사이드 채널 공격
2019년에 보안 연구진은 페이지 캐시에 대한 사이드 채널 공격을 시연했습니다.일부 파일 페이지(예: 실행 파일 또는 라이브러리 파일)[5]가 캐시에 존재하는지 여부를 체계적으로 모니터링하여 권한 분리를 우회하고 다른 프로세스에 대한 데이터를 유출할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Robert Love (2005-01-12). "Linux Kernel Development (Second Edition), Chapter 15. The Page Cache and Page Writeback". makelinux.net. Sams Publishing. Retrieved 2015-07-24.
- ^ "Disk Cache". Webopedia. September 1996.
- ^ Mark Kyrnin. "What to Look for in a Hard Drive". about.com. Retrieved 2014-12-20.
A drive's buffer is an amount of RAM on the drive to store frequently accessed data from the drive.
- ^ "Glossary - TechNet Library". Microsoft.
- ^ Gruss, Daniel; Kraft, Erik; Tiwari, Trishita; Schwarz, Michael; Trachtenberg, Ari; Hennessey, Jason; Ionescu, Alex; Fogh, Anders (2019-01-04). "Page Cache Attacks". arXiv:1901.01161 [cs.CR].