-
[OS] 메모리 불연속할당 - (3) 페이지드 세그먼테이션OS 2021. 12. 2. 19:16
[OS] 메모리 불연속할당 - (3) 페이지드 세그먼테이션
안녕하세요? 장장스입니다.
실제 물리적 메모리는 크게 연속할당 방식과 불연속할당 방식으로 나뉩니다.
오늘은 메모리 불연속할당 방식중 하나인 페이지드 세그먼테이션에 대해 정리해보겠습니다.
페이지드 세그먼테이션
앞선 두 가지 포스팅을 보면
각각의 장단점을 갖고 있음을 알 수 있다. 페이지드 세그먼테이션은 페이징 기법과 세그먼테이션 기법의 장점을 취하는 주소 변환 기법이다.
세그먼테이션과 마찬가지로 프로세스를 의미 단위의 세그먼트로 분할한다. 단, 세그먼테이션 처럼 불규칙한 길이가 아니라 동일한 크기의 페이지들의 집합으로 구성하는 것이다.
페이지드 세그먼테이션 테이블
하나의 세그먼트를 여러개의 페이지로 구성되므로 페이지드 세그먼테이션은 2개의 테이블을 사용한다.
- 외부의 세그먼트 테이블
- 내부의 페이지 테이블
페이징 기법의 2단계 페이지 테이블과 유사한 구조를 사용한다.
페이지드 세그먼테이션 테이블을 활용하여 주소변환 하는 과정은 다음과 같다.
1. 논리적 주소의 상위 비트인 세그먼트 번호를 통해 세그먼트 테이블의 해당 항목을 확인한다.
2. 해당 항목에는 세그먼트의 길이와 세그먼트의 페이지 테이블 시작 주소가 있다.
3. 세그먼트 길이를 넘어선 메모리 접근인지 체크한다. 유효하지 않다면 트랩을 발생시킨다.
4. 오프셋 값을 상위/하위 비트로 나누어 상위비트는 세그먼트 내의 페이지 번호로 사용하고, 하위 비트는 페이지 내에서의 변위로 사용한다.
Post
References
- KOCW 운영체제 강의 - 반효경 교수
잘못된 코드나 내용이 있다면 댓글을 남겨주세요. 즉시 수정하도록 하겠습니다! :)
'OS' 카테고리의 다른 글
[OS] 페이지 교체 알고리즘 (FIFO, LRU, LFU, NRU, NUR) (0) 2021.12.07 [OS] 요구 페이징(가상메모리) (0) 2021.12.06 [OS] 메모리 불연속할당 - (2) 세그먼테이션 (0) 2021.12.01 [OS] 메모리 불연속할당 - (1) 페이징 기법 (0) 2021.11.30 [OS] 메모리 연속할당 - 고정분할 방식과 가변분할 방식 (0) 2021.11.28