페이징(paging) 이란?
① 페이지와 프레임은 크기가 같다.
② 프로세스의 주소 공간을 고정된 사이즈의 페이지 단위로 나눠 물리적 메모리에 불연속적으로 할당함
③ 메모리는 프레임으로 고정크기로 분할되고 프로세스는 페이지로 부터 고정크기 분할됨
④ 페이지와 프레임을 대응시키는 페이지 매핑 과정이 필요하여 페이징 테이블을 생성해야만 함
⑤ 연속적이지 않은 공간도 활용이 가능하므로 외부 단편화 문제를 해결함
⑥ 페이지 테이블에는 각 페이지 번호와 해당 페이지가 할당된 프레임의 물리 주소를 저장함
But, 프로세스의 크기가 페이지 크기의 배수가 아니라면 마지막 페이지에 내부 단편화가 발생될 수 밖에 없다.
그러므로 페이지의 크키가 클수록 내부 단편화가 커짐
⭐ 페이지 단위를 작게하면 내부 단편화 문제를 해결할 수 있지만 페이지 매핑 과정이 많아지므로 효율성이 떨어짐
세그먼테이션(segmentation)
① 프로세스를 서로 크키가 다른 논리적인 블록 단위인 세그먼트로 분할하여 메모리에 할당함
② 각 세그먼트들은 연속적인 공간에 저장함
③ 세그먼트들의 크키가 서로 다르므로 프로세스가 메모리에 적재될 빈 공간을 찾아 할당되는 기법
④ 페이징과 유사하게 매핑을 위해 세그먼트 테이블이 필요함
But, 프로세스가 필요한 메모리 공간만큼 메모리를 할당해주는 만큼 내부 단편화 문제는 발생되지 않지만
중간에 메모리를 해제하게 되면 외부 단편화 문제가 발생된다.
페이징(paging) VS 세그먼테이션(segmentation)
구분 |
페이징 | 세그먼트 |
크기 |
고정크기 |
가변크기 |
단점 | 내부 단편화 발생함 |
외부 단편화 발생함 |