Operation System
Paging and Segment
by orioncsy
2023. 5. 3.
Paging and Segment
개념
가상 메모리
- 프로세스의 물리적인 주소보다 더 큰 가상의 물리적 주소를 활용하여 실제 메모리보다 큰 주소값들을 사용해서 활용성을 높이는 것
- 물리 주소는 Frame으로 나뉘고, 논리적 주소는 page나 segment로 나뉜다.
단편화
- 데이터를 저장하고 그 사이에 존재하는 빈 공간이 발생하는 현상
- 외부 단편화
- 메모리 할당, 해제가 반복되면서 메모리에 저장된 데이터 사이에 존재하는 빈 공간 존재
- 내부 단편화
- 메모리를 할당할 때 프로세스가 필요한 양보다 더 크게 할당되어 메모리 공간이 남는 현상
Page
- 고정 분할 기법
- 논리적으로 같은 크기로 메모리를 분할한다.
- page mapping을 위해 page table 생성
- 연속적이지 않은 공간도 활용할 수 있기 때문에 외부 단편화 해결
- page 크기가 정해져 있기 때문에 이보다 작은 메모리를 적재하면 내부 단편화 발생 가능
- page 크기를 줄인다면 page mapping 과정이 잦아지게 되기 때문에 비효율적이다.
Segment
- 가변 분할 기법
- 서로 크기가 다른 논리적인 단위로 메모리를 분할한다.
- 미리 분할하지 않고 메모리가 적재될 때 빈 공간을 찾아 할당
- mapping을 위해 segment table이 필요
- 필요한 크기만큼 할당하기 때문에 내부 단편화 문제는 해소
- 프로세스 메모리를 해제하면 외부 단편화 발생 가능
Memory Pool
- 필요한 메모리 공간의 크기와 개수를 사용자가 미리 지정하여 할당받고 사용 후 반납하는 방식
- 필요한 크기만큼 할당하기 때문에 내부 단편화가 존재하지 않는다.
- 미리 메모리 공간을 할당하고 해제하기 때문에 외부 단편화를 예방할 수 있다.
- 할당을 해놓고 사용하지 않는다면 메모리 누수가 발생할 수 있다.
Reference
https://junghyun100.github.io/메모리단편화/