CS 준비

세그멘테이션과 페이징의 차이점

해로몬 2025. 1. 18. 15:48

1. 세그멘테이션(Segmentation) 개요

세그멘테이션은 프로그램의 논리적 주소 공간을 여러 개의 세그먼트로 나누어 관리하는 기법입니다. 각 세그먼트는 크기와 기능이 다를 수 있으며, 프로세스가 필요한 만큼의 메모리 공간만 할당받게 됩니다. 예를 들어, 프로그램의 코드, 데이터, 스택 등이 각각의 세그먼트로 나뉘어 관리됩니다. 이러한 방식은 메모리 공간을 효율적으로 사용할 수 있게 해줍니다.

이미지 출처

2. 페이징(Paging) 개요

페이징은 물리적 메모리를 고정 크기의 페이지로 나누어 관리하는 기법입니다. 프로세스의 논리적 주소 공간을 페이지 단위로 나누어 필요한 페이지만 물리 메모리에 로드합니다. 이 방식은 외부 단편화 문제를 해결하고 메모리 보호 기능을 제공할 수 있습니다. 페이지는 고정된 크기를 가지므로, 메모리 할당이 보다 간편해집니다.

이미지 출처

3. 세그멘테이션과 페이징의 차이점

세그멘테이션과 페이징은 메모리 관리에서 접근 방식이 다릅니다. 세그멘테이션은 가변 크기의 메모리 할당이 가능하지만 외부 단편화 문제가 발생할 수 있습니다. 반면 페이징은 고정 크기의 페이지 단위로 관리되어 외부 단편화 문제를 해결할 수 있지만, 내부 단편화가 발생할 수 있습니다. 이러한 차이점은 메모리 관리의 효율성에 큰 영향을 미칩니다.

이미지 출처

4. 세그멘테이션의 장단점

세그멘테이션의 장점은 다음과 같습니다:

  • 가변 크기의 메모리 할당이 가능하여 유연한 메모리 관리가 가능합니다.
  • 각 세그먼트는 독립적으로 관리되므로, 프로그램의 구조를 반영할 수 있습니다.

하지만 단점도 존재합니다:

  • 외부 단편화가 발생할 수 있어 메모리 사용의 비효율성이 생길 수 있습니다.
  • 세그먼트 테이블 관리가 복잡해질 수 있습니다.

5. 페이징의 장단점

페이징의 장점은 다음과 같습니다:

  • 고정 크기의 페이지 단위로 관리되어 외부 단편화 문제를 해결할 수 있습니다.
  • 메모리 보호 기능이 강화되어 안정성이 높아집니다.

단점으로는:

  • 내부 단편화가 발생할 수 있으며, 이는 메모리 사용의 비효율성을 초래할 수 있습니다.
  • 페이지 테이블 관리가 필요하여 추가적인 오버헤드가 발생할 수 있습니다.

 

6. 세그멘테이션과 페이징의 실제 적용 사례

세그멘테이션과 페이징은 다양한 운영체제에서 사용되고 있습니다. 예를 들어, UNIX와 같은 시스템에서는 세그멘테이션을 사용하여 프로세스의 메모리 공간을 관리합니다. 반면, Windows와 같은 시스템에서는 페이징 기법을 사용하여 메모리를 관리합니다. 이러한 차이는 각 운영체제의 설계 철학과 관련이 있습니다.

7. 결론 및 요약

세그멘테이션과 페이징은 메모리 관리에 있어 중요한 역할을 하며, 각각의 특성과 장단점을 이해하는 것이 중요합니다. 세그멘테이션은 가변 크기의 메모리 할당이 가능하지만 외부 단편화 문제가 발생할 수 있습니다. 반면 페이징은 고정 크기의 페이지 단위로 관리되어 외부 단편화 문제를 해결할 수 있지만, 내부 단편화가 발생할 수 있습니다. 이러한 기법들을 잘 이해하고 활용하는 것이 메모리 관리의 효율성을 높이는 데 큰 도움이 될 것입니다.

이미지 출처

 

 

참고자료

velog - 페이징(Paging)과 세그먼테이션(Segmentation) (https://velog.io/@gang_shik/%ED%8E%98%EC%9D%B4%EC%A7%95Paging%EA%B3%BC-%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%85%8C%EC%9D%B4%EC%85%98Segmentation)

느리더라도 꾸준하게 - [운영체제] 페이징과 세그멘테이션(https://steady-coding.tistory.com/524)

velog - [OS] 페이징과 세그멘테이션 (https://velog.io/@jsi06138/OS-%ED%8E%98%EC%9D%B4%EC%A7%95%EA%B3%BC-%EC%84%B8%EA%B7%B8%EB%A9%98%ED%85%8C%EC%9D%B4%EC%85%98)

[OS] 페이징(Paging)과 세그멘테이션(Segmentation) (https://cocoon1787.tistory.com/860)