본문 바로가기
자동차 임베디드 SW/잡

가상 주소공간(virtual address space)

by 존버매니아.임베디드 개발자 2021. 11. 14.
반응형

32bit 아키텍쳐의 컴퓨터에서 하나의 Sw는 각각 4Gbyte의 메모리 공간을 할당 받는다.
(왜냐면 2^32 가 4Gbyte 이기 때문)

이 4GByte의 메모리 공간을 가상주소공간이라고 부르는데, 그 이유는 이것은 각각의 sw마다 독립적으로 갖고 있는 주소공간이기 때문이다.

또한, 해당 프로그램이 실제로 메모리에 올라가서(로드되서) 실행될 때,
sw 코드상에 정의된 메모리주소와 실제 메모리 물리주소가 다르기 때문에 이것을 가상주소공간이라고 부른다.
(참고로 윈도,리눅스 등 로더를 사용한 멀티프로세싱이 가능한 운영체제를 갖지 않는,  오직 하나의 exe 파일만이 실행되는 임베디드 sw코드의 경우.  코드에 정의된 메모리주소와 실제 메모리 주소 영역이 완전히 동일하게 된다.)

예를 들어 test1.exe 와 test2.exe가 있을때
각 프로그램은 각각 독립적으로 4gbyte의 주소공간을 갖는다.
독립적인 공간이기 때문에
test1의 function1과 test2의 function 2가 프로그램상에서 같은 메모리주소를 가져도 상관이 없다.

어차피 test1 프로그램과 test2 프로그램이 실행되면 두 프로그램을 운영체제의 로더가 실제 물리메모리 상에 적재할 것이고, 이 때 두 프로그램은 서로 다른 물리메모리에 적재될 것이고, 프로그램이 실행될 때 실제로 접근하는 메모리주소는 달라질 것이기 때문이다.

반응형