페이징과 세그멘테이션(Paging & Segmentation)

Lys·2023년 11월 3일
0

운영체제

목록 보기
16/23

페이징(Paging )이란?


메모리 단편화의 해결 방법 중 하나로(외부 단편화는 발생하지 않으나,내부 단편화는 발생한다.) 프로세스를 일정한 크기의 페이지로 분할해서 메모리에 적재하는 방식이다.
메모리는 Frame이라는 고정크기로 분활되고, 프로세스는 page라는 고정크기로 분활 된다. 페이지는 모두 같은 크기를 가지며, 페이지의 사이즈(=프레임 사이즈)는 하드웨어에 의해 정해진다. 페이지 테이블을 이용해 논리주소에서 프레임을 가르키는 물리주소로 매핑한다.

  • 단편화 : 기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상으로 프로세스들이 메모리에 적재되고 제거되는 일이 반복 되면, 프로세스들이 차지하는 메모리 틈 사이에 사용하지 못할 만큼의 자유 공간이 늘어나게 되는 것을 말한다.
  • 내부 단편화 : 내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상
  • 외부 단편화 : 남아있는 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적이지 않아 발생하는 현상.

페이지 테이블(Page Table)이란?

페이지 테이블이란 논리주소의 페이지를 물리주소의 프레임으로 매핑시켜주는 정보를 담고 있는 테이블로 모든 프로세스가 하나의 페이징 테이블을 가지고 있으며, 이를 통해 프로세스 나눈 가상 메모리 페이지들이 각각 실제 메인 메모리의 어디 프레임에 적재되어 있는지 알아낼 수 있다.

페이징의 장점

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

페이징의 단점

  • 내부 단편화가 발생할 수 있다. 페이지 단위를 작게하면 해결할 수 있지만, 그럴 경우 매핑 과정이 복잡해기 때문에 비효율 적이다.

세그멘테이션(Segmentation)이란?


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

세그멘테이션(Segmentation Table)이란?

분할 방식을 제외한다면, 앞에 말했던 페이징과 세그멘테이션은 동일하기 때문에 매핑 테이블의 동작 방식도 동일하다.
하지만 논리 주소 주소 앞 비트들은 페이징 번호가 아닌 세그먼트 번호가 되기 때문에
<segment, offser> 형태로 구성되며, 세그먼트 번호를 통해 세그먼트 기준의 한계를 파악할 수 있다.

세그멘테이션 장점

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

세그멘테이션 단점

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

페이징과 세그먼테이션의 차이

  • 페이징은 고정 크기를 가지지만 세그먼테이션은 가변크기를 가진다.
  • 페이징은 내부 단편화가 발생할 수 있고,세그먼테이션은 외부 단편화가 발생할 수 있다.

🙇‍ 참고 사이트 🙇‍

https://cocoon1787.tistory.com/860
https://code-lab1.tistory.com/55
https://steady-coding.tistory.com/524
https://jungeun960.tistory.com/126

0개의 댓글

관련 채용 정보