728x90
페이징 기법은 가상 메모리를 모두 같은 크기의 블록으로 나누어 프로세스를 메인 메모리에 올려 동작하게 하는 기법으로 이때 일정한 크기로 나누어진 블록을 페이지(프레임의 시작 주소)라고 하며 메인 메모리는 프레임이라는 단위로 나뉘고 페이지와 크기는 같다.
또한 페이징 기법은 일정한 크기로 페이지를 나누기 때문에 내부 단편화가 발생할 수 있다.
페이지 테이블은 프로세스의 페이지 정보(프레임의 시작 주소)를 저장하고 각 프로세스의 메모리가 실제 메모리와 어떻게 맵핑 되어 있는지를 나타내는 테이블로 하나의 프로세스는 하나의 페이지 테이블을 가진다. 페이지 테이블은 페이지 번호를 가지고 있으므로 페이지를 찾아간 후 페이지의 프레임 시작 주소를 통해 메인 메모리의 주소를 알 수 있다.
세그멘테이션은 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 메모리를 할당하는 기법이다.
미리 분할해 둘 수 없고 메모리에 적재 될 때 빈 공간을 찾아 할당하는 사용자 관점의 가상 메모리 관리로써 세그먼트의 가변적 크기로 인해 외부 단편화가 일어난다.
메모리 풀은 동일한 사이즈의 메모리 블록들을 미리 할당해 놓음으로써 다양한 블록 사이즈 때문에 생기는 단편화와 그로 인한 퍼포먼스 저하를 방지하기 위해 사용되는 기법이다.
메모리 압축은 여러 가지 크기의 사용되지 않는 메모리들을 가능하면 연속된 큰 메모리 블록이 되도록 하나로 통합하는 과정이다.
출처 : http://leehayun123.tistory.com/20
728x90
'Basic Programming > C, C++' 카테고리의 다른 글
C++ - Windows Keyboard Codes (키보드 코드) (0) | 2016.03.24 |
---|---|
C++ - 메모리 단편화로인한 메모리할당 실패 재현코드 (0) | 2016.03.22 |
C++ - Frame rate (0) | 2016.03.07 |
C++ - 2차원 배열 동적할당 (0) | 2016.03.04 |
C++ - null pointer를 써야하는 이유 (0) | 2016.03.04 |