뭉크테크
절대주소와 상대주소 본문
개요
메모리라고 하는것에 대해서 어느 한 단위가 있는데 크기가 1byte가 되는 것이고 이 1byte마다 메모리 주소가 붙는데 이 주소가 64bit 체계이면 64bit system, 32bit체계이면 32bit system이라고 불린다. 근데 이것이 Application 수준에도 적용된다.
절대 주소와 상대 주소 이야기
중요한 것은 RAM에는 하드웨어 수준에 부여된 주소체계가 있고 Application Process수준에 부여된 주소체계가 있는데 이 둘이 조금 다르다. 즉 이 둘의 차이가 있다. 이 둘은 가상메모리 체계를 쓰기 때문에 두 영역에서 쓰이는 주소는 일치하지 않는다. 그래서 메모리의 어떤 주소를 애기할때는 2가지 기준으로 간다.
이는 절대주소와 상대주소로 생각해볼 수 있다. 쉽게 생각해서 배열을 생각하면 된다. 어떤 배열이 있으면 배열의 이름이 주소인데 이 주소를 가지고 어느 특정 메모리를 식별이 가능하다. 상대주소는 배열의 인덱스 연산(인덱싱)해서 특정 메모리를 찾는게 그것이 상대주소이다. 예를 들어 어떤 PC 메모리 주소가 0부터 999까지 있다고 했을 때 0~360까지 OS가 쓰고 이 영역은 다른 프로세스들이 절대 침범할 수 없는 영역이다.
또한 사용자 영역이 쓸 수 있는 메모리 공간이 360~999까지 있다고 가정했을 때 이 중 어딘가를 어느 프로세스가 쓰고 있는데 이 메모리 주소가 400이라고 가정했을때 0번지부터 400번째 떨어진곳 이것을 절대주소라고 부르며, 사용자영역 360부터 40만큼 떨어진곳이라고 표현하는것은 상대주소라고 본다. 즉, 상대주소는 논리적 메모리 주소이고 논리적은 가상이기 때문에 가상메모리에서 상대주소 얘기가 나오는 것이다.
가상메모리 체계에서 RAM메모리의 0~3번지까지 OS가 사용한다고 가정해보자. 근데 Process1의 VMS에 0번지가 실제 물리메모리 7번지와 매핑되었다고 했을 때 절대주소는 7이되는 것이고 상대주소는 0이되는 것이다. 그리고 Process1이 종료되면 Process1이 쓰는 공간을 OS가 회수한다.
출처:
곰책으로 쉽게 배우는 최소한의 운영체제론 강의 | 널널한 개발자 - 인프런
널널한 개발자 | '넓고 얕게 외워서 컴공 전공자 되기' 강의를 끝낸 분들이 운영체제에 대해 좀 더 깊이 있는 공부를 할 수 있도록 제공되는 강의입니다., 운영체제도 널널한 개발자와 함께! 👨
www.inflearn.com