컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어이다. "물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호 작용하는 방식으로부터 감추는 기술"로 정의할 수 있다.
single physical CPU에 대해 가상화를 통해 프로그래머에게 무한 개의 logical CPU가 있다는 illusion을 만들어주는 것이 process
computer system은 하나인데 무한 개의 computer system이 있는 것 같은 illusion을 만들어주는 것
이러한 state를 각각의 virtual machine이 유지하고 있음
속도는 SRAM, 용량은 DRAM인 것 같은 illusion을 만들어주는 것
locality
- spatial locality: 어떤 주소가 참조되면 가까운 시간 내에 그 근처의 주소가 참조되는 경향이 높다는 것
- temporal locality: 어떤 주소가 참조되면 가까운 시간 내에 그 주소가 다시 참조되는 경향이 높다는 것
memory technology : memory 소자가 여러 종류라서, 어떤 memory는 속도에 장점을, 어떤 memory는 가격과 용량의 장점을 가지는 trade-off가 있다는 것
이러한 locality와 memory technology의 특성을 조합해서 만든 것이 cache memory
공통점 : 둘 다 OS가 control을 가져가는 event
차이점
- exception : 지금 돌고 있는 프로그램이 유발한 event, 따라서 synchronous
ex) page fault, add instruction에서의 overflow
- interrupt : 지금 돌고 있는 프로그램과 무관한 event, 따라서 asynchronous
ex) timer interrupt, disk i/o가 끝났을 때의 interrupt