Селектор (інформатика)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Селектор (англ. selector) — число, що зберігається в сегментному регістрі; це 16-бітна структура даних, яка є ідентифікатором сегменту. Селектор вказує не на сам сегмент в пам'яті, а на його дескриптор у таблиці дескрипторів[ru]. Селектор знаходиться у сегментному регістрі (CS, DS, ES, FS, GS, SS).

У реальному режимі вміст кожного сегментного регістра являє собою номер параграфа — 16-байтова ділянка пам'яті, вирівняна на межу 16 байт.

У захищеному режимі кожний сегментний регістр поділяється на три частини, як зображено нижче:

15         3  2   1   0
 +--------------------+
 | Index    | TI | RPL|  
 +--------------------+

Біт TI в даному випадку вказує, яка таблиця дескрипторів повинна використовуватись (нуль відповідає глобальній таблиці дескрипторів, одиниця — локальній таблиці дескрипторів).

Поле Index є номером (індексом) дескриптора, який повинен використовуватися при вираховуванні лінійної адреси.

Поле RPL використовується для контролю прав доступу програми до сегмента[en] і є запрошуваним рівнем переваг. Частим випадком RPL є теперішній рівень переваг — CPL, значення якого в будь-який момент знаходиться в сегментному регістрі CS.