가상 메모리 동작 방식 정리
2019. 11. 8. 22:26ㆍ임베디드/운영체제
1. 가상 메모리는 왜 필요한가?
- 폰 노이만 구조에서는 데이터와 명령어가 하나의 메모리로 묶여 있기 때문에, 메모리에 상주해야만 코드를 읽어오는 구조다
- 32비트 리눅스 기준으로 각 프로세스는 4G의 메모리를 할당받는다. 하지만 물리 메모리 크기 한계로 배치 시스템이 아니라면 2개 이상의 프로세스가 상주해야 하는데 불가능하다
2. 가상 메모리를 읽는 방법
- CPU가 MMU에게 현재 프로세스의 가상 주소를 부른다
- CR3 레지스터에 있는 페이지 테이블의 시작주소를 읽고 해당 프로세스의 페이지 테이블로 접근해 물리 주소를 읽어온다. 물리 주소에 접근해서 값을 가져온다
- 페이지 테이블 효율을 위해 약 2단계의 디렉토리로 나누어 페이지 테이블을 생성한다. 만일 4KB의 모든 페이지 테이블을 생성한다면 하나의 프로세스 당 약 2^20개의 테이블을 생성해야만 한다
'임베디드 > 운영체제' 카테고리의 다른 글
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 |