ABOUT
home
무료 콘텐츠
home
2️⃣

Segmentation에 대해서 설명해 주세요.

[핵심 답변]
segmentation이란 process가 할당받은 메모리 공간을 논리적 의미 단위(segment)로 나누어, 연속되지 않는 물리 메모리 공간에 할당될 수 있도록 하는 메모리 관리 기법입니다.
[면접  TIP]
page와 같이 면접에 자주나오진 않지만, 메모리에 대해서 이해하는데 중요한 내용이 많이 담겨져 있기 때문에 알아두시면 좋습니다. 일정한 크기의 단위로 나누어 할당을 했던 page와 다르게, segmentation은 의미 단위로 물리 메모리에 할당을 하는 기법임을 설명할 수 있어야 합니다. 특히 code, data, heap, stack등의 기능(의미)단위로 나눈다는 점을 기억하시길 바랍니다.

Segmentation

segmentation 기법은 process가 할당받은 메모리 공간을 논리적 의미 단위(segment)로 나누어, 연속되지 않는 물리 메모리 공간에 할당될 수 있도록 하는 메모리 관리 기법입니다.
일반적으로 process의 메모리 영역 중 Code, Data, Heap, Stack 등의 기능 단위로 segment를 정의하는 경우가 많습니다.
segmentation 기법에서는 주소 바인딩(address binding)을 위해 모든 프로세스가 각각의 주소 변환을 위한 segment table을 갖습니다.
segment는 그 크기가 균일하지 않기 때문에 논리적 주소가 <segment 번호, offset>으로 표현됩니다. 이 때 offset 값이 table의 limit 값보다 크면, 해당 segment를 넘어가므로 segmentation fault 오류가 발생합니다.
[꼬꼬무 문답]
Q. segmentation의 메모리 단편화(Memory fragmentation) 문제에 대해 설명해 주세요.
Q. paging과 segmentation의 차이는 뭔가요?
Q. paged segmentation 기법에 대해 설명하시오.