Допустим, мы работаем с системой, которая имеет 40 бит физического адреса. Общее физическое адресное пространство (при условии адресной памяти в байтах ) составляет байтов или 1 ТиБ. И если виртуальные адреса имеют длину 48 бит, это означает, что виртуальной памяти доступно больше адресов, чем мест в физической памяти.
Это имеет смысл для меня, потому что «избыточные» адреса могут относиться и к расположению жесткого диска. Однако я не понимаю, как происходит перевод между виртуальными и физическими адресами. Я предполагаю, что где-то хранится отображение, которое связывает местоположения VAS с физическими местоположениями. Если виртуальных адресов больше, чем физических, как все эти сопоставления могут храниться в памяти? Как минимум вам потребуется 48 бит для хранения каждого виртуального адреса, а затем еще 40 для хранения физического местоположения, на которое он отображается. Поэтому очевидно, что вы не можете просто сохранить отображение 1: 1 каждого виртуального адреса на его физический аналог, поскольку отображение каждого местоположения потребует больше памяти, чем сама физическая память.
Что именно мне здесь не хватает?
источник
Ответы:
Хитрость в том, чтобы сделать эту работу "пейджинговой". При переносе данных с жесткого диска в физическую память вы не просто вносите несколько байтов. Вы приносите всю страницу. 4 Кбайт - это очень распространенный размер страницы.
Если вам нужно только отслеживать страницы, а не каждый отдельный байт, сопоставление становится намного дешевле. Если у вас 48-разрядное адресное пространство и 4096-байтовые страницы, вам нужно только отследить, какая из 2 ^ 36 страниц (примерно 69 миллиардов страниц). Это намного проще! Запись о том, где находятся все страницы, называется «таблицей страниц».
Если вам на самом деле требуется 1-256 ТБ памяти, то отказ от нескольких гигабайт для хранения этой таблицы страниц не имеет большого значения. На практике, однако, мы будем делать такие вещи, как использование многоуровневых таблиц страниц , что позволяет нам быть немного более эффективными, сохраняя страницы только для тех областей адресного пространства, которые мы фактически используем.
источник