[CS] 메모리 계층

cs운영체제
avatar
2025.04.17
·
6 min read

5231

레지스터

  • CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적음

캐시

  • L1, L2 캐시를 지칭

  • 휘발성, 속도 바름, 기억 용량이 적음

주기억장치

  • RAM을 가리킴

  • 휘발성, 속도 보통, 기억 용량 보통

보조기억장치

  • HDD, SDD

  • 비휘발성, 속도 낮음, 기억 용량이 많음

계층 위로 올라갈수록 가격은 비싸기조 용량은 작아지고 속도는 빨라짐
-> 경제성과 캐시

캐시

  • 데이터를 미리 복사해 놓은 임시 저장소

  • 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상 줄이기 위한 메모리

  • 캐싱계층 = 메모리와 CPU 사이의 속도 차이가 너무 커서 중간에 레지스터 계층을 둬 속도 차이를 해결

지역성의 원리

  • 자주 사용하는 데이터를 기반으로 설정 -> 지역성

  • 시간 지역성, 공간 지역성
    시간 지역성

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

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

캐시히트와 캐시미스

  • 캐시히트 - 캐시에서 원하는 데이터를 찾은 것

  • 캐치미스 - 해당 데이터가 캐시에 없다면 주메모리로 가서 데이터를 찾아오는 것

5232

캐시매핑 - 캐시가 히트되기 위해 매핑하는 방법

  • CPU의 레지스터와 주 메모리 간에 데이터를 주고받을 때를 기반으로 설명

  • 레지스터: 주 메모리에 비하면 굉장히 작고 주 메모리는 굉장히 큼

  • 작은 레지스터가 캐시 계층으로써 역할을 잘 해주려면 매핑을 어떻게 하느냐가 중요

  • 직접 매핑, 연관 매핑, 집합 연관 매핑

웹 브라우저의 캐시

  • 소프트웨어적인 대표적인 캐시
    - 웹 브라우저의 작은 저장소 쿠키, 로컬 스토리지, 세션 스토리지

  • 사용자의 커스텀 정보, 인증 모듈 관련 사항들을 웹 브라우저에 저장해서 추후 서버에 요청할 때 자신을 나타내는 아이덴티티나 중복 요청 방지를 위해 쓰이며 오리진에 종속됨

쿠키

  • 만료 기한이 있는 키-값 저장소

  • 설정할 때는 document.cookie로 쿠키를 볼 수 없게 httponly 옵션을 거는 것이 중요

  • 클라이언트/서버에서 만료 기한 등을 정할 수 있는데 보통 서버에서 기한을 정함

로컬 스토리지

  • 만료기한이 없는 키-값 저장소

  • 5MB까지 저장 가능

  • 웹 브라우저를 닫아도 유지됨

  • HTML5를 지원하지 않는 웹 브라우저에서는 사용할 수 없음, 클라이언트에서만 수정 가능

세션 스토리지

  • 만료기한이 없는 키-값 저장소

  • 탭 단위로 세션 스토리지를 생성

  • 탭을 닫을 때 해당 데이터가 삭제 됨

  • 5MB까지 저장 가능

  • HTML5를 지원하지 않는 웹 브라우저에서는 사용할 수 없음, 클라이언트에서만 수정 가능

데이터베이스의 캐싱 계층

  • 데이터베이스 시스템을 구축할 때도 메인 데이터베이스 위에 레디스 데이터베이스 계층을 캐싱계층으로 둬서 성능을 향상시킴

5233

▲ 레디스 캐싱 계층 아키텍처


출처: 면접을 위한 CS 전공지식 노트 - 주홍철
(https://search.shopping.naver.com/book/catalog/32478035848?cat_id=50010920&frm=PBOKMOD&query=%EB%A9%B4%EC%A0%91%EC%9D%84+%EC%9C%84%ED%95%9C+CS+%EC%A0%84%EA%B3%B5%EC%A7%80%EC%8B%9D+%EB%85%B8%ED%8A%B8&NaPm=ct%3Dm9gtudi8%7Cci%3D1ae0d4a967a6326e65b8cd07909c10e8a4b5b176%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3Dbebaac09030b20bc63af2685d6851568f8916383)