OS - 캐시와 메모리 계층 구조

itonse·2024년 5월 21일
0

CS 스터디

목록 보기
38/56

캐시 관련 질문 미리보기

Q1. 캐시란 무엇인가요?
Q2. 캐시의 장단점와 어떤 부분에 활용하는지 설명해주세요.
Q3. 캐시 적중률에 대해 설명해보세요.
Q4. 캐시 지역성이란 무엇인가요?
Q5. 캐시 미스(Cache Miss)와 캐시 히트(Cache Hit)의 차이는 무엇인가요?


1. 메모리 계층과 캐시

(1) 메모리 계층의 구성 요소

메모리 계층은 레지스터, 캐시, 메모리(주기억장치),저장장치(보조기억장치)로 구성되어 있습니다.

이미지 출처
  • 레지스터: CPU 내부에 위치하며, 가장 빠른 메모리입니다. 즉각적인 데이터 접근과 처리가 가능합니다.
  • 캐시: CPU와 주기억장치(RAM) 사이에 위치하여, 자주 사용되는 데이터와 명령어를 저장해 CPU가 빠르게 접근할 수 있도록 합니다.
  • 메모리(주기억장치, RAM): 저장장치(HDD, SSD)로부터 일정량의 데이터를 복사해 임시로 저장하며, 이를 필요할 때마다 CPU에 빠르게 전달합니다.
  • 저장장치(보조기억장치, HDD, SSD): 대량의 데이터를 영구적으로 저장합니다. 속도는 느리지만 용량이 큽니다.

(2) 메모리 계층의 접근 가능성

CPU가 직접 접근 가능한 계층: 레지스터, 캐시, 메모리
CPU가 직접 접근 불가능한 계층: 저장장치 (필요한 데이터를 메모리로 이동시켜야 접근이 가능합니다.)

(3) 캐시 메모리의 역할

  • 캐시 메모리는 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두어, CPU가 해당 데이터를 빠르게 접근할 수 있도록 합니다.

이미지 출처
  • 또한 캐시 메모리는 CPU와 메모리 사이의 속도 차이를 완화하기 위한 역할을 합니다.



2. 캐시 적중률(Cache Hit Rate)

캐시 적중률은 CPU가 사용할 데이터를 캐시에서 탐색 했을 때, 원하는 데이터가 캐시에 존재할 확률을
의미합니다.

캐시가 효율적으로 동작하려면, 캐시의 적중률을 극대화 시켜야 합니다.

캐시 적중률을 높일 수 있는 방법은 다음과 같습니다:

1. 캐시 메모리 크기 증가

  • 더 많은 데이터를 저장할 수 있어 적중률이 높아집니다.

2. 캐시 지역성 이용

  • 지역성(Locality)은 프로그램이 실행되는 동안 데이터 접근 패턴이 특정 부분에 집중되는 특성을 말합니다.

  • 시간 지역성

    • 최근 사용한 데이터에 다시 접근하려는 특성
  • 공간 지역성

    • 최근 접근한 데이터를 이루고 있는 공간이나 그 가까운 공간에 접근하는 특성



3. 캐시히트와 캐시미스

캐시 히트

  • 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/

0개의 댓글