내 잡다한 노트

챕터 8. 3. 세그먼테이션 기법 본문

운영체제

챕터 8. 3. 세그먼테이션 기법

peanutwalnut 2022. 9. 16. 00:32

가변 분할 방식과 비슷한 기법이다.  프로세스마다 사용하는 메모리 크기가 다르다.

물리 주소나 가상 주소나 각각의 공간을 세그먼트라고 부른다.

이 기법도 테이블이 존재한다. 테이블은 2열로 돼있고 1열은 사용할 수 있는 크기로 limit라고 부른다.

2열은 물리 메모리상의 시작 주소이다. 

이 기법도 물리 메모리의 공간이 부족하면 스왑영역을 활용한다.

 

세그먼테이션의 주소 변환

VA = <S, D> 로 표현한다. S는 세그먼트 번호, D는 distance이다.

 

프로세스 a의 32번지에 접근할 때 주소 변환 과정이다. a는 세그먼트 0번과 매핑됐다고 가정한다.

VA = <0, 32>이다.

시작주소는 120일 때, 물리 메모리의 120 + 32 번의 데이터를 구한다.

이때, 메모리 관리자는 거리가 세그먼트의 크기보다 큰지 확인을 한다. 만약 크다면 다른 메모리를 침범할 수

있기 때문에 오류를 띄운다. 

 

세그먼테이션 테이블의 limit는 메모리를 보호하는 역할을 한다. 침범한다면 메모리 관리자는 강제 종료를 하는데

이때의 오류를 트랩이라고 부르고 세그먼테이션 오류를 보낸다.