Если я правильно понял мануалы интела и данные, которые выдавал сайс, то получается что в каждей программе должны быть созданы каталоги и таблицы страниц супервизора, содержащие GDT, IDT и оброботчики прерываний для того, чтобы первое прерывание, возникшее в системе не вызывало #DP(в винде ети каталоги описуют адресса начиная с 80000000). Что я не правильно понял? Помогите пожалуйста.
GDT - Global Descriptor Table - глобальна. Другое дело LDT. IDT тоже глобальна для системы. Ну а каталоги старниц, описывающие АП свои у каждой задачи.
Да, ето понятно, но в мануале 3а интела на странице 51 есть чтото вроде схемки взаимодействий всех елементов: ИДТ+ГДТ+страничка+всевозможные вызовы+переключение задач. НО если взглянуть повнимательнее: там обыкновеной линией отмечены места, где используется линейный адресс, а штрихованой - физический, так вот по ходу получается что ГДТР содержит в себе линейный адресс, и он уже транслируется через страничное преобразование адресов. Также и с ИДТР. А если возникает прерывание, то для того, чтобы найти обработчик нужно взять линейный адресс начала ИДТР, преобразовать страничкой, найти таблицу и нужный дескриптор, и аж потом запустить прерывание, которое тоже будет преобразовыватся через страничку. Проблема вся в том, что у каждой задачи свой СР3, тобыш ФИЗИЧЕСКИЙ адрес каталогов страниц, и если возникнет прерывание, то оно будет преобразовыватся через новые каталоги страниц, где не гдт не идт не описан. олучим тройную ошибку и проверим на практике "нас ребут а мы крепчаем".(например задача переключалась и загрузила свой СР3). Отсюда следствие: каталоги страниц, описующие гдт, идт и обработчики должны быть в КАЖДОЙ программе. Что я не правильно понял? Помогите пожалуйста.
может #GP?/#PF /#DF? что есть #DP? по сути да верхняя часть каталога страниц задачи (элементы 512-1023) заполняется содержимым каталога страниц родительской задачи, тем самым для нее создается адресное пространство ядра, когерентное с аналогичными других задач
адресное пространство ядра общее для каждой задачи в CR3 храниться адрес каталога страниц (физический), он разный для каждой задачи, но содержимое страницы (байты 2048-4096), которая описывает этот каталог страниц, совпадает с содержимым других страниц, которые описывают каталоги страниц других задач