Как и в сегментации, могут ли разные адреса в пейджинге указывать на одно и то же место в физической памяти? - PullRequest
0 голосов
/ 08 мая 2018

Например. для сегментации 0000: FFFF эквивалентно 0001: FFEF (просто гипотетический случай, не знаю, действительно ли мы используем их в программировании или это зарезервированные пробелы)

(Я новичок в программировании на ассемблере. В частности, x86.)

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

0000:FFFF эквивалентно 0001:FFEF только в реальном режиме, режиме VM86 или режиме SMM. В этих режимах, по определению, подкачка не включена. В защищенном режиме 1 без подкачки они обязательно переводятся на разные физические адреса, поскольку смещения сегментов различны (FFFF против FFEF), но базовый адрес сегмента тот же 2 . При подкачке страниц, когда смещения сегмента добавляются к базовому адресу сегмента (который может быть равен нулю), они могут указывать либо на одну и ту же виртуальную страницу, либо на разные виртуальные страницы, но в любом случае младшие 12 значащих битов смещений страницы будут быть разными (потому что младшие 12 значащих битов смещения сегментов различны), и поэтому они не могут быть эквивалентными независимо от того, как настроены таблицы страниц.

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


  1. В защищенном режиме селектор сегмента 0000'0000'0000'00XX b используется как селектор нулевого сегмента и недоступен. Но давайте предположим, ради аргумента, что он доступен (или рассмотрим 0000'0000'0000'0100 b вместо 0000'0000'0000'0101 b вместо).

  2. Они относятся к одному и тому же сегменту, поскольку индексы селектора сегмента (старшие 13 бит каждого селектора) и табличные индикаторы (третий младший бит) равны

0 голосов
/ 08 мая 2018

Да, это разрешено. На самом деле, это не только законно, но и часто используется для функции, известной как общая память.

...