2025. 10. 22. 17:51ㆍCSAPP

톰 킬번, 레전드 컴퓨터 과학자인 이분이 없었다면 우리는 사펑이나 GTA5, 심지어 국민 게임인 롤 마저도 못할뻔 했다.
9장은 대 톰 킬번 선생님의 길이 남을 업적 중 하나인 가상메모리에 대해 알아보는 단원이다.
이번 9.1장은 주소에 관한 내용인데, 저어어어어어어어어번에 다룬 3.2장에 사실 이미 가상 주소와 프로그램 메모리에 대해
다룬적이 있다.(이 글이다. 한 번만 읽어주면 너무 고맙겠다.→ https://kgr0831.tistory.com/30)
이번 9.1장은 이 주소에 대해, 정확히는 물리 주소와 가상 주소의 차이, 주소 체계에 대해 다룬다.
컴퓨터 시스템은 메모리에 접근할 때, 주소를 사용하여 해당 주소에 있는 데이터를 가져온다.
이 주소에는 물리 주소와 가상 주소가 있는데 이 2개를 차근차근 알아보자.
1. 물리 주소
물리 주소는 말 그대로 물리적인 주소, 위치이다.

위 사진 같은 DRAM은 수 많은 셀(커패시터 + 트랜지스터)의 배열로 구성된 반도체로,
물리 주소는 여기서 이 셀들의 실제 위치를 나타낸다.

나 뿐만 아니라 우리 부모님도 이세상에 존재하지 않던 시절의 고오오오오오ㅗ오 대의 컴퓨터들은
이 물리 주소로 데이터를 가져왔다.

상당히 상남자스럽다고 할 수 있다.
물리 주소를 쓰면 OS나 다른 하드웨어의 개입 없이 CPU가 직접 메모리에 접근이 가능하다.
과거에는 주소 변환이나, 페이지 테이블 관리가 필요없으니 단순성을 챙기고,
단순 했던 과거의 하드웨어 회로에서는 OS를 거치지 않는 것이 속도를 챙길 수 있었다만,

하나의 메모리 공간 전체(= DRAM의 셀 전체)가 하나의 연속된 주소 공간으로 존재하기에,
여러 프로그램이 동시에 실행된다면, 서로가 서로의 메모리를 덮어쓸 위험이 컸다.
즉, 보호가 전혀 안됐고, 유연한 메모리 관리가 불가능 했다.
2. 가상 주소
이러한 단점들 때문에 가상 주소가 탄생했다.
가상 주소는 말 그대로 실제 물리 주소와는 다른 가상적인 주소다.

이 가상 주소는 OS가 정한 규칙에 의해 MMU라는 하드웨어가 물리 주소로 변환한다.
기존의 CPU는 물리 주소로 데이터를 요청하지만, 가상주소로 요청하고, MMU가 이를 물리주소로 번역하는 거다.
좀 더 깊게 말하면 CPU가 가상주소를 생성하고,
OS가 만든 페이지 테이블이 그 가상 주소가 어떤 물리 주소로 변환될지 결정하고,
MMU가 변환한다.

이런 느낌이다.
비유를 하자면, 물리 주소는 지휘자가 없는 오케스트라이다.
지휘자가 없기에 악기를 연주하는 사람들은 서로 연주 순서를 실수하여 소리가 안 좋게 겹칠수도, 순서를 놓칠수도 있다.
가상 주소는 MMU라는 지휘자를 통해 서로가 난장판이 되지않게 막아주는 장치이다.
지휘자인 MMU는 OS가 건네준 악보를 보고 연주자들인 CPU의 주소 요청을 조율한다.
요약하면, 가상 주소는 각 프로그램에게 자신만의 독립된 세상을 만들어주는 기술이다.
(이렇게 말하니까 좀 외톨이 같아서 슬프다 ㅠㅠ)
다음시간에는 이 독립된 세상이 어떻게 구성되고, 보호되는지 알아보겠다.
긴 글 읽어줘서 고맙다.
즐코딩.
'CSAPP' 카테고리의 다른 글
| [Week6 - CSAPP] 3.5 ~ 3.11 - 미안하다 요약할 시간이 없다. (0) | 2025.10.20 |
|---|---|
| [Week6 - CSAPP] 3.4 - 여친 만드는 법 : 어셈블리어 배우기 (3) | 2025.10.18 |
| [Week5 - CSAPP] 3.3 - 데이터의 형식 (0) | 2025.10.17 |
| [Week3 - CSAPP] 3.2 - 프로그램의 인코딩 (0) | 2025.10.01 |
| [Week3 - CSAPP] 3.1 - 역사적 관점(근데 약간 이상한) (0) | 2025.09.19 |