본문 바로가기

Solution/면접

[개발자 면접] 페이징과 세그먼테이션이란?

728x90

Q. 메모리 관리 기법과 페이징, 세그먼테이션에 대해서 설명?

 

다중 프로그램 시스템에서 여러 프로세스를 수용하기 위해 주기억 장치를동적 분할하는 메모리 관리작업이 필요하여 페이징, 세그먼테이션 기법을 사용한다. 

 

메모리관리 기법은 연속메모리 일경우와 불연속 메모리인지에 따라 다른 기법을 쓴다.

 

먼저 연속메모리인 경우 프로그램 전체가 하나의 큰 공간에 연속적으로 할당되어야 하며, 고정 분할기법동적 분할기법 2가지로 사용된다. 

 

고정 분할기법은 주기억장치가 고정된 파티션으로 분할되어 내부 단편화가 발생한다.

동적 분할기법은 파티션들이 동적생성되어 자신의 크기와 같은 파티션에 적재 되어 외부 단편화가 발생한다.

 

두번째로 불연속 메모리 관리는 프로그램의 일부가 서로 다른 주소 공간에 할당 될 수 있는 관리 기법이다. 

불연속 메모리일 경우 페이징과 세그먼테이션이 있다. 

 

먼저 페이징이란 페이지 단위의 논리-물리 주소 관리기법이다. 논리 주소 공간이 하나의 연속적인 물리 메모리 공간에 들어가야 하는 제약을 해결하기 위한 기법이다. 논리 주소공간과 물리 주소공간을 분리하여 주소의 동적 재배치를 허용한다. 

 

이는 외부 단편화를 없앨 수 있다. 페이지가 클 수록 내부 단편화가 커진다. 

 

세그먼테이션은 사용자/로그래머 관점의 메모리 관리 기법이다. 페이징기법은 같은 크기의 페이지를 갖지만 세그먼테이션은 논리적단위인 세그먼트로 나누므로 미리 분할 하는 것이 아니고 메모리를 사용할 시점에 할당된다.


<메모리관리 기법>

1. 연속 메모리 관리

  • 고정 분할 기법 : 주기억장치가 고정된 파티션으로 분할 (내부 단편화 발생)
  • 동적 분할 기법 : 파티션들이 동적 생성되며 자신의 크기와 같은 파티션에 적재 (외부 단편화 발생)

2. 불연속 메모리 관리

  • 고정 크기 : 페이징(Paging) 
  • 가변 크기 : 세그먼테이션(Segmentation)
 
728x90