Сколько в системе IDT и почему? Прочитал, вроде в системе IDT столько, сколько и процессоров. А почему? Почему она не одна или не у каждого процесса/потока своя?
Еще вопрос: может ли процесс иметь несколько LDT?

21 Авг 2019 в 06:53
203 +1
0
Ответы
1

В системе IDT находится по одному дескриптору для каждого вектора прерывания (общее количество векторов обычно составляет 256). Каждый дескриптор содержит информацию о том, как обрабатывать соответствующее прерывание, включая адрес обработчика прерывания и уровень привилегий, на котором будет выполняться обработчик.

IDT не связана напрямую с количеством процессоров в системе. В общем случае, у каждого процессора в системе есть своя собственная IDT. Это связано с тем, что каждый процессор в многоядерной системе может обрабатывать прерывания независимо от других процессоров.

Отдельная IDT для каждого процесса/потока не используется потому, что это затратно с точки зрения использования ресурсов системы. Вместо этого используется общая IDT для всех процессоров, обрабатывающих прерывания.

Что касается LDT (Local Descriptor Table), то в процессе обычно используется только одна LDT. Однако, в некоторых случаях возможно использование нескольких LDT, но это редко используемая и сложная конструкция.

20 Апр 2024 в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир