Чи все-таки 32-розрядний ядро ​​Win7 все ще може використовувати 2 Гб із запущеною програмою з великою адресою?


2

Зараз я працюю 32-розрядний Windows 7 Professional з 6 ГБ оперативної пам’яті.

Я використовую патч PAE, щоб дозволити використання більше 3,5 ГБ оперативної пам’яті в 32-бітних Windows. Аналогічна дискусія відбулася тут: Як я можу включити PAE в Windows 7 (32-розрядному) підтримувати більше 3,5 ГБ оперативної пам’яті?

Посилання на патч для Win7 SP1 тут: https://wj32.wordpress.com/2011/02/23/pae-patch-update-for-windows-7-sp1/

У будь-якому випадку, короткий огляд, у мене встановлений патч, але якщо хтось із вас грав у Skyrim, можливо, це знає, в останній версії Skyrim (1.3.10) за замовчуванням включений великий прапор Aware Aware, щоб він міг використовувати його до 3 ГБ пам’яті в 32-розрядної Windows та 4 ГБ пам’яті в 64-розрядної Windows. Звичайно, щоб скористатись цим, вам також потрібно встановити змінну середовища користувача у вашому записі BCD (userva = 3072), щоб програма могла використовувати повні 3 Гб в 32-бітних Windows.

Ось питання: з мого розуміння мого друга, 32-бітове ядро ​​Windows може адресувати до 2 ГБ пам'яті для себе. Якщо увімкнено патч PAE та використовувати додаток із підтримкою LAA, такий як Skyrim, чи не матиме 32-бітове ядро ​​Windows належним чином використання додаткової доступної пам'яті (наприклад, чи все одно він міг би адресувати 1 Гб через початковий ліміт 4 Гб) чи Windows зможе належним чином виділити достатню кількість пам'яті для себе, щоб ядро ​​могло використовувати до 2 ГБ, необхідних? Пам'ятайте, у мене в оригінальній конфігурації є 6 Гб.

З того, що я можу сказати, навіть якщо програми не розроблені для роботи з PAE, одна програма все ще може використовувати до 2 Гб, перш ніж вона досягне своєї "межі", тому теоретично я можу мати до 3 додатків, використовуючи до 2 ГБ кожен (робить вигляд, що Windows не займає ніякої пам'яті, а лише теоретичний сценарій), і я все одно добре, оскільки Windows обробляє те, де в просторі пам'яті знаходяться ці програми.

Будь ласка, не соромтесь виправити мене, якщо я не прав - я не програміст, але мені цікаво, які саме стелі чи стіни зіткнуться з використанням цієї конфігурації.

Відповіді:


4

Межі фізичної пам’яті та межі віртуальної пам’яті повністю не пов’язані. Одне не має нічого спільного з іншим. PAE знімає обмеження 4 Гб фізичної пам'яті. Він не має жодного зв'язку з питаннями 3GB / LAA, які містять віртуальну пам'ять.

Однак є одна неприємна проблема. Якщо ввімкнено режим 3 Гб, ядро ​​має лише 1 ГБ адресного простору. Деякі записи системи, включаючи записи для відстеження використання та відображення фізичної пам’яті та всього пулу, що не використовується на сторінці, повинні жити в цьому адресному просторі. Тож ваша ОС може бути обмеженою адресним простором. Це може спричинити проблеми для 32-бітних операційних систем, особливо коли інші речі займають багато адресного простору, наприклад, відеокарти високого класу.

Якщо це впливає на вас, першим симптомом стане таємнича мережа в мережі з незвичайними помилками. Дивіться, наприклад, цю нитку Microsoft .

Ви ніколи не згадували, що використовуєте / 3 Гб. Без цього процеси LAA все ще обмежені 2 Гб.

З того, що я можу сказати, навіть якщо програми не розроблені для роботи з PAE, одна програма все ще може використовувати до 2 Гб, перш ніж вона досягне своєї "межі", тому теоретично я можу мати до 3 додатків, використовуючи до 2 ГБ кожен (робить вигляд, що Windows не займає ніякої пам'яті, а лише теоретичний сценарій), і я все одно добре, оскільки Windows обробляє те, де в просторі пам'яті знаходяться ці програми.

Ні! Обмеження 2 Гб знаходиться на віртуальній пам'яті. У вас є 6 Гб фізичної пам'яті. Ви можете мати 50 процесів, кожен з яких використовує 2 Гб, і ви не досягнете жодного обмеження, крім обмеження на кожен процес з цих 50 процесів.


Дякую за пояснення. Ось чому я запитав, як я трохи заплутався у двох поняттях і чи взагалі вони взаємопов’язані між собою. Я не використовую перемикач / 3 Гб. Як я вже сказав, єдиною зміною, яку я внесла до мого запису BCD (крім зміни, необхідної для запуску виправлених файлів winload.exe та ntkrnl.exe), було назавжди встановити параметр Userva на 3072 (3 Гб).
Білий Фенікс

1
Потім ви збільшили кількість фізичної пам'яті, яку ОС може використовувати, але не змінили віртуальну пам'ять. Процеси все ще обмежені 2 Гб VM за штуку.
Девід Шварц

Варіант userva = 3072 - еквівалент BCD / 3GB; це впливає на простір VM процесу. Додаток LAA у цій системі зможе використовувати до 3 ГБ віртуального адресного простору, а ваша ядра - лише 1 Гб. Варто зазначити, що з завантаженою ОС таким чином, vas ядра становить лише 1 Гб, навіть якщо ви ніколи не запускаєте додаток LAA. Однак Windows 7 32-бітний додав "динамічного розподілу простору пам'яті ядра", тому простір адрес ядра використовується набагато ефективніше, ніж раніше. І ОС, звичайно, все ще зможе керувати всією ОЗУ.
Джеймі Ханрахан

2

32-розрядне ядро ​​Windows може адресувати до 2 ГБ пам'яті для себе.

Так - ядро ​​не займе більше 2 ГБ з 4 ГБ віртуального адресного простору програми (або більше 1 ГБ, якщо у вас є /3GBпрапор і програма знає велику адресу). Таким чином, кожному додатку гарантується менше 2 ГБ віртуальної пам'яті (або 3 ГБ в останньому випадку).

З PAE ядро ​​може використовувати до 64 Гб фізичної пам'яті. Але кожна програма все ще має віртуальний адресний простір об'ємом 4 Гб. Ви не можете обійти це будь-яким іншим способом, як тільки оновленням до 64-бітної системи.

З того, що я можу сказати, навіть якщо програми не розроблені для роботи з PAE, одна програма все ще може використовувати до 2 Гб, перш ніж вона досягне своєї "межі", тому теоретично я можу мати до 3 додатків, використовуючи до 2 ГБ кожен (робить вигляд, що Windows не займає ніякої пам'яті, а лише теоретичний сценарій), і я все одно добре, оскільки Windows обробляє те, де в просторі пам'яті знаходяться ці програми.

Так.

Якщо додатку потрібно більше 2 Гб фізичної пам’яті, він повинен використовувати AWE , але я серйозно сумніваюся, що гра це робить (програмувати її непросто).


1
Якщо бути точним, він повинен використовувати AWE, якщо йому потрібно отримати більше фізичної пам’яті, ніж може, з 2 Гб адресного простору. (Наприклад, якщо у нього пам'ять файлу об'ємом 1 ГБ, у нього залишилося лише 1 ГБ адресного простору для відображення фізичної пам'яті.)
Девід Шварц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.