✏️ [OS] 페이징과 세그먼테이션이란?

박상민·2024년 3월 7일
0

CS Interview

목록 보기
11/16
post-thumbnail

페이징과 세그먼테이션이란?
이 기법을 사용하는 이유는 다중 프로그래밍 시스템에서의 다수의 프로세스를 수용하기 위해 주기억장치를 동적으로 분할하는 메모리 관리 작업이 필요함

즉, 단일 프로그램만 쓰는 것이 아니기 때문에 이를 어떻게 메모리에 적재할 것인지 따져야 하는데 이를 메모리 관리 기술을 생각해서 처리를 하는데 그 중에 페이지와 세그먼테이션을 사용한다.

페이징(Paging)이란?

연속 메모리 할당 방식에서 외부 단편화가 생긴 근본적인 이유는 각기 다른 크기의 프로세스가 메모리에 연속적으로 할당되었기 때문이다.
만일 메모리와 프러세스를 일정한 단위로 자르고, 이를 메모리에 불연속적으로도 할당할 수만 있다면 외부 단편화는 발생하지 않는다.
이 방법을 가능하게 하는 것이 페이징이다.

페이징은 프로세스의 논리 주소 공간을 페이지라는 일정한 단위로 자르고, 메모리 물리 주소 공간을 프레임이라는 페이지와 동일한 크기의 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상 메모리 관리 기법이다.

정리
페이징은 메모리의 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법이다.

페이징에서 스와핑을 사용할 수 있다.
페이징을 사용하는 시스템에서는 프로세스 전체가 스왑 아웃/스왑 인되는 것이 아닌 페이지 단위로 스왑 아웃/스왑 인된다.
즉, 메모리에 적재될 필요가 없는 페이지들은 보조기억장치로 스왑 아웃되고, 실행에 필요한 페이지들은 메모리로 스왑 인되는 것이다.

페이징 시스템에서의 스왑 아웃은 페이지 아웃(page out), 스왑 인은 페이지 인(page in)이라고 부른다.

페이징 테이블

  • 물리 메모리는 고정 크기의 프레임으로, 가상 메모리는 고정 크기의 페이지로 분리되어 있음
  • 개별 페이지는 순서에 상관없이 물리 메모리에 있는 프레임에 매핑되어 저장됨
  • 모든 프로세스는 하나의 페이징 테이블을 가지고 있으며, 여기에는 메인 메모리에 적재되어 있는 페이지 번호와 해당 페이지가 위치한 메인 메모리의 시작 주소가 있음
  • 이를 통해 하나의 프로세스를 나눈 가상 메모리 페이지들이 각각 실제 메인 메모리의 어디 프레임에 적재되어 있는지 알아낼 수 있음


위의 페이징 테이블에서는 P1 프로세스의 0번째 페이지가 메인 메모리의 5번째 프레임에 있는 것을 알 수 있다.

페이징의 장단점

장점

  • 논리 메모리는 물리 메모리에 저장될 때 연속되어 저장될 필요가 없다.
  • 물리 메모리의 남는 프레임에 적절히 배치되기 때문에 외부 단편화가 생기지 않는다.

단점

  • 내부 단편화 문제가 발생할 수 있다.
  • 페이지 단위를 작게하면 해결할 수 있지만, 페이지 매핑 과정이 복잡해져 오히려 비효율적이다.

세그먼테이션(Segmentation)

가상 메모리를 서로 크기가 다른 논리적 단위로 분할한 것을 의미한다.
프로세스를 물리적 단위인 페이지가 아닌 논리적 단위인 세그먼트로 분할해서 메모리에 적재하는 방식이다.
세그먼트는 의미가 같이 않는 논리적 내용을 기준으로 프로그램을 분할하기 때문에 크기가 같이 않다.

세그먼트 테이블

  • 분할 방식을 제외하고 페이징과 세그먼테이션이 동일하기 때문에 매핑 테이블의 동작 방식도 동일
  • 단, 논리 주소의 앞 비트들은 페이징 번호가 아닌 세그먼트 번호가 된다. <segment, offset> 형태로 구성되고 세그먼트 번호를 통해 세그먼트의 기준(세그먼트의 시작 물리 주소)와 한계(세그먼트 길이)를 파악할 수 있음

세그먼테이션의 장단점

장점

  • 내부 단편화 문제가 해소
  • 보호와 공유 기능을 수행 가능
  • 프로그램의 중요한 부분과 중요하지 않는 부분을 분리하여 저장할 수 있고, 같은 코드 영역은 한 번에 저장할 수 있다.

단점

  • 외부 단편화 문제가 생길 수 있다.

페이징과 세그먼테이션이란?

페이징
페이지 단위의 논리-물리 주소 관리 기법. 논리 주소 공간이 하나의 연속적인 물리 메모리 공간에 들어가야하는 제약을 해결하기 위한 기법 논리 주소 공간과 물리 주소 공간을 분리해야함(주소의 동적 재배치 허용), 변환을 위한 MMU 필요
특징 : 외부 단편화를 없앨 수 있음. 페이지가 클수록 내부 단편화도 커짐

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


출처
Tech Interview for developer
혼자 공부하는 컴퓨터 구조 + 운영체제

profile
스프링 백엔드를 공부중인 대학생입니다!

0개의 댓글