캐시 관련 질문 미리보기
Q1. 캐시란 무엇인가요?
Q2. 캐시의 장단점와 어떤 부분에 활용하는지 설명해주세요.
Q3. 캐시 적중률에 대해 설명해보세요.
Q4. 캐시 지역성이란 무엇인가요?
Q5. 캐시 미스(Cache Miss)와 캐시 히트(Cache Hit)의 차이는 무엇인가요?
메모리 계층은 레지스터
, 캐시
, 메모리(주기억장치)
,저장장치(보조기억장치)
로 구성되어 있습니다.
CPU가 직접 접근 가능한 계층: 레지스터, 캐시, 메모리
CPU가 직접 접근 불가능한 계층: 저장장치 (필요한 데이터를 메모리로 이동시켜야 접근이 가능합니다.)
캐시 적중률은 CPU가 사용할 데이터를 캐시에서 탐색 했을 때, 원하는 데이터가 캐시에 존재할 확률을
의미합니다.
캐시가 효율적으로 동작하려면, 캐시의 적중률을 극대화 시켜야 합니다.
캐시 적중률을 높일 수 있는 방법은 다음과 같습니다:
지역성(Locality)
은 프로그램이 실행되는 동안 데이터 접근 패턴이 특정 부분에 집중되는 특성을 말합니다.
시간 지역성
공간 지역성
CPU가 요청한 데이터가 캐시에 존재하여, 캐시에서 데이터를 성공적으로 가져오는 경우를 의미
캐시 히트가 발생하면, 메인 메모리나 디스크에 접근할 필요 없이 캐시에서 빠르게 데이터를 읽어올 수 있기 때문에 데이터 접근 시간이 크게 단축됩니다.
CPU가 요청한 데이터가 캐시에 존재하지 않아, 메인 메모리나 디스크에서 데이터를 가져와야 하는 경우를 의미
캐시 미스가 발생하면, 데이터 접근 시간이 길어져 시스템 성능이 저하됩니다.
Q1. 캐시란 무엇인가요?
캐시 메모리는 CPU와 메인 메모리 사이에서 자주 사용하는 데이터를 빠르게 제공하기 위해 사용되는 고속 메모리입니다. CPU가 자주 사용하는 데이터를 미리 저장해, 메인 메모리보다 더 빠르게 접근할 수 있도록 합니다.
Q2. 캐시의 장단점와 어떤 부분에 활용하는지 설명해주세요.
캐시의 장점은 두 가지가 있습니다. 첫째, 속도 향상
입니다. 캐시는 CPU와 메모리 간의 속도 차이를 줄여 프로그램 실행 속도를 높입니다. 둘째, 효율적인 데이터 접근
입니다. 자주 사용하는 데이터를 캐시에 저장해 CPU가 더 빠르게 접근할 수 있게 합니다.
단점으로는, 첫째, 비용
이 있습니다. 캐시 메모리는 빠르지만 가격이 비싸고 용량이 제한적입니다. 둘째, 복잡성
입니다. 캐시를 효과적으로 관리하려면 복잡한 설계가 필요합니다.
캐시는 웹 캐시와 데이터베이스 캐시에서 많이 활용 됩니다. 웹 캐시
는 자주 요청되는 웹 페이지를 저장해 로딩 시간을 단축하고, 데이터베이스 캐시
는 자주 쿼리되는 데이터를 저장해 응답 시간을 줄입니다.
Q3. 캐시 적중률에 대해 설명해보세요.
캐시 적중률은 CPU가 요청한 데이터가 캐시에 존재하여, 캐시에서 데이터를 성공적으로 가져오는 비율을 의미합니다. 이는 전체 데이터 접근 중에서 캐시 히트가 발생한 횟수의 비율로 계산됩니다.
Q4. 캐시 지역성이란 무엇인가요?
캐시 지역성
은 프로그램이 실행되는 동안 데이터 접근 패턴이 특정 부분에 집중되는 특성을 의미합니다. 이는 캐시의 효율성을 극대화하는 데 중요한 역할을 합니다. 캐시 지역성은 다음과 같은 두 가지 주요 유형이 있습니다.
첫째, 시간 지역성
입니다. 이는 동일한 데이터가 짧은 시간 내에 여러 번 접근되는 특성을 말합니다.
둘째, 공간 지역성
입니다. 이는 특정 데이터가 접근될 때, 그와 가까운 위치에 있는 데이터도 곧 접근될 가능성이 높은 특성을 말합니다.
Q5. 캐시 미스(Cache Miss)와 캐시 히트(Cache Hit)의 차이는 무엇인가요?
캐시 미스
는 CPU가 원하는 데이터가 캐시에 없는 경우를 말하며, 이 경우 메인 메모리에서 데이터를 읽어와야 하므로 더 느린 속도로 접근합니다.
반면, 캐시 히트
는 CPU가 원하는 데이터가 캐시에 이미 존재하는 경우를 말합니다. 이 경우 메인 메모리보다 더 빠른 속도로 데이터를 읽을 수 있습니다.
ref.
https://github.com/4z7l/tech_interview.zip/blob/main/%EC%A7%81%EB%AC%B4/OperatingSystem.md
https://imbf.github.io/interview/2020/11/26/NAVER-Interview-Preparation-1.html
https://velog.io/@abcwockd95/기술면접-캐시
https://chelseashin.tistory.com/43
https://serylee.tistory.com/55
https://thebook.io/080367/0078/