Halo World

세그멘테이션 기법 본문

개발 지식/OS

세그멘테이션 기법

_Yeony 2017. 8. 13. 11:41

| 세그멘테이션 기법


가상 메모리 관리 기법 중 하나로 가상 메모리를 같은 크기의 블록으로 분할하는 페이징 기법과 달리 세그멘테이션 기법은 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할하고 메모리를 할당하는 기법이다.


> 특징

- 세그먼트들의 크기가 서로 다르기 때문에 메모리를 페이징 기법에서 처럼 미리 분할해 둘 수 없고, 메모리에 적재될 때 빈 공간을 찾아 할당하는 사용자 관점의 가상 메모리 관리 기법

- 마이크로프로세서는 세그먼트 테이블을 참조하여 해당 세그먼트의 시작주소와 더해져서 실제적인 물리적 위치로 변환해줌


> 세그먼트

- 세그먼트는 논리적 의미에 부합하도록 서로 크기가 다르며 각각의 세그먼트들은 연속적인 공간에 저장되어있다.

- 세그먼트 가상 주소는 v = (s,d) 로 표현되며, s는 세그먼트 번호를 d는 블록 내 세그먼트의 변위를 나타낸다.

- 전체 세그먼트가 하나의 단위로 보조기억장치에서 메모리로의 연속적인 가용 공간에 적재되며 최초 적합 등의 방법으로 주기억장치를 할당


> 세그먼트 테이블

- 페이징 기법에 페이지 테이블이 있는 것처럼, 세그멘테이션 기법에는 세그먼트 테이블이 사용된다. 세그먼트 테이블은 사용자가 정의한 주소를 실제 주소로 맵핑하는 정보를 저장하고 있으며, 각 세그먼트 항목별 Base(세그먼트 시작 주소)/Limit(세그먼트 길이)의 정보를 갖고 있다.


> 세그멘테이션 기법의 장단점

- 하나의 세그먼트 단위로 통제가 가능하다는 장점

- 서로 다른 크기의 세그먼트들에 대해 필요 시에 메모리에 올리고, 필요없을 경우 내리를 작업을 반복하다보면 외부 단편화가 생기는 문제점이 있음





[출처]

http://softwareji.tistory.com/76

'개발 지식 > OS' 카테고리의 다른 글

로더란?  (1) 2017.08.09
버퍼링과 스풀링  (0) 2017.08.05
디렉토리 구조  (0) 2017.07.31
시스템 소프트웨어와 응용 소프트웨어  (0) 2017.07.30
디스크 스케줄링  (0) 2017.07.26