가상 메모리 개념

2021. 2. 25. 18:34Computer(인강)/운영체제

728x90
반응형

안녕하세요 bannavi 입니다^ㅅ^

오늘은 가상메모리 개념에 대해서 다뤄볼거에요

그럼 바로 시작해보겠습니다!

 

 

 

가상 메모리

실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음.

예) 리눅스는 하나의 프로세스가 4GB임.  

- 통상 메모리는 8GB? 16GB?

폰노이만 구조 기반이므로, 코드는 메모리에 반드시 있어야함 

 

 

가상 메모리가 필요한 이유

* 하나의 프로세스만 실행 가능한 시스템(배치 처리 시스템 등)

1. 프로그램을 메모리로 로드(load)

2. 프로세스 실행

3. 프로세스 종료(메모리 해제)

 

* 여러 프로세스 동시 실행 시스템

1. 메모리 용량 부족 이슈

2. 프로세스 메모리 영역간에 침범 이슈

 

 

 

가상 메모리

가상 메모리: 메모리가 실제 메모리보다 많아 보이게 하는 기술

* 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술

* 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음

 

 

 

가상 메모리(Virtual Memory System)

 

* 가상 메모리 기본 아이디어

- 프로세스는 가상 주소를 사용하고., 실제 해당 주소에서 데이터를 읽고/쓸때만 물리 주소로 바꿔주면 된다.

- virtual address(가상주소) : 프로세스가 참조하는 주소

- physical address(물리주소) : 실제 메모리 주소

 

-> 가상주소가 실제 어느 물리주소에 들어가 있는지를 알아야하잖아요?

그래서 가상주소를 물리주소로 바꿔주는 메커니즘이 시스템 안에 들어가 있습니다.

이 변환시간이 좀 오래걸릴거 같죠?

그래서 이 시간을 짧게 하기 위해 아래처럼 MMU가 나오게 된 것입니다.

 

* MMU(Memory Management Unit)

- CPU에 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치

 

 

 

 

가상메모리(Virtual Memory System)

- 메인 메모리에 실제 각 프로세스의 데이터가 조각으로 씌여 있다.

 

- CPU는 가상 메모리를 다루고, 실제 해당 주소 접근 시 MMU 하드웨어 장치를 통해 물리 메모리 접근

* 하드웨어 장치를 이용해야 주소 변환이 빠르기 때문에 별도 장치를 둠

728x90
반응형

'Computer(인강) > 운영체제' 카테고리의 다른 글

다중 단계 페이징 시스템과 페이징 시스템 장점  (0) 2021.02.25
페이징 시스템  (0) 2021.02.25
deadlock과 starvation  (0) 2021.02.25
세마포어  (0) 2021.02.25
스레드 동기화 문제  (0) 2021.02.25