솜은 코튼

[OS] 세그먼테이션-페이징 혼용 기법 본문

OS

[OS] 세그먼테이션-페이징 혼용 기법

솜.코 2023. 5. 21. 18:27

 

 

2023.05.21 - [OS] - [OS] 페이지 테이블 매핑 방식

 

[OS] 페이지 테이블 매핑 방식

이전 내용에서 페이지 테이블을 이용해 메모리 접근하는 방법에 대해 알아봤다. 2023.05.21 - [OS] - [OS] 가상 메모리 (페이징 기법) [OS] 가상 메모리 (페이징 기법) 고정 분할 방식으로 메모리를 분할

sommda.tistory.com

2023.05.21 - [OS] - [OS] 세그멘테이션 기법

 

[OS] 세그멘테이션 기법

세그멘테이션 기법은 가변 분할 방식을 이용한 가상 메모리 관리 기법이다. 2023.05.21 - [OS] - [OS] 가변 분할 방식과 고정 분할 방식 [OS] 가변 분할 방식과 고정 분할 방식 앞에서는 가변 분할 방식

sommda.tistory.com

 

 

페이징 기법은 물리 메모리를 같은 크기로 나누어 관리하여 메모리 관리가 수월한 반면

페이지 테이블의 크기가 크고,

 

세그먼테이션 기법은 페이지 테이블의 크기를 작게 유지할 수 있지만

외부 단편화로 인한 추가적인 관리가 힘들다.

 

 

세그먼테이션-페이징 혼용 기법은 이 두 기법의 장점만 취한 가상 메모리 관리 기법이다.

 

 

먼저, 메모리 접근 권한에 대해 알아보자.

 

 

메모리 접근 권한

.

 

 

메모리 접근 권한은 읽기, 쓰기, 실행, 추가 권한이 있다.

이 권한들을 모두 조합하면 16(2⁴)가지 메모리 제어 방식이 나온다.

 

그러나 추가 권한의 경우 항상 쓰기 권한이 동반되어야 하므로 같이 취급한다.

결론적으로 8가지 접근 방식이 나온다.

 

 

프로세스의 영역별 메모리 접근 권한으로는 아래와 같이 나뉜다.

 

 

 

 

메모리 접근 권한 검사는 가상 주소에서 물리 주소로 주소 변환이 일어날 때마다 시행된다.

 

페이지마다 접근 권한이 다르기 때문에 페이지 테이블에 권한 비트가 추가된다.

메모리 관리자는 주소 변환이 일어날 때마다 권한 비트를 이용하여 유용한 접근인지 확인한다.

 

 

 

 

권한 비트가 추가되면 페이지 테이블의 크기는 커지고,

권한이 같은 경우가 많은데도 불구하고 모든 행에 추가하면 메모리가 낭비된다.

 

이를 해결하기 위해 세그먼테이션 테이블을 이용한다.

 

 

 

 

페이지로 분할된 가상 주소 공간에서 서로 관련 있는 영역을 하나의 세그먼트로 묶어 세그먼테이션 테이블로 관리하고,

세그먼테이션 테이블은 페이지 테이블의 시작 주소를 가진다.

 

 

세그먼테이션-페이징 혼용 기법에서는 가상 주소를 VA=<S, P, D>로 표현한다.

(S: 세그먼트 번호, P: 페이지 번호, D: 페이지의 처음 위치에서 해당 주소까지의 거리)

 

그럼 세그먼테이션-페이징 혼용 기법에서의 주소 변환을 알아보자.

 

 

 

 

먼저 VA=<S, P, D>를 구한 후 자신의 영역을 벗어나지 않고, 접근 권한에 문제 없는지 확인한다.

정상 시 페이지 테이블에서 어느 프레임에 저장되어 있는지 확인 후

물리 메모리에 있다면 바로 접근하고, 없다면 스왑 영역에 가서 물리 메모리로 가져온다.

마지막으로 물리 메모리에 있는 프레임의 처음 위치에서 D만큼 떨어진 곳에 접근한다.

 

 

세그먼테이션 테이블에는 해당 페이지 테이블의 시작 주소가 기록되어 있어

세그먼테이션 테이블을 통과하면 페이지 테이블을 이용하여 가상 주소가 물리 주소로 변환된다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호 지음)