Skip to content

리눅스 시스템에서의 캐쉬

다음은 리눅스에서 사용하는 캐시의 종류와 설명입니다.

1. Buffer Cache
블럭 디바이스 드라이버(Block Device Driver)가 사용하는 데이터 버퍼입니다.
고정된 크기(블럭 단위)단위 별로 블럭 장치에서 읽기/쓰기 동작할 때마다 사용되며, 블럭 장치는 버퍼 캐스(Buffer cache)를 통해서만 접근 하도록 하고 있습니다.
또한 데이터가 필요할 때 버퍼 캐시에서 먼저 발견된다면, 물리적인 블럭 장치로부터는 읽을 필요가 없으므로 휠씬 빠르게 접근할 수 있개되는 것입니다.

2.Page Cache
디스크의 이미지와 데이터에 접근하는 속도를 높이기 위해서 사용되는 캐쉬입니다.
논리적인 내용을 페이지 단위로 캐쉬하며, 디스크에서 페이지들을 읽어들이면 페이지 캐쉬에 저장되도록 되어있습니다.
역시 한번 로딩된 값이 페이지 캐쉬 내에 있다면 물리적인 로딩없이 캐쉬로부터 값을 가져가도록 되어있으므로 빠르게 접근할 수 있습니다.

3.Swap Cache
스왑 파일에는 더티 페이지(Dirty Page, 저장할 필요가 있는 페이지)만 저장됩니다.
이 스왑 파일에 이미 저장되어 있는 페이지들의 내용이 변경되지 않고 다시 스왑 아웃될 때에 이미 스왑에 동일한 값이 있으므로 저장되지 않고 폐기되는 것을 말합니다.

4.Hardware Cache
프로세서 내부에 있ㅈ는 페이지 테이블 엔트리(Page Table Entry)에 대한 캐쉬를 말합니다.
프로세서가 항상 페이지 테이블을 직접 읽지 않고 PTE를 참조하여 페이지에 대한 변환 결과를 캐쉬하도록 하여 속도를 향상시키는 방법입니다.
이것을 변환 참조 버퍼(Translation Look-aside Buffers)라고 불리며, PTE의 캐쉬된 복사본을 가지고 있습니다.
Published inLinux