Ядро ОС Linux



         

Страничная организация (paging) в 386 - часть 2


  • Регистр CR2 содержит линейный адрес, в котором было вызвано нарушение страницы.
  • Коды нарушения страницы (16 бит):
  • бит сброшен установлен 0 страница не существует защита уровня страницы 1 нарушение при чтении нарушение при записи 2 режим супервизора режим пользователя

    Остальные биты не определены. Приведенная информация является выдержкой из sys_call.S

    Translation Lookside Buffer (TLB) представляет собой аппаратную кэш-память для физических адресов, которые соответствуют ранее используемым виртуальным адресам. Когда транслируется виртуальный адрес, 386 в первую очередь просматривает TLB, чтобы узнать - является ли доступной необходимая информация. Если нет, то для того, чтобы получить страницу, он должен создать пару ссылок на память для доступа к директории страниц и затем таблице страниц. Три ссылки на физическую память для трансляции адрес а для каждой ссылки на логическую память убили бы систему и, следовательно, TLB.

    TLB заполняется, если загружен CR3 или по переключению задач, в результате которого изменяетсяCR0. В Linux она заполняется путем вызова invalidate(), которая как раз и перезагружает CR3.




    Содержание  Назад  Вперед