LINUX.ORG.RU

А как в многопроцессорной amd64-машине юзают много GDTR-регистров?

 


0

2

Это такой регистр, который в защищённом режиме содержит указатель на глобальну таблицу дескрипторов. https://ru.wikipedia.org/wiki/GDT

Я так понимаю, в многоядерном проце у каждого ядра свой GDTR. Значит возможна жизнь нескольких GDT сразу? И значит теоретически возможно даже многопоточное выполнение ядерных вызовов? И значит могут прерывания обрабатываться многопоточно?

И значит теоретически возможно даже многопоточное выполнение ядерных вызовов?

Оно так практически и есть.

utf8nowhere ★★★
()

Вот в amd64, где по существу отказались от сегментации, GDT будет точно одна на все ядра.

intelfx ★★★★★
()
Ответ на: комментарий от utf8nowhere

Только я не знаю, почему ты думаешь, что для smp нужно несколько GDT.

utf8nowhere ★★★
()

Ты уж определись, многопроцессорной или многоядерной, а то какая-то каша. А GDT вроде вообще не используется в amd64.

anonymous
()

Значит возможна жизнь нескольких GDT сразу?

Да.

И значит теоретически возможно даже многопоточное выполнение ядерных вызовов? И значит могут прерывания обрабатываться многопоточно?

Нет. TSS у всех разные.

robot12 ★★★★★
()
Ответ на: комментарий от anonymous

Во смысле пользователь не лезет в него.

anonymous
()

В AMD64 GDT почти не несёт смысловой нагрузки, хотя используется. Скорее всего, сама таблица и GDTR одни для всех ядер.

Deleted
()

Сдается мне, кроме последнего предложения автора и ничего не интересует. Но нафига?

cnupm
()
Ответ на: комментарий от robot12

TSS тут при чём? Современные OS его вообще не юзают, а «руками» контекст сохраняют.

hlamotron
() автор топика

GDTR-регистров

В IRL жизни.

anonymous
()

Непонятно, почему ты связываешь возможность параллельного исполнения именно с регистром GDTR. Таблица GDT она вообщето не про многопоточность. Она про трансляцию значения сегментного регистра в базовый виртуальный адрес сегмента.

А обрабатывать прерывания несколькими процессорами или ядрами можно. Только таблица GDT в этом не помощник. Для этого надо, чтобы контроллер прерываний разные процессоры и ядра прерывал. И контроллер APIC это умеет.

iliyap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.