페이지(page), 페이징(paging)
가상 메모리는 페이지라는 고정 크기의 블록으로 나누어지고
물리 메모리는 프레임이라는 고정 크기의 블록으로 나누어입니다.
즉, 고정적인 데이터이며 시스템에 의해서 할당받는 메모리입니다. (물리적 내용의 단위)
페이징은 페이지로 가상 메모리를 분할하여 메모리를 할당하고 주소변환을 하는 기법입니다.
세그먼트(segment), 세그멘테이션(segmentation)
페이지 같은 개념이지만 같은 크기가 아니라 서로 다른 크기의 블록으로 나누는 개념입니다. (논리적 내용의 단위)
가변적인 데이터이며 사용자의 필요에 의한 메모리입니다. (malloc, calloc ... )
세그멘테이션은 가상 메모리를 세그먼트로 분할하여 메모리를 할당하고 주소변환을 하는 기법입니다.
세그먼트는 논리적 단위여서 중요도에 따라서 나눌 수 도 있고, 용도에 따라서 나눌 수 있어 보호와 공유에 용이합니다.
페이지와 다르게 미리 메모리를 분할해둘 수 없고(크기가 가변적) 사용자 관점의 가상 메모리 관리 기법입니다.
내부 단편화는 발생하지 않지만 외부 단편화 발생 가능성이 있습니다. (분할된 크기보다 프로그램의 크기가 더 큰 경우 )
이를 해결하기 위해 세그먼트를 다시 페이징하는 방법이 있습니다.
세그먼트 테이블, 페이지 테이블은 사용자가 정의한 주소를 실제 주소로 맵핑하는 정보
'전자공학 > 임베디드' 카테고리의 다른 글
모놀리식 커널(Monolithic kernel), 마이크로 커널(Micro kernel) (0) | 2019.10.26 |
---|---|
ELF파일이란? (+HEX파일) (0) | 2019.10.25 |
세마포어(Semaphore), 뮤텍스(Mutex) (+임계영역, 프로세스, 스레드) (2) | 2019.10.22 |
Working Set 이란? (+스레싱) (0) | 2019.10.21 |
시스템 콜(System Call)이란? (0) | 2019.10.21 |