CS/OS

메모리

Hamp 2024. 9. 22. 14:07
반응형

메모리 계층

  1. 레지스터
    • CPU 안에 있는 작은 메모리, 휘발성, 가장 빠른속도, 가장 적은 용량
  2. 캐시
    • 데이터를 미리 복사해 놓는 임시 저장소
    • 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리
    • 위치는 CPU의 레지스터와 주기억장치 사이에 위치한다
    • 같은 의미로 캐시 계층이라는 의미는 속도 차이를 해결하기 위해 계층과 계층 사이에 있는 계층을 의마하며
      캐시 메모리와 보조기억장치 사이에 있는 주기억장치를 보조기억장치의 캐싱 계층이라고 부를 수 있다.
    • 휘발성, 빠른속도, 적은 용량을 같는다. 캐시는 L1 ~ L3 까지있다.
  3. 주기억장치
    • RAM을 지칭하며 휘발성, 보통 속도, 용량 보통 
  4. 보조기억장치
    • 휘발성, 낮은 속도, 큰 용량

캐시

캐시를 데이터 기반으로 설명한다면 다음 특징과 함께 설명할 수 있다.

 

시간 지역성 [ temporal locality ]

  • 최근 사용한 데이터를 접근하는 특성

공간 지역성 [ spatial locality ]

  • 최근 접근한 데이터를 이루고 있는 공간이나 그 가까운 공간에 접근하는 특성
  • 배열을 접근할 때를 예로 들 수 있다.

 

다음은 캐시에서 데이터를 찾았을 때와 못 찾앗을 때를 부르는 단어를 알아보자

  • 캐시히트
    • 캐시에서 데이터를 찾았을 때
  • 캐시미스
    • 캐시에 데이터가 없어 주기억장치에서 데이터를 가져올 때

 

웹 브라우저의 캐시

실제 웹에서 캐시 역할을 하는 저장소들을 살펴보자.

 

쿠키

  • 만료기한이 있는 key-value 저장소
  • 최대 4KB 까지 저장가능
  • 클라이언트와 서버에서 만료기한을 정할 수 있으며 보통 서버에서 지정한다.
  • 서버가 응답할 때 HeaderSet-Cookie 필드를 통해 쿠키를 지정한다. 
  • 쿠키를 서버로부터 받으면  클라이언트는 동일한 서버에 reqeust 시 쿠키에 대한 데이터를 함께 전송하다.
  • 위 특징을 통해 아래 와 같은 목적으로 사용된다.
    1. 세션 관리: 서버에 저장해야할 로그인, 장바구니, 게임스코어 등 개인정보 관리
    2. 개인화: 각 사용자에게 적절한 페이지를 보여줌 (.사용자 선호 테마 등 세팅 등)
    3. 트래킹: 사용자의 행동과 패턴 분석을 기록하는 용도

세션 스토리지

  • 만료기한이 없는 key-value wjwkdth
  • 탭 단위로 세션 스토리지를 생성하며 탭을 닫을 때 데이터가 삭제된다.
  • 5MB까지 저장 가능 
  • 클라이언트에서만 수정 가능

로컬 스토리지

  • 만료기한이 없는 key-value 저장소
  • 브라우저를 닫아도 유지되며 도메인 단위로 저장
  • 10MB 까지 저장 가능
  • 클라이언트에서만 수정 가능
  •  

데이터 베이스의 캐싱 계층

데이터베이스 시스템을 구축할 때 메인 데이터 베이스 위에 redis 데이터 베이스 계층을
"캐싱 계층"으로 둬서 성능을 향상 시키기도 한다.


메모리 접근 순서도

마지막으로 메모리를 실질적으로 어떤식으로 접근하는 지 그림으로 정리하며 마무리해보자.

 

 

여기서 주기억장치에서 가져온 데이터를 모두 캐시에 적재하는 것은 아니다.


왜냐하면 주기억장치와 용량의 큰 차이가 있기때문에 캐시 정책(: LRU, FIFO ) 따라

어떤 데이터를 캐시에 올릴지 결정한다.

 

또한 여기서 캐시 메모리가 빠른이유가 나오는데 캐시는 우취도 가깝고 CPU 내부 버스 기반으로 작동한다.

하지만 캐시 미스가 발생하면 메모리에서 가져오게 되는데 이 때 시스템 버스를
기반으로 작동하기 때문에 다소 느리게 작동한다. 


참고

 

[Web] 웹 브라우저 쿠키(Cookie)와 세션(Session)의 개념

어떠한 사이트에 한 번 로그인을 하고 나면 사이트 내 여러 페이지들을 접속할 때 로그인이 유지되거나 혹은 ID, PW를 저장해두어 며칠 뒤 재 접속을 하더라도 다시 입력하지 않고 자동 로그인 되

dream-and-develop.tistory.com

 

반응형