728x90
🔑메모리 계층
- 레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량 가장 적음
- 캐시 : 휘발성, 속도 빠름, 기억 용량 적음
- 메모리, 주기억장치 : 휘발성, 속도 보통, 기억 용량 보통
- 저장 장치, 보조기억장치 : 비휘발성, 속도 느림, 기억 용량 많음
🔑램(RAM)
- 하드 디스크로부터 일정량의 데이터를 복사해 임시 저장하고 필요시마다 CPU에 빠르게 전달하는 역할
- 계층 위로 올라갈수록 비싸지지만 용량은 작아지고 속도는 빨라짐
- 경제성, 캐시 때문에 존재함
🔑캐시(cache)
- 데이터를 미리 복사해놓는 임시 저장소
- 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리
= 속도 차이를 해결하기 위해 계층 간에 있는 계층 - 데이터에 접근하는 시간이 오래 걸리는 경우를 해결하고 무언가를 다시 계산하는 시간을 절약할 수 있음
- 지역성의 원리 → 자주 사용하는 데이터의 근거가 됨
- 시간 지역성 : 최근 사용한 데이터에 다시 접근하려는 특성
- 공간 지역성 : 최근 접근한 데이터를 이루고 있는 공간이나 그 가까운 공간에 접근하는 특성
- 캐시히트와 캐시 미스
- 캐시 히트 : 캐시가 원하는 데이터를 찾음
- 캐시 미스 : 해당 데이터가 캐시에 없으면 주메모리고 가서 데이터를 찾아옴
- 캐시히트 시 해당 데이터를 제어 장치를 거쳐 가져오게 됨
→ 위치 가깝고 CPU 내부 버스를 기반으로 작동해 빠름 - 캐시미스 시 메모리에서 데이터를 가져올 때 시스템 버스를 기반으로 작동해 느림
- 캐시 매핑
- 캐시가 히트되기 위해 매핑하는 방법
- CPU의 레지스터와 주메모리간 데이터를 주고 받을 때 기반이 됨
- 용량이 작은 레지스터가 캐시 계층으로써 역할을 잘 해주려면 매핑을 어떻게 하는 지가 중요함
- 직접 매핑
- 처리가 빠르지만 충돌 발생이 잦음
- 연관 매핑
- 순서를 일치시키지 않고 관련있는 캐시와 메모리를 매핑함.
- 충돌이 적지만 모든 블록을 탐색해야 하기 때문에 속도가 느림
- 집합 연관 매핑
- 직접 + 연관 매핑의 형태
- 순서는 일치시키고 집합을 두어 저장하고 블록화가 되어있어 검색은 효율적임
- 데이터를 무작위로 저장함
- 웹브라우저의 캐시
- 사용자의 커스텀 정보나 인증 모듈 관련 사항들을 웹브라우저에 저장해 추후 서버에 요청할 때 자신을 나타내는 아이덴티티나 중복 요청 방지를 위해 사용함
- 쿠키(Cookie)
- 만료 기간이 있는 키-값 저장소
- same site 옵션을 strict로 설정하지 않았을 경우 다른 도메인에서 요청했을 때 자동 전송됨
- 4Kb까지 데이터 저장 가능
- 만료 기간을 정할 수 있음
- 쿠키 설정 시 document.cookie로 쿠키를 볼 수 없게 설정하는 것이 중요
- 로컬 스토리지
- 만료 기한이 없는 키-값 저장소
- 10mb까지 저장 가능함
- 웹 브라우저를 닫아도 유지됨
- 도메인 단위로 저장, 생성됨
- html5를 지원하지 않는 웹브라우저에서는 사용 불가능
- 클라이언트에서만 수정 가능함
- 세션 스토리지
- 만료 기한이 없는 키-값 저장소
- 탭 단위로 세션 스토리지가 생성되고 탭을 닫을 때 해당 데이터가 삭제됨
- 5mb까지 저장 가능
- html5를 지원하지 않는 웹브라우저에서는 사용 불가능
- 클라이언트에서만 수정 가능함
- 데이터베이스의 캐싱 계층
- 메인 데이터베이스 위에 레디스 데이터베이스 계층을 캐싱 계층으로 두어서 성능을 향상시킬 수 있음
728x90
'CS' 카테고리의 다른 글
[면접을 위한 CS 전공지식 노트] 3.3. 프로세스와 스레드(1) (0) | 2024.03.15 |
---|---|
[면접을 위한 CS 전공지식 노트] 3.2. 메모리 - 메모리 관리 (0) | 2024.03.04 |
[면접을 위한 CS 전공지식 노트] 3.1. 운영체제와 컴퓨터 (1) | 2024.02.26 |
[면접을 위한 CS 전공지식 노트] 2.5.HTTP (1) | 2024.02.16 |
[면접을 위한 CS 전공지식 노트] 2.4. IP주소 (0) | 2024.02.16 |