내 잡다한 노트
챕터 8. 3. 세그먼테이션 기법 본문
가변 분할 방식과 비슷한 기법이다. 프로세스마다 사용하는 메모리 크기가 다르다.
물리 주소나 가상 주소나 각각의 공간을 세그먼트라고 부른다.
이 기법도 테이블이 존재한다. 테이블은 2열로 돼있고 1열은 사용할 수 있는 크기로 limit라고 부른다.
2열은 물리 메모리상의 시작 주소이다.
이 기법도 물리 메모리의 공간이 부족하면 스왑영역을 활용한다.
세그먼테이션의 주소 변환
VA = <S, D> 로 표현한다. S는 세그먼트 번호, D는 distance이다.
프로세스 a의 32번지에 접근할 때 주소 변환 과정이다. a는 세그먼트 0번과 매핑됐다고 가정한다.
VA = <0, 32>이다.
시작주소는 120일 때, 물리 메모리의 120 + 32 번의 데이터를 구한다.
이때, 메모리 관리자는 거리가 세그먼트의 크기보다 큰지 확인을 한다. 만약 크다면 다른 메모리를 침범할 수
있기 때문에 오류를 띄운다.
세그먼테이션 테이블의 limit는 메모리를 보호하는 역할을 한다. 침범한다면 메모리 관리자는 강제 종료를 하는데
이때의 오류를 트랩이라고 부르고 세그먼테이션 오류를 보낸다.
'운영체제' 카테고리의 다른 글
챕터8. 캐시 매핑 기법 (0) | 2022.09.17 |
---|---|
챕터8. 세그먼테이션-페이징 혼용 기법 (0) | 2022.09.17 |
챕터 8. 2. 페이징 기법 (0) | 2022.09.16 |
챕터7. 다중 프로그래밍 환경에서의 메모리 할당 (0) | 2022.09.09 |
챕터7. 단일 프로그래밍 환경에서의 메모리 할당 (0) | 2022.09.09 |