3

Есть только 36 строк физического адреса, но запись таблицы страниц имеет длину 64 бита. Как процессор проверяет правильность адреса? Как ОС Linux отображает один и тот же виртуальный адрес в разных процессах на разные физические адреса?

Вот статья в википедии о расширении физического адреса (PAE). http://en.wikipedia.org/wiki/Physical_Address_Extension .

1 ответ1

1

Есть только 36 строк физического адреса, но запись таблицы страниц имеет длину 64 бита. Как процессор проверяет правильность адреса?

На самом деле это выполняется с помощью аппаратного обеспечения, называемого модулем управления памятью (MMU), которое выполняет преобразование виртуальных адресов в физические. С точки зрения того, что адрес является "допустимым", каждый процесс имеет свое собственное уникальное адресное пространство (таким образом, реализуя схему виртуальной памяти), поэтому любой адрес технически допустим. Помните, что процесс может выделить больше памяти, чем физически доступно.

MMU использует буфер преобразования перевода (TLB) для быстрого декодирования виртуального адреса в физический, хранящийся в таблице страниц.

Как ОС Linux отображает один и тот же виртуальный адрес в разных процессах на разные физические адреса?

Это опять-таки связано с тем, что каждый процесс имеет уникальное виртуальное адресное пространство, что является фундаментальным для реализации виртуальной памяти. Виртуальный адрес для данного процесса сопоставляется с некоторыми физическими устройствами хранения (ОЗУ, диском и т.д.), Но сопоставление выполняется во время выполнения операционной системой и MMU.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .