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

hyeondoonge·2023년 4월 19일
0

OS

목록 보기
3/7

페이징과 세그멘테이션

메모리 관리 기법 중에서도 불연속 메모리 할당 기법에 해당하는 방식들이다.
프로세스가 메모리 상 여러 영역에 분산되어 적재된다.
실제 가상 메모리는 두 가지 방식 중 하나를 채택해 구현된다.

공통적인 장점은 메모리 공간을 효율적으로 사용할 수 있다는 것이다. 연속성의 제약이 없어, 어디든 할당 가능한 여유 공간이라면 적재할 수 있기 때문이다.

페이징(Paging)

프로세스를 페이지(Page)라고 하는 고정된 크기로 나누는 방식이다.

단점은 내부 단편화가 발생할 수 있다는 것이다. 페이지 단위로 나누어 떨어지지 않는 크기의 프로세스의 경우에, 프로세스가 할당받은 공간 내부에 사용하지 못하는 빈 공간이 발생한다.

페이지 테이블(Page Table)

각 프로세스는 페이지와 프레임의 매핑 정보를 담은 페이지 테이블를 가지고 있다. 이는 논리적 주소를 물리적 주소로 변환하기 위해 필요한 정보로, 메인 메모리에 저장되어있다.
주요 정보로는 프레임(페이지에 할당된 물리 메모리 공간)의 시작 주소, 유효 비트가 있다.

세그멘테이션(Segmentation)

프로세스를 세그멘트(Segment)라고 하는 의미론적 단위로 가변 크기로 나누는 방식이다.

장점은 단위별 보호와 공유가 가능한 것이다.
단점은 외부 단편화가 발생할 수 있다는 것이다. 메모리 할당 및 회수가 빈번히 발생하면, 프로세스가 할당받은 공간의 외부에 사용하지 못하고 남는 공간이 생긴다는 의미이다.

세그멘트 테이블(Segment table)

각 프로세스는 세그멘트와 프레임의 매핑 정보를 담은 세그멘트 테이블을 가진다. 주요 정보에는 물리 메모리 상의 세그먼트 시작 주소, 세그먼트 크기, 유효비트, 권한 비트가 있다.

페이징 vs 세그멘테이션

프로세스가 나뉘는 기준에 차이가 있다. 페이징은 고정 단위, 세그멘테이션은 가변 단위로 나뉘어진다. 이에 따라서 발생하는 단편화 유형도 각각 내부 단편화, 외부 단편화로 차이가 있다.
또한 보호와 공유 측면에서 세그멘테이션이 더 낫다. 페이징은 다른 의미를 가진 조각들이 섞일 수 있기 때문에 어렵다. 세그멘테이션은 각 세그멘트가 의미단위로 나눠져있고 이에 권한비트를 설정함으로서 쉽게 달성할 수 있다.

페이징 세그멘테이션 (Paged Segmentation)

페이징의 장점과 세그멘테이션의 장점을 결합한 방식이다. 프로세스를 세그멘트로 우선 나눈 후 페이지 단위로 나눈다. 장점은 보호와 공유 그리고 외부 단편화를 제거한 것이다. 단점은 추가적인 오버헤드가 발생한다는 것이다. 메인 메모리에 있는 세그멘테이션 테이블, 페이지 테이블 모두에 접근해야하기 때문이다. 또 모든 프로세스가 2개의 테이블 정보를 저장하기때문에 메모리 비용도 든다.

0개의 댓글