<SQL 서버와 가상 어드레스 공간>
윈도우 오퍼레이팅 시스템의 관리하에 동작하는 프로세스(애플리케이션)은 각각 가상 어드레스 공간을 유지하고 있다.
대다수의 경우는 컴퓨터에 탑재되어 있는 메모리의 크기적인 제약으로 인해 프로세스의 전체 가상 어드레스 공간을 그대로
물리 메모리상에 전개하는 것은 힘들다. 따라서 윈도우 오퍼레이팅 시스템이 각 프로세스의 가상 어드레스 공간을 관리하고 필요에 따라서 물리 메모리로 전개하거나 또는 *페이지 파일에 적어 넣는다.
가상 어드레스 공간과 물리 메모리 사이의 관계는 CPU 캐시와 RAM 사이의 관계와 비슷하다.
캐시 메모리는 CPU의 속도와 시스템 메모리(RAM)의 속도 차이에 기인한 문제를 해결하기 위해 CPU 안에 포함되는 작고 빠른 메모리이다.
상대적으로 빠른 CPU 의 속도가 상대적으로 느린 시스템 메모리로 넘어갈 때 한 번에 수용하기 힘든 속도로 정보가 몰려서 병목현상이 일어날 수 있으므로 캐시 메모리를 중간 다리 역할을 수행시켜 속도의 차이를 완화시켜주는 역할을 하게 된다.
8차선 도로에서 2차선으로 바로 줄이지 않고 6차선 -> 4차선 -> 2차선으로 순서로 감소시키는 모습을 연상시키면된다.
이러한 캐시 메모리는 일반적으로 웹페이지를 사용할 때 이용되는 캐시파일과 비슷한 원리로 작동한다.
웹페이지를 보다 빠르게 로드하기 위해서 컴퓨터 저장장치에 이미지 파일 등을 미리 저장하고 업로드 해서 빠른 웹페이지 접근을 가능하게 한다.
L1 ~ L3 캐시는 CPU 내/외부 에서 CPU와 RAM 및 메모리를 이어주는 역할을 수행한다. 캐시 메모리의 작동 순서가 L1 에서 순차적으로 데이터를 찾아 L1에 데이터가 없으면 L2로 L2 에 데이터가 없으면 L3 로 올라가며 데이터를 서치한다.
가상 어드레스 공간과 물리 메모리의 관계는 캐시와 램의 관계와 비슷하다고 생각하면 된다.
*페이지 파일 : 사용되지 않은 메모리 영역을 하드디스크에 일시적으로 보관하기 위한 파일
각 프로세스는 가상 어드레스 공간으로서 X86버전(32비트) 윈도우의 경우는 최대 4GB, X64버전(64비트), IA64 버전의 경우 최대 16TB까지의 사이즈를 유지할 수 있다. (실제로는 64비트 운영체제는 약 192GB 정도를 사용할 수 있다고 한다.)
실제로는 각각 절반의 사이즈를 시스템(커널)이 점유하기 때문에 애플리케이션을 자유롭게 사용할 수 있는 사이즈는 보통 X86 버전의 경우에 최대 2GB, X64 버전은 8TB, Ia64버전은 최대 7tb가 된다.
'DB ARCHITECTURE' 카테고리의 다른 글
sql server 메모리 관리(3) - NUMA(Non-Uniform Memory Architecture) (0) | 2022.03.26 |
---|---|
sql server 메모리 관리(2) - 가상 어드레스 공간의 관리 (2) | 2022.03.25 |
SQL SERVER 가 수행하는 I/O의 특징적 동작 (0) | 2022.01.22 |
SQL SERVER 액세스 패턴 (0) | 2022.01.21 |
교착상태 - DEAD LOCK (0) | 2021.12.17 |