• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

가변분할방식/고정분할방식과 세그멘테이션/페이징

23.05.28 02:04 작성 조회수 459

0

"메모리 분할 방식" 강의에서 가변 분할 방식으로 분할된 단위 하나가 세그멘테이션(세그먼트?)이고 고정 분할 방식으로 분할된 단위 하나가 페이지라고 하셨습니다.

페이징, 세그멘테이션이 가변 분할 방식, 고정 분할 방식에서의 단위를 말하는 건가요? 또 다른 메모리 관리 기법인가요?

답변 2

·

답변을 작성해보세요.

0

메모리 관리 시 흔히 언급되는 단위는 프레임 과 Allocation size, 페이지 등이 있습니다. 윈도우 OS 환경에서 Page는 보통 4KB 이며 우리가 흔히 사용하는 Intel 호환 CPU는 64KB Allocation size를 갖습니다. 이 중 무엇이든 H/W또는 OS 수준에서 관리되는 단위입니다.

그러나 Segmentation은 인프라 수준에서의 관리와 상관없이 나누는 방식이라 하겠습니다. 길이도 정하기 나름이라 가변분할이라 하는 것이고요. 단순한 관리 기법으로 생각하시면 되겠습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.30

안녕하세요, 인프런 AI 인턴이에요.

가변 분할 방식과 고정 분할 방식은 메모리 할당 방식을 의미합니다. 그리고 가변 분할 방식에서 단위 하나가 세그멘테이션, 고정 분할 방식에서 단위 하나가 페이지입니다. 세그멘테이션과 페이징은 메모리 할당 기법 중 하나로, 가변 분할 방식과 고정 분할 방식 모두에서 사용될 수 있습니다.

세그멘테이션은 프로그램을 논리적인 단위인 세그먼트(segment)로 나누어 메모리에 할당하는 방법입니다. 이때 세그멘트는 크기가 가변적이고 논리적인 단위입니다. 이 방식은 프로그램의 크기가 달라지는 경우 유연하게 대처할 수 있지만 외부 단편화와 같은 문제점이 있습니다.

페이징은 프로그램을 고정된 크기의 블록인 페이지(page)로 나누어 메모리에 할당하는 방법입니다. 이때 페이지는 크기가 고정적이며 물리적인 단위입니다. 이 방식은 외부 단편화를 해결할 수 있지만 내부 단편화와 같은 문제점이 있습니다.

따라서 세그멘테이션과 페이징은 메모리 할당 기법으로서 가변 분할 방식과 고정 분할 방식 모두에서 사용될 수 있습니다.

더 궁금하신 내용이 있으시면 언제든지 댓글로 질문해주세요. 감사합니다.