페이징과 세그먼테이션

more·2023년 11월 7일

페이징(Paging)

  • 물리적 메모리를 고정 크기의 페이지로 나누고 가상 메모리를 동일한 크기의 페이지로 분할하는 방식
  • 가상 주소 공간은 페이지 번호와 오프셋(offset)으로 표현
  • 페이지 번호는 페이지가 물리 메모리에 어디에 위치하는지를 나타내며, 오프셋은 페이지 내에서 실제 데이터의 위치를 나타냄
  • 장점
    • 내부 단편화(Internal Fragmentation)가 발생하지 않으며, 메모리 공간의 효율적 사용을 가능하게 함
    • 페이지 교체 알고리즘을 사용하여 메모리 관리가 상대적으로 간단
    • 프로세스를 물리 메모리에 임의로 배치할 수 있어 프로세스의 크기에 관계없이 실행이 가능
  • 단점
    • 외부 단편화(External Fragmentation)가 발생할 수 있음
    • 페이지 테이블을 유지하기 위한 오버헤드가 있음

세그먼테이션(Segmentation)

  • 가상 메모리를 논리적인 블록인 세그먼트(segment)로 나누는 방식
  • 각 세그먼트는 다른 세그먼트와는 독립적으로 크기와 보호 속성을 가질 수 있음
  • 프로세스의 주소 공간은 세그먼트 식별자와 오프셋으로 나타내며, 이 방식은 다양한 데이터 타입을 다루기에 적합
  • 장점
    • 외부 단편화 문제를 해결하여 메모리 공간을 효율적으로 활용할 수 있음
    • 다양한 데이터 타입을 다루는 데 용이하며, 세그먼트에 대한 보호 속성을 쉽게 관리할 수 있음
    • 프로세스 크기에 제약이 없어 다양한 크기의 프로세스를 처리할 수 있음
  • 단점
    • 세그먼트들 간의 공간 낭비가 발생할 수 있으며, 내부 단편화가 발생할 수 있음
    • 세그먼트 테이블을 관리하기 위한 복잡성이 증가할 수 있음

면접 대비

Q: 페이징에 대해서 설명해주세요.
A: 페이징은 물리적 메모리를 고정 크기의 페이지로 나누고 가상 메모리를 동일한 크기의 페이지로 분할하는 방식입니다. 가상 주소 공간은 페이지 번호와 오프셋으로 표현되며, 페이지 번호는 페이지가 물리 메모리에 어디에 위치하는지를 나타내고, 오프셋은 페이지 내에서 실제 데이터의 위치를 나타냅니다. 연속적이지 않은 공간도 활용할 수 있기 때문에 외부 단편화 문제 해결할 수 있으나, 페이지의 크기가 클수록 내부 단편화가 커지는 단점이 있습니다.

Q: 세그먼테이션에 대해 설명해주세요.
A: 세그먼테이션은 가상 메모리를 논리적인 블록인 세그먼트로 나누는 방식입니다. 각 세그먼트는 다른 세그먼트와는 독립적으로 크기와 보호 속성을 가질 수 있으며, 프로세스의 주소 공간은 세그먼트 식별자와 오프셋으로 나타내집니다. 프로세스가 필요한 메모리 공간만큼 메모리를 할당해주기 때문에 내부 단편화 문제는 발생하지 않지만, 중간에 메모리를 해제하면 생기는 외부 단편화 문제가 발생합니다.

Q: 그렇다면 외부 단편화와 내부 단편화는 무엇인가요?
A: 외부 단편화는 물리적 메모리 공간 내에서 사용 가능한 메모리 공간들이 작은 조각들로 나뉘어 있어, 큰 프로세스나 데이터를 할당하기 어렵게 만드는 현상을 말합니다. 메모리에 여유 공간이 있지만 그 공간이 연속적이지 않아서 큰 덩어리의 메모리를 할당할 수 없을 때 발생합니다.
반면에 내부 단편화는 할당된 메모리 덩어리 내에 사용되지 않는 공간이 존재하는 현상을 나타냅니다. 주로 고정 크기의 메모리 할당 단위를 사용할 때 발생하며, 할당된 메모리가 실제로 필요한 메모리보다 더 큰 경우에 발생합니다.
내부 단편화는 주로 고정 크기 할당을 사용하는 메모리 관리 기술에서 발생하며, 동적 메모리 할당에서도 발생할 수 있습니다.

0개의 댓글