CS
[CS / OS] Paging & Segmentation
따봉치치
2023. 10. 10. 14:32
1. 메모리 단편화 (Memory Fragmentation)
💡 메모리 공간이 조각처럼 나뉘어져 실제로는 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태
- 내부 단편화
- 실제 사용가능한 메모리보다 적은 메모리의 프로세스가 할당되는 경우 메모리 공간이 낭비되는 상황
- 외부 단편화
- 총 메모리 공간은 충분하지만 실제로는 할당할 수 없는 상황
➡️ 연속 메모리 관리 시 발생하는 단편화 문제를 해결하기 위한 것이 바로 페이징과 세그멘테이션 기법
2. 페이징 (Paging)
- 프로세스의 주소 공간을 고정 크기 기법을 사용해 물리적 메모리에 불연속적으로 저장하는 방식
- 프로세스는 Page 단위인 고정 크기로 분할, 메모리는 Frame 단위인 고정 크기로 분할
- 각 프로세스는 한개의 Page Table을 가짐
- Page Table에는 각 페이지 번호와 해당 페이지가 할당된 프레임의 시작 물리 주소 저장
- 외부 단편화는 해결 하지만 내부 단편화 문제 발생 가능
3. 세그멘테이션 (Segmentation)
- 프로세스를 가변적 크기 기법인 논리적 블록 단위 세그먼트로 분할하여 메모리에 할당
- 각 세그먼트는 연속적인 공간에 저장
- 각 프로세스는 한개의 Segment Table을 가짐
- 세그먼트의 크기가 가변적이기 때문에 프로세스가 메모리에 적재될 때 빈 공간을 찾아 할당함
- 내부 단편화는 해결 하지만 외부 단편화 문제 발생 가능