가상 메모리 동작 방식 정리

2019. 11. 8. 22:26임베디드/운영체제

1. 가상 메모리는 왜 필요한가?

- 폰 노이만 구조에서는 데이터와 명령어가 하나의 메모리로 묶여 있기 때문에, 메모리에 상주해야만 코드를 읽어오는 구조다

- 32비트 리눅스 기준으로 각 프로세스는 4G의 메모리를 할당받는다. 하지만 물리 메모리 크기 한계로 배치 시스템이 아니라면 2개 이상의 프로세스가 상주해야 하는데 불가능하다

 

2. 가상 메모리를 읽는 방법

- CPU가 MMU에게 현재 프로세스의 가상 주소를 부른다

- CR3 레지스터에 있는 페이지 테이블의 시작주소를 읽고 해당 프로세스의 페이지 테이블로 접근해 물리 주소를 읽어온다. 물리 주소에 접근해서 값을 가져온다 

- 페이지 테이블 효율을 위해 약 2단계의 디렉토리로 나누어 페이지 테이블을 생성한다. 만일 4KB의 모든 페이지 테이블을 생성한다면 하나의 프로세스 당 약 2^20개의 테이블을 생성해야만 한다

 

https://www.youtube.com/watch?v=iqfjWIYyQ9k

 

'임베디드 > 운영체제' 카테고리의 다른 글

LRU Cache의 자료구조  (0) 2019.11.16
세그멘테이션 기법  (0) 2019.11.10
교착상태 Dead lock  (0) 2019.10.31
thrashing 스레싱  (0) 2019.10.17
프로세스 상태 관계  (0) 2019.10.16