1. Virtual memory general

- 2 storage level을 사용: primary(DRAM) and secondary(Hard disk)

- OS에게 메모리를 공유하게 하면서도, 서로에게서부터 지킨다.

- 요즘은 PROTECTION이 더 중요하다. (또다른 메모리 계층 보다)

- 각 프로세스는 자기에게 own memory space가 있다고 생각한다.

- 가상 메모리와 실제 메모리의 차이:

가상 메모리는 프로세스의 주소 공간에서 메모리를 address하기 위해 프로그래머가 사용한다.

실제 메모리는 물리적인 메모리 주소에 접근하기 위해 하드웨어가 사용한다.

- 마치 물리적 메모리를 더 많이 갖고 있는 듯한 느낌

- 멀티 프로세싱 시스템의 메모리 관리를 더 간단하게 만든다.

   (각 프로그램은 마치 자기 혼자 시스템에서 돌아가는 것처럼 주소 공간을 사용한다.)


- 메인 메모리가 secondary storage에게 캐쉬처럼 쓰인다.

- Program usese virtual addresses 

  Relocation: a program can be loaded anywhere in physical memory without recompiling or re-linking



2. Page table

- Page: 가상 메모리 블록

- Fixed block size scheme

- Page fault: a Virtual memory miss

데이터가 메모리에 있지 않아서, 디스크에서 가져온다.

- Segmentation

- Variable-size block scheme

- A bounds check is also needed to make sure that the offset is within the segment

- Powerful methods of protection and sharing in an address space



3. TLB (Translation lookaside Buffer)

- a Special cache for address translations

- 성능 향상을 위한 KEY!!: Locality of reference to page table




+ Recent posts