페이징(Paging)과 세그먼테이션(Segmentation)
두 기법의 사용 이유
- 다중 프로그래밍 시스템에서 다수의 프로세스를 수용하기 위해 주기억장치를 동적으로 분할하는 메모리 관리 필요
메모리 관리 기법
1. 연속 메모리 관리 기법
- 프로그램 전체가 메모리에 연속적으로 할당
- 고정 분할 기법의 경우 내부 단편화 발생
- 동적 분할 기법의 경우 외부 단편화 발생
**내부 단편화란? 프로세스가 필요한 양보다 더 큰 메모리가 할당되어 메모리 공간의 낭비 발생
**외부 단편화란? 남아있는 공간이 연속적이지 않아 사용할 수 없어 메모리 공간의 낭비 발생
2. 불연속 메모리 관리 기법
- 프로그램의 일부가 서로 다른 주소 공간에 할당 가능
페이징(Paging)
- 프로세스의 주소 공간을 페이지(page)란 단위의 고정된 사이즈로 나누어 물리적 메모리에 불연속으로 저장하는 방식
- 메모리는 frame이라는 고정된 크기로 분할되고, 프로세스는 page라는 고정된 크기로 분할됨
- page와 frame을 매핑시키는 과정이 필요하기에 page table이 필요함
- 연속적이지 않은 공간도 활용할 수 있기 때문에 외부 단편화 문제 해결 가능
- 프로세스의 크기가 페이지 크기의 배수가 아닌 경우 내부 단편화 발생 <=> 페이지 단위가 작아지면 매핑 과정이 많아짐
**page table의 index: 페이지 번호
**page table의 value: 프레임 번호
세그멘테이션(Segmentation)
- 프로세스를 서로 크기가 다른 논리적인 블록 단위인 세그먼트로 분할해 물리적 메모리에 할당
- 페이징과 마찬가지로 매핑을 위한 segment table이 필요
- 내부 단편화 문제는 발생하지 않지만, 외부 단편화 문제 발생
참고
https://bellog.tistory.com/159
[운영체제] 페이징과 세그멘테이션
페이징과 세그멘테이션은 가상 메모리를 관리하는 기법으로 프로세스가 사용하는 메모리 공간을 잘게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법이다. 페이징(Paging) 프로
bellog.tistory.com
https://zu-techlog.tistory.com/132
[운영체제] 내부 단편화(Internal Fragmentation)와 외부 단편화(External Fragmentation)
💡단편화(Fragmentation)란? 메모리 공간이 부분으로 나뉘어서 충분히 사용 가능한 메모리가 남아있지만, 프로세스 할당이 불가능한 상태 내부 단편화(Internal Fragmentation) 프로세스가 필요한 양보다
zu-techlog.tistory.com
'CS STUDY > 운영체제' 카테고리의 다른 글
메모리(Memory) (0) | 2024.02.24 |
---|---|
페이지 교체 알고리즘 (0) | 2024.02.09 |
Race Condition & Deadlock (0) | 2024.02.05 |
CPU Scheduling (0) | 2024.02.04 |
PCB & Context Switching (0) | 2024.01.22 |