Обмеження 2 Гб для 32-бітних операційних систем


8

Чи означає обмеження 2 Гб для 32-бітних операційних систем, що кожен процес може отримати доступ лише до 2 ГБ пам'яті або всі процеси разом можуть використовувати лише 2 ГБ фізичної пам'яті ?

Отже, чи обмежено 2 Гб для ядра обмеження загальної кількості, яку можуть використовувати всі процеси разом?


Зверніть увагу, що Фабіан має на увазі лише фізичну пам'ять, а не файл підкачки.
Арда Сі

Він також має на увазі лише Windows, а не операційні системи взагалі.
Арда Сі

Він може запитати про це, але таких відносин немає. Кожен процес може отримати доступ до 2 ГБ віртуального. Частина цього буде в оперативній пам'яті ("резидент"). Для клієнтських 32-бітних версій загальна пам'ять резидентів усіх процесів плюс пам'ять резидентної ОС не може перевищувати 4 Гб. Розподіл фізичної пам'яті не розділений на 2 ГБ.
Джеймі Ханрахан

Прийнята відповідь у цьому дописі дає повну інформацію: stackoverflow.com/questions/490520/…
RBT

Відповіді:


4

Існує багато помилок щодо обмеження пам'яті в 32-бітних ОС Windows.

Перш за все, коли я кажу про ОЗУ, це включає всі види ОЗУ. Тож не просто регулярна, а й ваша відео ОЗУ.

Максимальний доступний об'єм оперативної пам’яті за процес для 32-бітної ОС становить 2 ГБ. Якщо у вас 64-бітна ОС, 32-бітний процес може виділити до 4 ГБ.

Крім того, вся ОС може адресувати лише 4 ГБ для кожного процесу в поєднанні, тоді як 64-бітні ОС можуть виділяти 8 ТБ.

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

Для отримання додаткової інформації див. Обмеження пам’яті для Windows Releases .

Примітка. Це лише для додатків. 32-розрядна ОС Windows може виділити до 4 ГБ, але 2 ГБ цього виділяється лише для використання системи, залишаючи лише 2 ГБ для додатків. У певних випадках (особливо новіших ОС) це розділяється на 3 ГБ для додатків та 1 ГБ для ядра.

Я обговорював тільки Windows, тому що це контекст, в якому малося на увазі питання. Мені незнайомі обмеження інших ОС.


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

1
Питання полягало не в тому, що таке адресний простір. Я міг би вас усіх набридати, обговорюючи спосіб адресації пам'яті та обмеження 32-бітових цілих чисел, але це не те, про що йдеться у цьому питанні, тому це видається зайвим складним. І так, ви можете використовувати перемикач / 3 Гб. Це питання не включає цього.
Арда Сі

1
Ліміт пам'яті 4 Гб застосовується лише до фізичної пам'яті в стандартній архітектурі 32-х бітової x86. Віртуальна пам’ять відрізняється, і 32-бітна ОС може використовувати набагато більше 4 Гб пам'яті (всього не за процес), якщо вона використовує файл сторінки або розміняє розділ. Швидкість жорсткого диска не впливає на доступний розмір файлу сторінки або простір підкачки, якщо у жорсткого диска є простір, ніж він може робити сторінку або поміняти місцями. Це впливає лише на виконання підкачки / заміни.

1
О, я забув згадати, відео-баран не є фактором, якщо тільки це інтегрований відеопрограм, що розділяє основний баран, але навіть тоді він просто віднімає від наявного фізичного барана. Це не впливає на наявну віртуальну пам'ять. Виділені відеокарти мають власні процесори та пам'ять, які не мають фактора в доступній системі пам'яті.

@Spooky Не зовсім правда. Якщо ви подивитесь на моє посилання, ви побачите, що підказка пулу обмежена віртуальним адресним простором у режимі ядра, який становить 2 Гб. Це означає приблизно 6 ГБ.
Арда Сі

0

Якщо ОП посилається на ОС Windows, то всі 32-бітні ОС мають обмеження до 4 ГБ, за винятком серверного центру даних 2003 або підприємства з концепцією PAE (Physical Address Extension). Це також доступне в сучасних Linux ядрах. Звичайно, 32-бітні процесори стають все рідкішими поза мобільного простору.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.