가상메모리_개요 및 메모리 단편화
1. 가상메모리란?
가상메모리의 정의
컴퓨터에서 실제 메모리 구조가 아닌 가상의 메모리 주소를 만들어서 메모리를 할당하는 것
메모리를 MMU를 통해서 할당한다
RAM에서 주로 사용되지만 Hard에서도 사용이 된다.
따라서 실제 주기억장치(RAM)보다 큰 메모리공간이 할당될 대도 있다.
사용하는 이유?
OS가 프로그램에 가상 메모리 영역을 할당하기 때문에 프로그램이 다른 메모리 영역을 침범하지 않고 통제를 OS가 할 수 있기 때문
이렇게 될 경우 프로그램이 죽어도 메모리를 회수하지 못할 일이 없다.
MMU(Memory management unit)
CPU가 가상주소체계를 통해서 실제물리주소에 존재하는 프로그램을 읽고 실행시키기 위한 장치
2. 메모리단편화(Memory Fragmentation)
RAM에서 메모리 용량이 충분하게 남았지만 여러 조각들로 나뉘어서 메모리가 점유되고 있어서 할당이 불가능한 상태
2-1. 내부단편화
메모리를 할당할 때 실제 프로세스에서 필요한 공간보다 더 많은 공간을 할당
2-2. 외부단편화
메모리할당과 해제가 빈번하게 일어나서 중간중간에 사용하지 않는 메모리공간이 많을 경우
2-3. 해결방법
1) 압축 : 메모리공간을 재배치하여 분산된 공간을 모아서 사용할 수 있게 함(디스크 조각모음)
2) 통합 : 인접한 다른 메모리 공간들을 통합시켜서 큰 메모리 공간으로 만드는 방법
3) Paging 기법
가상메모리 사용, 외부단편화 해결, 내부단편화 존재
가상메모리를 전부 같은 크기로 나눠 할당하는 방식. 모든 물리적인 크기가 같기 때문에
중간부분이 비더라도 다시 할당가능해서 외부단편화를 해결
4) Segmentation 기법
가상메모리 사용, 내부단편화 해결, 외부단편화 존재
논리적인 단위로 가상메모리를 할당하는 방법. 각 메모리의 물리적인 크기가 다름.
메모리들은 연속적인 공간에 할당되고 해제될 때 외부단편화가 발생
5) 메모리 풀 방식
필요한 메모리 공간을 사용자가 직접 지정해서 미리 할당받아서 필요할 때마다 사용
일부 공간을 사용한 뒤 반납하기 때문에 외부단편화가 없음.
필요한 크기만 할당받기 때문에 내부단편화도 없음
하지만 할당하고 쓰지않을 경우 메모리 누수가 발생
댓글남기기