<페이징>
: 프로세스의 물리 주소 공간이 연속적이지 않게 하는 메모리 관리 체계입니다. 따라서 외부 단편화를 방지할 수 있습니다.
1) 물리 메모리를 프레임이라 하는 고정된 크기의 블록으로 나눕니다.
2) 논리 메모리를 페이지라고 하는 동일 크기의 블록으로 나눕니다.
3) CPU에 의해 생성된 모든 주소는 페이지 번호(p), 페이지 오프셋(d) 두 부분으로 나뉩니다.
- 페이지 번호(p) : 페이지 테이블에 대한 인덱스로 사용.
- 페이지 오프셋(d) : 물리 메모리에 있는 각 프레임의 기본 주소를 저장합니다. 프레임의 기본 주소가 페이지 오프셋과 더해져서 물리 메모리의 주소를 정의합니다.
<페이징 하드웨어>
: 페이지 번호 p를 추출 => 페이지 테이블[p(인덱스)] = 해당 프레임 번호(f)
=> 프레임 f에서 d만큼의 메모리를 차지함.
페이지의 크기는 하드웨어에 의해 정의되며, 일반적으로 2의 거듭제곱(페이지당 4KB~1GB)입니다.
논리 주소 공간 사이즈가 2^m이고, 페이지 사이즈가 2^n 바이트라 할 때,
페이지 번호(p) = 논리주소의 상위 m-n 비트. (페이지 개수 = 2^(m-n)개)
페이지 오프셋(d) = 하위 n 비트.
아래 이미지는 n=2, m=4인 예시입니다. => 논리 주소는 16개, 페이지 개수는 4개.
논리 주소 3은 p가 0, offset이 3입니다. => 물리 주소 = 5(f) * 4(m) + 3(d) = 23
논리 주소 4는 p가 1, offset이 0입니다. => 물리 주소 = 6(f) * 4(m) + 0(d) = 24
'[Computer Science] > [운영체제(OS)]' 카테고리의 다른 글
[운영체제(OS)] 10-2) Page Replacement Algorithm (0) | 2023.03.23 |
---|---|
[운영체제(OS)] 10-1) Demand Paging (0) | 2023.03.22 |
[운영체제(OS)] 9-3) 연속 메모리 할당과 단편화 (0) | 2023.03.08 |
[운영체제(OS)] 9-2) Static Linking vs. Dynamic Linking(shared Library) (0) | 2023.03.07 |
[운영체제(OS)] 프로그램의 컴파일 과정 (1) | 2023.03.07 |