먼저 페이징 기법과 세그먼테이션 기법은 가상 기억장치 구현 기법으로 주기억장치의 부족한 용량 문제를 해결하기 위해 보조기억장치를 주기억장치처럼 사용할 때 쓰인다. (= CPU를 속인다.)
페이징 기법의 키워드는 동일한 크기, 세그먼테이션 기법의 키워드는 서로 다른 크기인데,
과연 어떤 크기를 말하는 걸까..?
바로 블록 단위의 크기를 의미한다. 여기서 블록 단위란?
블록 단위
주기억장치와 보조기억장치의 데이터를 주고받는 최소의 단위
프로그램을 여러 개의 작은 블록 단위로 나누어서 가상 기억장치에 보관해 놓고, 프로그램 실행 시에 요구되는 블록만
주기억장치에 불연속적으로 할당하여 처리한다.
주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있다.
블록단위로 나눈다면 연속 할당 방식에서 발생할 수 있는 단편화를 해결할 수 있다.
페이징 기법
페이징 기법이랑 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법이다.
페이지 : 프로그램을 일정한 크기로 나눈 단위
페이지 프레임 : 페이지 크기로 일정하게 나누어진 주기억장치의 단위
프로그램의 크기에 따라서, 페이지 크기에 따라서 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있다.
주소 변환을 위해 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블이 필요하고, 그로 인하여 비용이 증가하고 처리 속도가 감소된다.
세그먼테이션 기법
세그먼테이션 기법은 가장기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법이다.
프로그램을 배열이나 함수등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖는다. 왜? 주기억장치에 적재될 때 프로그램 A와 B이 같이 담기기 때문에 프로그램의 이름을 꼬리표처럼 써야 한다.
세그먼테이션 기법을 사용하는 이유는 바로 기억 공간을 절약하기 위해서!
주소 변환을 위해서는 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블이 필요하다.
내부 단편화는 발생하지 않으나 외부 단편화 (주기억 장치의 일부가 남는 현상)는 발생할 수 있다.
참고 영상
'📓 Study > Tech Interview' 카테고리의 다른 글
Spring Framework 실행순서 (0) | 2021.11.15 |
---|---|
페이지 교체 알고리즘 (0) | 2021.11.13 |
try-with-resource에 대해서 설명해주세요. (0) | 2021.10.29 |
Java 8에서 추가된 기능에 대해 설명해주세요. (0) | 2021.10.22 |
인덱스란? (0) | 2021.09.26 |
댓글