본문 바로가기

etc

지역성

지역성이 중요한 이유란?

cpu와 메모리 그리고 저장 장치 간의 속도 차이로 인한 병목 현상을 최소화하기 위해서는 필요한 데이터가 빠른 장치에 존재하는 것이 중요하다. 이때, 필요한 데이터의 특징에는 지역성이 존재하기 때문에 지역성을 고려한 전략이 필요한 것

1. 시간 지역성

시간적 지역성은 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성이다.

일상 예시) 티몬에서 유명가수그룹 BTS 티켓팅을 10시에 시작한다고 했을 때, 10시부터 11시까지는 고객들이 BTS의 티켓팅 정보를 많이 요청할 것이다. 이때, 티켓팅과 관련된 정보를 보조 저장 장치에서 조회하지 않고 주기억장치에서 가져온다면 데이터를 조회할 때, 더욱 빠른 속도로 처리가 가능하다.

cs 예시) 하나의 cpu에서 멀티 태스킹을 수행하기 위해서는 프로세스가 하나의 cpu를 공유하면서 사용해야한다. 프로세스는 무한정 실행하는 것이 아니라 태스크가 완료될 때까지 수행이 된다.

이때, 프로세스가 생성되고 완료되는 일정 기간 동안은 cpu에서 자주 수행된다. 이런 특징을 활용해서 실행해야할 프로세스의 정보를 담은 레지스터의 공간을 효율적으로 쓰기 위한 전략을 만들 때, 시간 지역성을 고려한 캐시 전략을 사용하는 것이 좋다.

시간 지역성이 활용된 예시

  • 가상 메모리
  • 페이징
  • 캐시 메모리

1. 공간 지역성

공간적 지역성은 기억 장치 내에 서로 인접하여 저장되어 있는 데이터들이 연속적으로 액세스 될 가능성이 높아지는 특성이다.

일상 예시) 서울에는 누가 먹어도 감탄하는 한정식 집이 있고 LA에는 누가 먹어도 감탄하는 디저트 카페가 있다. 한정식과 디저트를 동시에 먹을려면 서울에서 먹고 12시간 비행기를 타고 LA로 가서 먹어야한다. 즉 12시간이 투자해야하는 안타까운 상황!!

그래서 일론 머스크가 수많은 돈을 주고 서울에 그 디저트 카페를 옮겨버렸다. 덕분에 사람들은 한정식을 먹고 디저트를 먹는데 12시간을 쓰지않고 빠르게 먹을 수 있는데… 연속적으로 자주가는 한정식과 디저트를 묶어서 효율적으로 시간을 쓸 수 있게 하는 것이 공간 지역성을 적용한 예시라고 생각할 수 있다.

cs 예시) 특정 서비스에서 자주 요청되는 데이터를 보조 저장 장치에 저장할 때, 비슷한 블럭안에 저장하면 한번에 데이터 조회로 필요한 데이터를 모두 가져올 수 있다.

공간 지역성이 활용된 예시

  • DB 파티셔닝
  • 샤딩

'etc' 카테고리의 다른 글

[독서] 미하이 칙센트미하이의 몰입을 읽고  (1) 2024.09.11
우아한 테크 켐프 7기 2주 동안의 여정  (0) 2024.07.09
Vim 유용한 명령어 팁  (2) 2023.12.05
커스텀 스킨 셈플  (0) 2023.11.05
[알고리즘] 카랄랑 수  (0) 2023.08.24