В отличие от сегментов, шлюзы ассоциированы не с массивом адресов, а с определенным целевым логическим адресом (полным указателем - селектор, смещение) передачи управления. При желании шлюз можно ассоциировать с меткой перехода. Исключением является шлюз задачи. Он ассоциируется не с логическим адресом, а с целевой задачей. Шлюзы идентифицируют разрешенные точки (метки) в коде, которым может быть передано управление, и являются единственным средством межсегментной передачи управления с увеличением уровня привилегий. В этом смысле они являются обработчиками соответствующих переходов. По аналогии, когда передачи управления производятся без использования шлюзов и селектор в команде указывает не на дескриптор шлюза, а на дескриптор кодового сегмента или дескриптор TSS, говорят, что обработчиком перехода является кодовый сегмент или сегмент TSS. Таким образом, разрешенные точки входа в сервисные программы задаются не вызывающей программой, а шлюзом. Программа не может читать шлюзы и определять адреса и расположение сервисных процедур. В этом смысле сервисные процедуры становятся "прозрачными" для вызывающих программ, а использование шлюзов - защитой от несанкционированного использования программного кода и "неверных" адресов передач управления, приводящих к "зависанию" программы. |