본문 바로가기

Cache2

[Parallel Computing] (14) Virtual Memory Virtual Memory는 OS가 메인 메모리를 추상화하여 사용하는 개념이다. 각 프로세스는 각자의 고유한 크고 일정한 주소공간을 갖는 것처럼 동작할 수 있다. 또한 실제 메인 메모리 크기보다 더 큰 주소 공간을 가질 수 도 있다. 나머지 부족한 공간은 스토리지를 활용하여 채우게 된다. 프로세스가 특정 주소에 접근을 하면 OS는 이를 실제 주소(Physical Address)로 변환하여 메인 메모리에 접근한다. OS는 각 프로세스 별로 Page Table을 관리한다. 즉 프로세스는 실제 주소로 접근이 불가능하므로 다른 프로세스들이 사용하는 주소에도 접근할 수 없다. 이렇듯 추상화를 사용하면 각 프로세스의 메모리 공간은 보호가 된다. OS가 주소 변환을 수행하면, 매우 느리기 때문에 MMU(Memory .. 2024. 4. 21.
[Parallel Computing] (12) Caches 가장 최근에 사용되었거나 근처의 데이터나 Instruction들은 다시 사용될 확률이 높다. 시간 관점에서 현재 접근했던 데이터는 가까운 시점에 다시 쓰일 수 있다. 이 부분을 Temporal locality라고 한다. 공간 관점에서 사용된 데이터가 저장된 공간 근처의 다른 데이터들은 가까운 시점에 다시 쓰일 수 있다. 이 부분을 Spatial locality라고 한다. 예를 들어, 아래와 같은 코드를 보면 알 수 있다. sum = 0 for (i = 0; i sum = sum + A[0] i = 1 -> sum = sum + A[1] i = 2 -> sum = sum + A[2] 해당 Loop.. 2024. 4. 21.