Что я понимаю о 32-битных ОС, так это то, что адрес выражается в 32 битах, поэтому самое большее ОС может использовать 2 ^ 32 = 4 ГБ памяти.
Максимум, что может адресовать процесс - это 4 ГБ. Вы потенциально путаете память с адресным пространством . Процесс может иметь больше памяти, чем адресное пространство. Это совершенно законно и довольно часто встречается в обработке видео и других приложениях, требующих большого объема памяти. Процесс может быть выделен десятки ГБ памяти и поменять его в адресном пространстве и из него по желанию. В адресное пространство пользователя одновременно может входить только 2 ГБ .
Если у вас есть гараж на четыре машины в вашем доме, вы все равно можете иметь пятьдесят автомобилей. Вы просто не можете держать их всех в своем гараже. Вы должны иметь вспомогательное хранилище где-то еще, чтобы хранить как минимум 46 из них; какие автомобили вы держите в своем гараже, а какие - на парковке вниз по улице - решать только вам.
Означает ли это, что в любой 32-разрядной ОС, будь то Windows или Unix, если на компьютере имеется файл ОЗУ + файл подкачки на жестком диске более 4 ГБ, например, 8 ГБ ОЗУ и файл подкачки 20 ГБ, «память никогда не израсходуется»?
Абсолютно это не значит. Один процесс может использовать больше памяти, чем это! Опять же, объем памяти, который использует процесс, практически не связан с количеством виртуального адресного пространства, которое использует процесс. Точно так же, как количество автомобилей, которые вы держите в своем гараже, совершенно не связано с количеством автомобилей, которыми вы владеете.
Более того, два процесса могут совместно использовать не частные страницы памяти . Если все двадцать процессов загружают одну и ту же DLL, все процессы совместно используют страницы памяти для этого кода. Они не разделяют адресное пространство виртуальной памяти , они разделяют память .
Моя точка зрения, на случай, если неясно, что вы должны перестать думать о памяти и адресном пространстве как об одном и том же, потому что это совсем не одно и то же.
если этот 32-разрядный компьютер с ОС имеет 2 ГБ ОЗУ и файл подкачки 2 ГБ, увеличение размера файла подкачки не повлияет на производительность. Это правда?
У вас пятьдесят машин, гараж на четыре машины и стоянка на 100 машин по улице. Вы увеличиваете размер парковки до 200 мест. У вас быстрее садится какая-нибудь машина, потому что у вас теперь 150 дополнительных парковочных мест вместо 50 дополнительных парковочных мест?