Physical Addressing

Virtual Addressing

Virtual Memory
: 프로세스가 사용하는 메모리이다. → 가상주소를 가지고 접근
가상 메모리 장점
- 메모리를 효율적으로 사용가능하다.
- DRAM 을 cache 처럼 사용가능하다.
- 필요한 부분만 메모리에 load
- 메모리 관리가 간단해졌다.
- 물리적 메모리가 어디있는 지 확인하지 않아도 되고 매핑해줄 필요도 없다.
- 프로세스별 독립적인 메모리 공간을 할당한다.
- 서로 간섭하지 않고 방해할 수 없다. → 보안에 좋다.
Process (Virtual) Layout
- 프로세스가 가지고 있는 unmpped memory
- Process 가 전체 주소공간에 접근가능하도록
- 각 프로세스는 다른 프로세스 메모리에 접근 불가능
→ 모두 가능하다. 각 프로세스에서 사용하는 주소는 가상 주소이다.
Physical Layout
- 물리적 주소는 각각 하드웨어마다 다르다.
- 특정 주소는 제한된다.
- Kernel은 물리적 레이아웃을 알고 있어야한다.
- 사용자나 프로그래머는 물리적 주소를 몰라도 된다.
Address Spaces
: 가상메모리 혹은 물리적 메모리가 가질 수 있는 크기의 집합 → 우리가 사용할 수 있는 주소들의 집합
- 이 공간은 서로 같으면 안된다.
- on x84-64 : virtual address space → 0 ~ 2^64-1
- Current x84-64 processors only allow 48 of those bits
- 하드웨어는 훨신 더 적은 메모리가 주어진다.
- Linear address space : 음수가 아닌 연속된 정수로 되어 있는 집합