Скільки пам'яті може використовувати 32 бітна операційна система.
Спочатку трохи теорії.
Найпростіший елемент інформації - біт. Він є мінімальною одиницею інформації і може приймати значення 0 або 1. За ним йде байт, він складається з 8 біт. Так як біт може приймати 2 значення, то все виходить 28 = 256 значень байта.
Тепер розглянемо адресацію пам'яті.У будь-якого комп'ютера є оперативна пам'ять (ОЗУ) - адресний простір, необхідне для зберігання даних, які використовуються в даний момент. Для отримання інформації з ОЗУ спочатку процесор повинен вибрати адресу потрібного біта, який зберігатися в одній з мікросхем пам'яті, а вже потім його прочитати.Цей процес і називається адресацією пам'яті. Одним з властивостей архітектури комп'ютера є кількість бітів, використовуваних при адресації пам'яті.
32 бітні ОС для адресації пам'яті використовують 232 біт, що становить 4294967296 біт або 4 Гігабайт (Гб). Це означає, що максимальний обсяг пам'яті, до якого може звертатися 32 бітна операційна система, становить 4 Гб.Однак навіть цей обсяг використовувати в повній мірі нам не вдасться, оскільки компоненти операційної системи і пристрої вимагають виділеного адресного простору в межах перших 32 біт (4 Гбайт) оперативної пам'яті. Наприклад, відеокарта з 512 Мбайт пам'яті зажадає синхронізації цієї пам'яті з оперативної, що знизить доступну ємність на 512 Мбайт.
Таким чином, загальний обсяг пам'яті, доступної в 32 - бітної ОС Windows зазвичай становить 3.25-3.75 Гб в залежності від використовуваного заліза.
Деякі версії Windows підтримують функцію під назвою Physical Address Extension (PAE), що дозволяє використовувати більше 4 Гбайт пам'яті завдяки спеціальній технології переадресації.Дана технологія дозволяє процесору працювати не з 32-бітної, а з 36-бітної адресацією, теоретично розширюючи доступні йому адреси до 236 = 68719476736 байт (64 Гб). При цьому саме адресний простір залишається 32-бітовим, тобто рівним 4 Гб, але за рахунок зміненого відображення на нього фізичної пам'яті стає можливим використання більшого її об'єму.
Згідно з офіційною інформацією Microsoft, режим PAE можна використовувати в наступних 32-бітових операційних системах:
- Microsoft Windows Server 2000 Enterprise/Datacenter Edition
- Microsoft Windows Server 2003 Enterprise/Datacenter Edition
- Microsoft Windows Server 2008 Enterprise/Datacenter Edition
В Server 2008 PAE включений за замовчуванням, якщо на сервері на хардварний рівні включена технологія DEP (Data Execution Prevention), або сервер має можливість гарячого додавання пам'яті (hot-add memory).В іншому випадку PAE необхідно включити примусово за допомогою BCDEdit, за допомогою такої команди:
BCDEdit/set [{ID}] pae ForceEnabled
Щоб включити PAE в Server 2000 \ 2003 необхідно вказати в файлі Boot.ini ключ/PAE. Ось приклад файлу Boot.ini, що містить ключ PAE:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (2 ) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (2) \ WINDOWS = "Windows Server 2003, Enterprise"/fastdetect/PAE
Варто зауважити, що можливість використовувати режим PAE для клієнтських ОС була реалізована в другому сервіс-паку до Windows XP.Однак в процесі тестування з'ясувалося, що при використанні цього режиму відбувається велика кількість збоїв. Справа в тому, що драйвери деяких пристроїв, в основному таких як аудіо- і відео, жорстко запрограмовані на роботу з адресами пам'яті в межах 4 ГБ. Вони обрізають всі адреси вище цього обсягу, що призводить до пошкодження вмісту пам'яті з усіма супутніми наслідками.Оскільки, як правило, сервера не використовують подібні пристрої, то з серверними системами подібних проблем не виникало.
У зв'язку з виявленими недоліками вирішено було прибрати з 32-розрядних клієнтських систем можливість працювати з пам'яттю понад 4 ГБ, хоча теоретично це можливо.Тому в клієнтських ОС сімейства Windows дана технологія хоча і присутній, однак не активована на рівні ядра, і спроба її використовувати ні до чого не приведе.
Підводячи підсумок скажу, що якщо є необхідність в обсязі пам'яті більше 4 Гб, то найкращий варіант - це використовувати 64 бітну ОС, адже в ній обмеження на розмір пам'яті становить до 192 Гб для настільних і 2 Тб для серверних ОС.
І ще, уточнити інформацію про підтримку пам'яті різними версіями Windows можна тут: Memory Limits for Windows and Windows Server Releases.
.