Сколько всё-таки оперативки использует моя система?

Petrovich_on_T3

Ноутбук Acer Aspire 5920G
Win Vista Home Premium (кажется, 32bit)
RAM: 2x2GB Kingston DDR2-6400
Видеокарта дискретная GeForce 8600M GT 256MB.
 
Самая свежая версия CPU-Z (1.49 запущенная из-под админа показывает, что объём оперативки 4GB, а та же прога, запущенная от имени обычного пользователя, показывает только 3GB.
Диспетчер задач показывает 3GB даже под админом.
 
В чём причина разницы?..
Сколько оперативки всё же использует система?
 
Может, это связано с памятью, которая может передаваться видеокарте? Неужели видюха к своим 256 добирает ещё 1гиг системной памяти?
 
Подскажите, пожалуйста, кто знает. Заранее спасибо.

sirius

Система использует 3 Гб,
а cpu-z показывает сколько физически установлено памяти.

Petrovich_on_T3

А почему система не использует все 4гига?
Можно заставить её использовать всё?

sirius

Если в двух словах - ставь x64 ось,
а если хочется подробнее или извращений с PAE - проследуйте в поиск :)

Petrovich_on_T3

Спасибо. А по каким словам искать?

katrin2201

ПАЕ не спасет человека, зачем путать. Более того, в его Висте он врублен по дефолту.
/3GB только возможно немножко улучшит ситуацию.

sirius

А я не про висту :)
Придётся менять ось всё равно, так что много вариантов.

Andbar

[боянище]/3GB к физической памяти, в отличии от PAE, абсолютно никакого отношения не имеет[/боян]

katrin2201

/3GB к физической памяти, в отличии от PAE, абсолютно никакого отношения не имеет
отношение это к физической памяти скорее имеет, чем нет, ибо влияет на распределение именно физической памяти, заставляя ядро умерить свои нескромные дефолтные аппетиты

agaaaa

заставляя ядро умерить свои нескромные дефолтные аппетиты
В размре виртуальной памяти, которую оно под себя выделяет.

Andbar

ибо влияет на распределение именно физической памяти
ага, в системах с PAE (включённом не только ради работы DEP этот ключик уменьшает максимальный объём физической памяти до 16гб (в большинстве случаев). Думаю, рядовой пользователь в ближайшие год-два это влияние может игнорировать.

katrin2201

а, в системах с PAE (включённом не только ради работы DEP этот ключик уменьшает максимальный объём физической памяти до 16гб (в большинстве случаев). Думаю, рядовой пользователь в ближайшие год-два это влияние может игнорировать.
Это не единственный и не главный эффект =)

Andbar

В соответствующей статье про /3GB ничего больше не нашел. А вообще, вроде требуется пересобирать приложение с поддержкой больших адресов, так что польза от этого ключика только в некоторых приложениях будет.

katrin2201

Пересобирать - это если _одному_ процессу надо больше двух гигов.
Если же разным - то можно не пересобирать.
На йориковской ссылке в конце все нормально расписано.

Andbar

Пересобирать - это если _одному_ процессу надо больше двух гигов.
Если же разным - то можно не пересобирать.
если двум (и более) процессам надо более 2х гигов _суммарно_, но каждый из них по отдельности использует в пике менее 2х гигов, то вообще никаких проблем, возиться с /3GB не нужно.

katrin2201

если двум (и более) процессам надо более 2х гигов _суммарно_, но каждый из них по отдельности использует в пике менее 2х гигов, то вообще никаких проблем, возиться с /3GB не нужно.
к сожалению нет
прочитай внимательно хотя бы йориковскую ссылку

Andbar

прочитай внимательно хотя бы йориковскую ссылку
Единственное упоминание ключа /3GB в ней - в этом абзаце:
Замечание. Время от времени можно увидеть совет по увеличению памяти, доступной системе: добавить в файл boot.ini параметр /3GB. На самом деле этот совет, как говорится, не из той оперы. Этот параметр обеспечивает перераспределение виртуального адресного пространства приложений между ними и системой, но никак не влияет на работу с физической памятью.
Что я пропустил?

katrin2201

Вообще, в контексте всего вышесказанного в статье, должно быть понятно, каким образом это влияет на кол-во доступной юзерспейсу памяти.
Можно еще прочитать http://msdn.microsoft.com/en-us/library/ms791558.aspx

Andbar

Вообще, в контексте всего вышесказанного в статье, должно быть понятно, каким образом это влияет на кол-во доступной юзерспейсу памяти.
При чём тут память процесса, (в том числе, доступная юзерспейсу) к физической памяти? Большая часть первой может быть вообще где-то в pagefile-е лежать, а вторая - это адресное пространство на шине процессора, которому соответствует RAM, соответственно, сопоставление первой и второй в существенной степени зависит от настроек страниц памяти для защищённого режима процессора, которые управляются ядром ОС... Или я что-то неправильно понял?
Можно еще прочитать http://msdn.microsoft.com/en-us/library/ms791558.aspx
именно это я и читал перед тем, как утверждать, что для обычного пользователя влияние этого параметра на работу с физической памятью минимально.

katrin2201

Подробности, где чего сколько и на каком этапе трансляции - врать не буду, но общий смысл таков.
У Висты/Хп размер адресного пространтсва после последнего этапа трансляции - 4Гб.
Куда мапятся эти 4Гб показано на скриншотах по ссылке. /3GB несколько меняет это.
Единственное, чего я не понимаю, это необходимость перекомпиливать прогу, чтобы она смогла захавать больше 2гб при включенном /3GB.

agaaaa

У любой 32-битной операционной системы до трансляции виртуальных адресов 4GiB.
При этом с выключенным PAE эта же система может иметь доступ не более чем к 4GiB физической оперативной памяти (на самом деле меньше, т.к. на часть этой памяти мапаются адресные пространства устройств) по той причине, что после трансляции получается 32-битный адрес.
Со включенным PAE эта же система может иметь доступ уже к 64GiB физической памяти (на самом деле меньше, по ранее указанной причине т.к. после трансляции получается 36-битный адрес.
Куда мапать устройства в пространство физической памяти решает система, а потому в случае включенного PAE может замапать их, например, с адреса 0x200000000 (после 8GiB) и таким образом получить доступ ко всей реальной физической памяти.
Далее. В 32-битной системе у каждого процесса есть 4GiB виртуальной памяти, которую система может замапать на любой из доступных физических адресов (которых с включенным PAE 64GiB). При этом Windows по умолчанию резервирует все виртуальные адреса выше 2GiB для себя, оставляя программе 2GiB виртуальных адресов. С ключом /3GB программы получают 3GiB виртуальных адресов.
Зачем нужна перекомпиляция? (Внимание! Дальше идут исключительно мои предположения).
Когда системное пространство виртуальных адресов начинается с 2GiB, все системные виртуальные адреса в знаковых числах - отрицательные, а пользовательские - положительные. Вероятно, компиляторы пользуются этим фактом для каких-то оптимизаций, которые невозможны когда пользовательские адреса могут быть отрицательными числами при представлении в виде знаковых 32-битных целых.

Andbar

Поскольку, мы, читая одни и те-же документы, получаем практически противоположные выводы относительно действия /3GB, то остаётся единственный способ выяснить ответ на этот вопрос...
[pollstart]
[polltitle=+Как вы считаете, на какие адреса влияет ключ /3GB в Win32?]
[polloption=На виртуальные адреса процессов (изменение максимального объёма адресуемой памяти - побочный эффект).]
[polloption=На физические адреса/распределение соответствий при трансляции из виртуальных адресов в физические.]
[polloption=На пч0л.]
[pollstop]

Serab

Зачем нужна перекомпиляция? (Внимание! Дальше идут исключительно мои предположения).
Когда системное пространство виртуальных адресов начинается с 2GiB, все системные виртуальные адреса в знаковых числах - отрицательные, а пользовательские - положительные. Вероятно, компиляторы пользуются этим фактом для каких-то оптимизаций, которые невозможны когда пользовательские адреса могут быть отрицательными числами при представлении в виде знаковых 32-битных целых.
Пейсатель-фантаст?

Petrovich_on_T3

вот снимок с моего компа. В отличие от снимка в висте, который приведён в статье по ссылке, на моём винда видит 4ГБ.

... Но как я понимаю, моя использует система всё равно тоько 3...

katrin2201

[polloption=На виртуальные адреса процессов (изменение максимального объёма адресуемой памяти - побочный эффект).]
[polloption=На физические адреса/распределение соответствий при трансляции из виртуальных адресов в физические.]
да какая разница, если и те и эти ограничены 4гигами?
первые - просто потому, что они 32битные, вторые - просто потому, что пае на несерверных ос не работает?
//то есть разница конечно есть, но мой первоначальный поинт все равно в силе в обоих случаях

agaaaa

Ну лично у меня есть только одна альтернативная теория, так же связанная со знаковыми числами.
Возможно появление опциии линкера (прочёл, опция линкера, а не компилятора => оптимизации отпадают) связано с тем, что старые программы использовали знаковые целые числа, например, при проверке выхода за пределы массива примерно так (код наглядный):
if (&arr[i] < (int)arr) throw IndexOutOfRange;

kruzer25

вот снимок с моего компа. В отличие от снимка в висте, который приведён в статье по ссылке, на моём винда видит 4ГБ.
Мой чипсет поддерживает 2ГБ. 512МБ напаяно, один доступный слот. Если воткнуть 2ГБ - биос видит только 2ГБ, виста на твоём скриншоте - 2.5, использует только 2.

Andbar

... Но как я понимаю, моя использует система всё равно тоько 3...
Мелкомягкие маркетологи настучали по мозгам программистам и те выпустили патч, чтобы это окошко отображало не доступную системе память, а всю установленную. :grin:

Serab

Да я вообще не о том, я говорю, что ты пытаешься что-то предполагать, взял бы да проверил, а то «ящетаю...»
старые программы использовали знаковые целые числа, например, при проверке выхода за пределы массива примерно так
Старые, хм. Что это еще за «старые» программы, да добоебов полно, ты думаешь все «новые» программы написаны правильно?

agaaaa

Старые, хм. Что это еще за «старые» программы, да добоебов полно, ты думаешь все «новые» программы написаны правильно?
Старые - это программы, написанные во времена, когда не предполагалось вообще, что программа затребует больше 2ГБ.

Serab

Да я тебе еще раз говорю, с чего ты взял, что «новые» написаны лучше?
Короче ладно, я в теме разговора не очень хорошо разбираюсь, просто был интересен ответ на вопрос, а твои сообщения показались немного нелогичными.

shustya08

and here we go again..
По частоте появления тредов по данной теме можно выставлять точное время. :)
Оставить комментарий
Имя или ник:
Комментарий: