캐시의 역할은 CPU와 메모리 사이의 데이터 전송 지연속도를 개선하기 위한 전략이다.
지역성(캐싱 알고리즘)을 이용하여 캐싱할 데이터를 결정한다.
시간적 지역성은 어떤 데이터를 사용했을때 가까운 미래에 해당 데이터를 재사용한다고 믿는것이고 공간적 지역성은 어떤 데이터를 사용했을때 인접한 데이터도 사용한다고 믿는것이다.
캐싱알고리즘은 시간적, 공간적 지역성에 따라 데이터를 캐싱한다.
다이나믹 어레이는 자료가 추가되면, 해당 자료형 만큼 메모리가 추가된다. base offset + (index + 자료형 byte) ex) const a = [] a.push(1) b.push(2)
a[0] 주소는 100 이라면 a[1]의 주소는 어디인가? -> 104번지 이유는 int형은 4바이트이므로 a[0]은 메모리의 100~103번지의 4바이트를 차지한다. 따라서, 다음 값의 시작점은 104번지이다.
캐시의 목적은 메모리의 데이터를 CPU가 빠르게 가져와 접근하기 위해 L1~3 단계의 캐시가 있는데 넘버가 올라갈수록 cpu에 가까워지며, 용량이 작아진다.
캐시코히런스 : 캐싱된 데이터의 원본이 변경되었을때 캐시에 저장된 데이터의 일관성과 무결성이 보장되지 않는상태
x to y 관계에대해 y가반드시 있을경우 관계를맺눈다