Segment Descriptor에서 Limit가 무엇을 의미하는가요

ksjeon001의 이미지

Local Address : Selector(16bit)+Offset(32bit)

(물론 Selector의 TI로 GDT,LDT결정)

Selector가 Segment Descriptor을 가리치면
Segment Descriptor에서

Base Field (bit 16-39, bit 56-63) 와 Limit Field (bit 0-15, bit 48-51)
에 대해서 정확히 설명 부탁드립니다.

Base Field와 Limit Field을 이용해서 Linear Address위치를 찾는가요.

또 Offset의 역활은 무엇인지요

pastime의 이미지

간단히 리눅스 커널의 이해 (한빛미디어) 책의 설명을 그대로 인용하겠습니다.

Quote:

* 세그먼트가 시작하는 선형 주소를 포함한 32비트 Base 필드
* 과립도를 나타내는 G 플래그. 이 플래그가 0 이면 세그먼트 크기가 바이트 (B) 단위이고, 1이면 4096 바이트를 곱한 크기가 된다.
* 세그먼트 길이를 바이트 단위로 나타내는 20비트 크기의 Limit 필드. G가 0 이면 세그먼트는 1 바이트부터 1MB 까지 될 수 있으며, G 가 1 이면 세그먼트 크기는 4KB 에서 4GB 까지 될 수 있다.