세그멘테이션은 사진속에서와같이 논리주소를 선형주소로 바꾸는 과정이다.


가장먼저 세그먼트 셀렉터를 통과하게 되는데




세그먼트 셀렉터는 세그먼트를 가르키는것이 아니라 디스크립터 테이블에서 세그먼트 디스크립터를 가르킨다


위 그림에서처럼 셀렉터는 16비트이며 0-1비트는 세그먼트의 권한을 가르키며 2-3비트는 디스크립터가 gdt에 있는지 ldt에 있는지를 가르킨다


3-15비트는 테이블을 가르키는 인덱스로 사용된다


사실 세그먼트 셀렉터는 세그먼트 레지스터에 속해있다


세그먼트 레지스터는



사진과같이 보이는 부분과 보이지않는 부분으로 나뉘며 여기서 보이는 부분이 세그먼트 셀렉터로써 이곳으로 새롭게 로드가되면 세그먼트 디스


크립터를 참조하여 base address, limit 등등을 보이지않는 부분에 로드한다.


세그먼트 셀렉터는 단순히 16비트로서 세그먼트에 대한 많은정보를 포함하고 있지않다 그렇기 때문에 세그먼트에대한 정보를 담고있는 구조체


체가 필요한데


이것이바로 세그먼트 디스크립터이다



베이스주소 타입등등 정보를 담고있다 이를통하여 세그먼트의 베이스 주소를얻어 오프셋과 더하여 선형주소를 얻게된다.