페이지 캐시 (Page Cache)
리눅스 토발즈가 1995년에 리눅스 운영체제의 파일 시스템 관리를 개선하기 위해 가상 파일 시스템(VFS)과 실제 파일 시스템(FS) 사이에 캐시 계층을 도입하면서 이를 페이지 캐시
라고 부르게되었다
간단하게 리눅스의 파일 시스템 캐시 방식
이라고 보면 된다
파일 시스템 캐시의 정의는
파일 I/O 가 발생하면 캐시 레이어에 파일 핸들별로 파일 데이터를 캐싱해놓고 동일한 파일에 대한 I/O 발생 시 디스크가 아닌 메모리상의 캐시 데이터를 읽고쓰도록하여 파일 I/O 속도를 빠르게 하기 위한 목적이다.
❕
쓰기의 경우 캐시 메모리상의 데이터를 변경하고 해당 캐시의 데이터가
변경되었음을 알리는 dirty(변경됨) 플래그를 ON한다 그러면 운영체제의
쓰기용 워커 스레드(flusher thread)
가 주기적으로 dirty 플래그가 ON
되어있는 캐시들을 찾아서 디스크에 쓰게 된다
이렇게 뒤늦게 디스크에 쓰이는 것을 쓰기 지연(writeback) (opens in a new tab) 이라고 한다
흔히 알고있는 가상 메모리를 페이지 단위로 관리하는 페이징 매커니즘과 다른 용어다
❔
"아니 그럼 그냥 파일 시스템 캐시라고 하지 왜 페이지 캐시라고 부르는거야?"
필자는 처음에 위와 같은 의문이 들었다.
찾아보니 그냥 페이지 단위
로 캐싱하는 방식이라 페이지 캐시
라고 부르게된 것 같다.