솜은 코튼

[OS] 세그멘테이션 기법 본문

OS

[OS] 세그멘테이션 기법

솜.코 2023. 5. 21. 17:54

 

 

세그멘테이션 기법은 가변 분할 방식을 이용한 가상 메모리 관리 기법이다.

 

2023.05.21 - [OS] - [OS] 가변 분할 방식과 고정 분할 방식

 

[OS] 가변 분할 방식과 고정 분할 방식

앞에서는 가변 분할 방식과 고정 분할 방식의 장단점을 설명하였다. 2023.05.21 - [OS] - [OS] 메모리 할당 (다중 프로그래밍 환경) [OS] 메모리 할당 (다중 프로그래밍 환경) 앞에서는 한 번에 한 프로세

sommda.tistory.com

 

 

세그멘테이션 기법의 구현

.

.

.

 

 

페이징 기법과 마찬가지로 세그멘테이션 기법도 매핑 테이블을 사용한다.

이를 '세그멘테이션 테이블' 또는 '세그멘테이션 매핑 테이블'이라고 한다.

 

 

 

 

페이징 기법은 메모리를 같은 크기로 분할하기 때문에 매핑 테이블에 크기 정보를 유지할 필요가 없지만

세그먼테이션 기법은 프로세스의 크기에 따라 분할하므로

세그먼트의 크기를 나타내는 'limit'물리 메모리상의 시작 주소를 나타내는 'address'가 있다.

 

 

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

(S: 세그먼트 번호, D: 세그먼트 시작 지점에서 해당 주소까지의 거리)

 

 

 

 

프로세스 A는 0, 프로세스 B는 세그먼트1, ...로 분할되어 있고 프로세스 A의 32번지 접근을 예로 들어보자.

 

먼저 가상 주소를 구해보면 VA=<0, 32>이다.

세그먼테이션 테이블에서 세그먼트 0의 시작 주소가 120임을 알 수 있고

120에서 거리 32를 더하면 물리 주소 152번지를 구할 수 있다.

 

이때 주의할 점은!

limit값을 넘지 않았는지 확인하고 만약 메모리를 벗어나면 오류를 출력한다.

 

이 limit는 메모리를 보호하는 역할을 한다.

위의 예로 프로세스 A의 크기보다 큰 주소에 접근하려고 하면

메모리 관리자는 프로세스를 강제 종료하는데 이 오류를 '트랩'이라고 한다.

 

트랩은 사용자가 의도치 않게 일으키는 인터럽트이다.

 

 

 

 

 

 

 

 

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

'OS' 카테고리의 다른 글

[OS] 요구 페이징  (0) 2023.05.21
[OS] 세그먼테이션-페이징 혼용 기법  (0) 2023.05.21
[OS] 페이지 테이블 매핑 방식  (0) 2023.05.21
[OS] 가상 메모리 (페이징 기법)  (0) 2023.05.21
[OS] 가상 메모리 (매핑 테이블)  (0) 2023.05.21