BUILD_SSO

[OS] 페이징 & 세그멘테이션 본문

Tech Interview

[OS] 페이징 & 세그멘테이션

sohyeonnn 2023. 3. 29. 17:34

Paging vs Segmentation

페이징과 세그멘테이션은 둘 다 가상메모리를 관리하는 기법이다.

프로세스가 사용하는 메모리 공간을 잘게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법이다. 간단하게 말해 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 뜻한다.

 

 

👉🏻세그멘테이션과 페이징의 차이점은?

  • 둘의 차이는 프로그램을 분할하는 방식이다.
    페이징과 세그멘테이션 모두 프로그램을 실행하기 위해 디스크에 있는 내용을 분할하여 메모리에 적재하는 불연속 메모리 관리 기법이지만, 페이징의 경우 프로그램을 같은 크기의 페이지로 분할하는 데에 비해, 세그멘테이션은 논리적 의미를 기준으로 세그먼트를 분할한다.

 

👉🏻세그멘테이션과 페이징의 두 가지 장단점

  • 페이징 장점
    - 논리 메모리는 물리 메모리에 저장될 때 연속되어 저장될 필요가 없고, 물리 메모리의 남는 프레임에 적절히 배치되기 때문에 외부 단편화가 생기지 않는다.
  • 페이징 단점
    - 내부 단편화 문제가 발생할 수 있다.
    - 페이지 단위를 작게하면 해결할 수 있지만, 페이지 매핑 과정이 복잡해져 오히려 비효율적이다.
  • 세그멘테이션 장점
    - 내부 단편화 문제가 해소된다.
    - 보호와 공유 기능을 수행할 수 있다. 프로그램의 중요한 부분과 중요하지 않은 부분을 분리하여 저장할 수 있고, 같은 코드 영역은 한 번에 저장할 수 있다.
  • 세그멘테이션 단점
    - 외부단편화 문제가 발생할 수 있다.

 

👉🏻페이지와 프레임의 차이에 대해 설명해 주세요.

  • 페이지는 프로세스가 바라보고 있는 메모리 공간으로, 즉 논리 주소 공간의 단위를 뜻한다.
  • 프레임은 페이지가 저장된 실제 물리 메모리의 위치 영역의 단위를 뜻한다.

👉🏻내부 단편화와, 외부 단편화에 대해 설명해 주세요.

  • 내부단편화
    - 내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다.
    - 예를들어 100MB의 메모리에 80MB 크기의 프로세스를 올리게되면 20MB의 내부 단편화가 발생하게된다. 즉, 적은 크기의 잔여 메모리가 발생해 해당 메모리를 사용할 수 없게 된다.
    - 페이징 기법의 단점이기도하다.
  • 외부단편화
    - 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적(contiguous)이지 않아 발생하는 현상이다.
    - 즉, 남아있는 공간이 연속적이지 않아 다른 Process를 할당할 수 없는 상황을 말한다. 따라서 남아있는 메모리 공간이 낭비되게 되는 문제가 발생한다.

 

페이징의 주소 표현

페이징 기법에서는 실제 어떤 변수(논리 주소)가 저장되어 있는 어떤 바이트 주소(물리 주소)를 알아야 되긴 하지만 이것들이 페이지 단위의 묶음으로 배치가 되기 때문에 먼저 페이지가 어디에 있는지를 알아내야 한다.

 

👉🏻페이지에서 실제 주소를 어떻게 가져올 수 있는지 설명해 주세요.

👉🏻어떤 주소공간이 있을 때, 이 공간이 수정 가능한지 확인할 수 있는 방법이 있나요?

👉🏻32비트에서, 페이지의 크기가 1kb 이라면 페이지 테이블의 최대 크기는 몇 개일까요?

👉🏻페이지 크기에 대한 trade-off를 설명해주세요.

👉🏻페이지 크기가 커지면 페이지 폴트가 더 많이 발생하는지


TLB

👉🏻TLB를 쓰면 왜 빨라지나요?

 

👉🏻MMU가 무엇인가요?

  • MMU는 메모리 관리 장치(Memory Management Unit)를 뜻합니다.
    (CPU코어 안에 탑재되어 가상 메모리를 실제 물리 메모리로 변환해주는 장치)
    논리주소를 물리주소로 변환해주고, 메모리 보호나 캐시 관리 등 CPU가 메모리에 접근하는 것을 총 관리해주는 하드웨어 장치입니다.

    (CPU는 레지스터가 지시하는대로 메모리에 접근하여 다음에 수행할 명령어를 가져오는데, 명령어 수행 시 메모리에 필요한 데이터가 없으면 해당 데이터를 우선 가져와야 합니다. 이 역할을 하는 것이 바로 MMU)

👉🏻TLB와 MMU는 어디에 위치해 있나요?

  • MMU는 CPU코어 안에 탑재되어 가상 메모리를 실제 물리 메모리로 변환해주는 장치이다.
  • TLB는..
Comments