Segmentation
- 앞서 설명한 페이징 기법은 가상 메모리를 페이지, 즉 물리적인 블록 단위로 분할하여 프로세스의 측면에서 메모리를 관리하는 방식이다.
이번에 공부한 segment 역시 메모리를 더 효율적으로 관리하기 위한 기법 중 하나이다.
-
segment
- segment는 가상 메모리를 서로 다른 크기의 논리적인 영역으로 분할하고 메모리를 할당한다.페이징 기법의 페이지 테이블 처럼 Segment table을 이용하여 사용자가 가상 메모리를 사용한 주소를 실제 주소에 맵핑하는 정보를 저장한다. -
Process segments
- 프로그램이 메모리에 올라갈 때 세그먼트로 나눠지는 구성을 이야기한다.-Allocate in compile
Code segment : 프로그램 코드 자체를 저장.
Data segment : 전역 변수/ 정적 변수 중 초기화가 된 것을 저장.
BSS : 전역 변수 / 정적 변수 중 초기화가 안된 것을 저장. 함수 실행 시 0으로 초기화.
- Allocate in Runtime
Heap : 동적 할당된 데이터가 저장.
Stack : 지역 변수, 파라미터, 리턴 주소 등을 저장. 커널과 충돌을 피하기 위해 높은 주소에서 낮은 주소로 쌓임.