728x90
1. 페이징이란? Paging
- 정의
- 프로세스의 메모리 공간을 동일한 크기의 page 단위로 나누어 물리적 메모리의 서로 다른 위치에 page들을 저장하는 메모리 관리 기법
- 특징
- 물리적 메모리를 page와 같은 크기의 frame으로 미리 나누어둠
- 주소 바인딩을 위해 모든 프로세스가 각각의 주소 변환을 위한 page table을 가짐
Paging 기법 사용 시 발생하는 메모리 단편화 Memory fragmentation
- 메모리 단편화란?
- 물리적 메모리 공간이 작은 조각으로 나뉘어 메모리가 충분히 존재해도 할당이 불가능한 상태
- 발생 이유?
- paging 기법에서는 프로세스의 논리적 주소 공간과 물리적 메모리가 같은 크기의 page 단위로 나뉘므로 외부 단편화 문제는 발생하지 않음. 하지만❗ 프로세스 주소 공간의 크기가 page 크기의 배수라는 보장이 없기 때문에, 프로세스의 주소 공간 중 가장 마지막에 위취한 page에서는 내부 단편화 문제가 발생할 가능성이 존재함
- 내부 단편화: 메모리의 크기가 프로세스의 크기보다 큰 경우
2. 세그멘테이션이란? Segmentation
- 정의
- 프로세스가 할당받은 메모리 공간을 논리적 의미 단위(segment)로 나뉘어 연속되지 않는 물리 메모리 공간에 할당될 수 있도록 하는 메모리 관리 기법
- 특징
- 일반적으로 프로세스의 메모리 영역 중, Code, Data, Heap, Stack 등의 기능 단위로 segment를 정의하는 경우가 많음. segmentation 기법에서는 주소 바인딩을 위해 모든 프로세스가 각각의 주소 변환을 위한 segment table을 가짐
Segmentation 사용 시 발생하는 메모리 단편화란?
Segmentation 기번에서 segment의 크기만큼 메모리를 할당하므로 내부 단편화 문제가 발생하지 않음
하지만 서로 다른 크기의 segment들이 메모리에 적재되고 제거되는 일이 반복되면,
외부 단편화 문제가 발생할 가능성이 있음
- 외부 단편화: 남은 메모리의 합이 프로세스 크기보다 크지만, 연속된 메모리가 아니어서 할당이 불가능한 상태
3. Paged segmentation 기법
segmentation을 기본으로 하되, 이를 다시 동일 크기의 page로 나누어 물리 메모리에 할당하는 메모리 관리 기법
👉 프로그램을 의미 단위의 segment로 나누고 개별 segment의 크기를 page의 배수가 되도록 하는 방법
장점 👉 segmentation 기법에서 발생하는 외부 단편화 문제를 해결하고, 동시에 segment 단위로 프로세스간의 공유나 접근 권한 보호가 이루어지도록 해서 paging 기법의 단점을 해결함
참고
https://hyuuny.tistory.com/155
'Computer Science > OS' 카테고리의 다른 글
[OS] TLB (Translation Lookaside Buffer) (0) | 2024.06.27 |
---|---|
[OS] 가상메모리와 요구 페이징, 페이지 교체 (0) | 2024.06.23 |
[OS] 주소 변환 Address Binding (0) | 2024.06.18 |
[OS] 주소 공간과 가상 메모리 (0) | 2024.06.18 |
[OS] PCB와 Context Switching (0) | 2024.06.18 |