본문 바로가기
CS

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

by 옥돔이와 연근이 2022. 8. 30.
728x90
반응형

💡 페이징(Paging)

프로세스의 주소 공간을 페이지(page)란 단위의 고정된 사이즈로 나누어 물리적 메모리에 불연속으로 저장하는 방식 → 연속 할당에서처럼 연속적인 메모리 공간을 찾거나 만들 필요가 없음 → 외부 단편화 해결할 수 있는 메모리 관리 기술이다.

두루마리로 책을 작성하는 것과 사전형식으로 책을 작성하는 것의 차이처럼

한 프로세스의 논리 주소 공간을 동떨어진 공간들에 배정할 수 있도록 지원해준다.

  • Dynamic allocation한 형태(동적할당)

: 한 프로세스에 대한 논리적인 주소를 물리적인 주소로 매핑해줌 (어디에 할당되든 일관되게 사용가능함 )


(참고로 모든 프로세스는 0번부터 할당 되어짐)

💡 페이지 테이블(Page Table)

  • 페이지 매핑 테이블(Page mapping Table)

운영체제는 조각난 페이지들을 문제없이 수행하기 위해서, 즉 linear(일직선)으로 쭉 수행할 수 있게하기 위해 페이지 테이블을 통해 프로세스의 페이지 정보를 저장하고 매핑시켜준다.

페이지 방법론에서 메모리에 적재된 페이지들을 순차적으로 수행하게 된다면 순서가 요상해짐 (정상적인 수행의 어려움 ) 따라서, 페이지 테이블이 순서에 맞는 물리적 메로리 위치를 찾아준다!

  • 페이지 번호와 페이지 오프셋

페이지 번호는 페이지 테이블을 접근할 때 사용된다.

페이지 오프셋은 페이지 테이블에서 반환된 물리 주소의 프레임에서 참조할 위치가 된다.

  • [page → fram ] mapping과정 이해하기

[ 운영체제 ] 메모리 관리 1 - 페이징(Paging)

💡 페이징의 한계점

그러나, 모두 일정한 크기로 나누기 때문에 내부 단편화가 발생할 수 있음

[운영체제] 페이징과 세그멘테이션


 

💡 세그멘테이션(Segmentation)

페이징은 프로세스를 물리적으로 일정한 크기로 나눠서 메모리에 할당하는 것을 의미함.
반면, 세그멘테이션은 프로세스를 논리적 내용을 기반으로 나눠서 메모리에 배치하는 것을 의미한다.

💡 세그먼트 테이블 (Segment Table)

주소 변환을 위해 세그먼트 테이블을 사용한다. page size가 동일하지 않기 때문에, frame 번호로 논리 주소와 물리 주소를 연결할 수 없다. 따라서 세그먼트 테이블의 각 항목은 기준점(base)와 한계점(limit)을 가지고 있다.

  • 기준점(base): 물리적 메모리에서 그 세그먼트의 시작 위치를 나타낸다.
    • 한계점(limit): 세그먼트의 길이를 나타낸다. → 크기가 일정하지 않기 때문에 추가로 들어있는 정보

💡 세그먼테이션의 단점

세그먼테이션은 페이징과 유사하고 보호와 공유에서는 더 나은 성능을 보여주었지만, 현재 대부분은 페이징 기법을 사용한다. 그 이유는 세그먼테이션에는 치명적인 단점이 있기 때문이다.

그 이유는 세그멘테이션의 세그먼트 크기가 일정하지 않고 다양하기 때문이다. 세그먼트의 크기가 다양하기 때문에 다양한 hole이 발생해 외부단편화가 발생하여 메모리 낭비가 크게 된다.

참고


운영체제 20장 - 메모리 관리(7) : 세그멘테이션(Segmentation) -

페이징 Paging - 기본 방법

[운영체제] 페이징 기본 개념

[운영체제] 세그멘테이션(Segmentation)이란?, 세그멘테이션 vs 페이징

728x90

'CS' 카테고리의 다른 글

[DB] 💡레디스(Redis)란?  (0) 2022.09.08
[OS] 기술 면접 질문 리스트  (0) 2022.08.30
[OS] 페이지 교체 알고리즘  (0) 2022.08.30
[OS] 시스템 호출(System calls)  (0) 2022.08.30
[OS] 인터럽트(Interrupt)  (0) 2022.08.30