
오버헤드: 프로그램을 돌리기 위해 필요한 여러 복사과정이 프로그램의 “실제 작업”을 느리게 하는 것이다.
이러한 복사과정을 가능한 빠르게 동작하도록하기 위해 고안된 것이 캐시이다.
일반적인 레지스터 파일은 수백 바이트의 정보를 저장하는 반면, 메인 메모리의 경우는 십 억개의 바이트를 저장한다. 그러나 프로세서는 레지스터 파일의 데이터를 읽는 데 메모리의 경우보다 거의 100배 더 빨리 읽을 수 있다.
메인 메모리를 더 빠르게 동작하도록 만드는 것보다 프로세서를 더 빨리 동작하도록 만드는 것이 더 쉽고 비용이 적게 든다고 한다.
이러한 극간을 줄이기 위해 시스템 설계자가 작고 빠른 캐시 메모리라고 부르는 저장장치를 고안하여 프로세서가 단기간에 필요로 할 가능성 높은 정보를 임시로 저장할 목적으로 사용.
L1, L2 수가 커질수록 느리지만 용량은 늘어난다. L1, L2, L3 캐시는 SRAM이라는 하드웨어 기술을 이용해 구현한다.
프로그램이 지엽적인 영역의 코드와 데이터를 엑세스하는 경향인 지역성을 활용하여 시스템이 매우 크고 빠른 메모리 효과를 얻을 수 있다. → 자주 액세스할 가능성 높은 데이터를 캐시에 보관하여 빠른 캐시로 대부분의 메모리 작업 수행 가능.
그러므로 응용프로그래머는 캐시를 활용하여 프로그램 성능을 10배 이상 개선할 수 있다.

작고 빠른 저장장치(캐시 메모리)를 프로세서와 좀 더 크고 느린 장치(메인 메모리) 사이에 끼워 넣는 개념은 일반적인 아이디어이다.
메모리 계층구조의 예는 다음 그림과 같다.

운영체제는 다음과 같은 목적이 있습니다.