본문 바로가기
컴퓨터공학기초 개념/운영체제

30. 가상메모리(Virtual Memory System) - 개념

by devraphy 2021. 7. 6.

1. 개요

- 이전 포스팅까지 프로세스와 스레드에 대해 알아보면서 가상메모리를 언급한 바 있다. 

- 해당 내용은 다음과 같다. 

    ▶ 리눅스의 경우, 프로세스 하나 당 4GB의 크기를 갖는다.

    ▶ 그렇다면 컴퓨터 메모리가 8GB인 경우, 한번에 두개의 프로세스밖에 처리하지 못한다는 것을 의미한다. 

    ▶ 하지만, 실제로 컴퓨터를 사용해보면  여러가지 프로세스를 8GB 메모리로 충분히 처리할 수 있다.  

    ▶ 이 부분이 가능한 이유는 가상 메모리와 가상메모리를 활용하는 다양한 스케줄링 기법  때문이다. 

 

https://devraphy.tistory.com/171?category=988503 

 

18. 프로세스 - IPC의 개념

1. IPC(Inter-Process Communication) 배경지식 - 운영체제에서 프로세스 간의 직접적인 커뮤니케이션(= 통신) 방법은 존재하지 않는다. - 그러나 프로세스 간의 커뮤니케이션이 필요할 때, 사용할 수 있는

devraphy.tistory.com

 

 

a) 메모리를 사용하는 방식의 예

 

b) 가상 메모리가 필요한 이유

- 여러 프로세스를 동시에 처리해야하는 시스템

    ▶ 메모리 용량 부족 이슈 해결

    ▶ 프로세스 메모리 영역간의 침범 이슈 해결


2. 가상 메모리란? 

- 실제보다 더 많은 용량의 메모리를 보유한 것처럼 보이게 하는 기술

    ▶ 실제로 사용하는 메모리의 용량은 매우 작다는 점에서 착안한 기술

    ▶ 프로세스간 공간 분리를 통해, 프로세스 이슈가 전체 시스템에 영향을 주지 않음

 

리눅스 프로세스의 예

▶ 3GB ~ 4GB 메모리 주소 영역 === 커널영역 (운영체제 코드가 돌아가는 부분)

▶ 0GB ~ 3GB 메모리 주소 영역 === 유저영역 (실제 프로세스 코드가 돌아가는 부분)   

 

a) 가상 메모리의 구조

- 프로세스는 가상 주소를 사용하고, 데이터를 읽고(read) 쓸 때(write) 가상 주소를 통해 물리 주소를 찾아 접근한다.

- 프로세스를 통제로 가상 주소에 할당하는 것이 아니라, 지금 수행해야하는 부분만을 가상 메모리에 할당한다.  

    ▶ 가상 주소(virtual address): 프로세스가 참조하는 주소로 0~4GB의 주소값을 사용한다.

    ▶ 물리 주소(physical address): 가상 주소와 연결되어 있는 실제 메모리 주소로, 데이터가 저장되어있는 공간의 주소다.

 

- 매번 가상 주소를 물리 주소로 변환해야 한다면, 이를 처리하는데 꽤 적지않은 시간이 걸린다.  

- 그러므로 컴퓨터에는 주소변환과정을 빠르게, 효율적으로 처리해주는 하드웨어가 있다. 

    MMU(Memory Management Unit): CPU에서 코드를 실행하여 가상 메모리 주소에 접근이 필요할 때, 가상 주소를 물리 주소로 변환해주는 하드웨어 장치 

 

b) 가상 메모리와 MMU의 관계

- CPU는 가상 메모리를 다루고, 가상 주소에 접근 시 MMU가 해당 가상 주소를 물리주소로 변환하여 물리 메모리에 접근한다.

- MMU가 물리 메모리 접근을 통해 필요한 데이터를 CPU에게 전달한다.   

댓글